[vlc-commits] chromecast: create interrupt context from intf_sys_t

Thomas Guillem git at videolan.org
Fri Feb 23 08:29:22 CET 2018


vlc/vlc-3.0 | branch: master | Thomas Guillem <thomas at gllm.fr> | Mon Feb 12 14:00:01 2018 +0100| [31f9e13d7b7bac53bdb33d51eb5a91418e4b97d3] | committer: Thomas Guillem

chromecast: create interrupt context from intf_sys_t

Since it's needed only by this class

(cherry picked from commit 3441755975bcb29ff732c4bb38c4ffa5a9e5437f)
Signed-off-by: Thomas Guillem <thomas at gllm.fr>

> http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=31f9e13d7b7bac53bdb33d51eb5a91418e4b97d3
---

 modules/stream_out/chromecast/cast.cpp            | 10 +---------
 modules/stream_out/chromecast/chromecast.h        |  2 +-
 modules/stream_out/chromecast/chromecast_ctrl.cpp |  8 ++++++--
 3 files changed, 8 insertions(+), 12 deletions(-)

diff --git a/modules/stream_out/chromecast/cast.cpp b/modules/stream_out/chromecast/cast.cpp
index 5a5b122785..634752feeb 100644
--- a/modules/stream_out/chromecast/cast.cpp
+++ b/modules/stream_out/chromecast/cast.cpp
@@ -1156,10 +1156,6 @@ static int Open(vlc_object_t *p_this)
     int i_device_port;
     std::stringstream ss;
 
-    vlc_interrupt_t *p_interrupt = vlc_interrupt_create();
-    if (unlikely(p_interrupt == NULL))
-        goto error;
-
     config_ChainParse(p_stream, SOUT_CFG_PREFIX, ppsz_sout_options, p_stream->p_cfg);
 
     psz_ip = var_GetNonEmptyString( p_stream, SOUT_CFG_PREFIX "ip");
@@ -1183,7 +1179,7 @@ static int Open(vlc_object_t *p_this)
     try
     {
         p_intf = new intf_sys_t( p_this, i_local_server_port, psz_ip, i_device_port,
-                                 p_interrupt, httpd_host );
+                                 httpd_host );
     }
     catch (const std::runtime_error& err )
     {
@@ -1196,8 +1192,6 @@ static int Open(vlc_object_t *p_this)
         goto error;
     }
 
-    p_interrupt = NULL;
-
     psz_mux = var_GetNonEmptyString(p_stream, SOUT_CFG_PREFIX "mux");
     if (psz_mux == NULL)
     {
@@ -1249,8 +1243,6 @@ static int Open(vlc_object_t *p_this)
     return VLC_SUCCESS;
 
 error:
-    if (p_interrupt)
-        vlc_interrupt_destroy(p_interrupt);
     delete p_intf;
     if (httpd_host)
         httpd_HostDelete(httpd_host);
diff --git a/modules/stream_out/chromecast/chromecast.h b/modules/stream_out/chromecast/chromecast.h
index e07ec18843..570486fcc0 100644
--- a/modules/stream_out/chromecast/chromecast.h
+++ b/modules/stream_out/chromecast/chromecast.h
@@ -160,7 +160,7 @@ struct intf_sys_t
         Stop,
     };
     intf_sys_t(vlc_object_t * const p_this, int local_port, std::string device_addr,
-               int device_port, vlc_interrupt_t *, httpd_host_t *);
+               int device_port, httpd_host_t *);
     ~intf_sys_t();
 
     bool isFinishedPlaying();
diff --git a/modules/stream_out/chromecast/chromecast_ctrl.cpp b/modules/stream_out/chromecast/chromecast_ctrl.cpp
index 4eb30e345b..3b9107566f 100644
--- a/modules/stream_out/chromecast/chromecast_ctrl.cpp
+++ b/modules/stream_out/chromecast/chromecast_ctrl.cpp
@@ -87,7 +87,7 @@ static const char* StateToStr( States s )
  * intf_sys_t: class definition
  *****************************************************************************/
 intf_sys_t::intf_sys_t(vlc_object_t * const p_this, int port, std::string device_addr,
-                       int device_port, vlc_interrupt_t *p_interrupt, httpd_host_t *httpd_host)
+                       int device_port, httpd_host_t *httpd_host)
  : m_module(p_this)
  , m_streaming_port(port)
  , m_mediaSessionId( 0 )
@@ -103,7 +103,6 @@ intf_sys_t::intf_sys_t(vlc_object_t * const p_this, int port, std::string device
  , m_eof( false )
  , m_pace( false )
  , m_meta( NULL )
- , m_ctl_thread_interrupt(p_interrupt)
  , m_httpd_host(httpd_host)
  , m_httpd_file(NULL)
  , m_art_url(NULL)
@@ -113,6 +112,10 @@ intf_sys_t::intf_sys_t(vlc_object_t * const p_this, int port, std::string device
  , m_length( VLC_TS_INVALID )
  , m_pingRetriesLeft( PING_WAIT_RETRIES )
 {
+    m_ctl_thread_interrupt = vlc_interrupt_create();
+    if( unlikely(m_ctl_thread_interrupt == NULL) )
+        throw std::runtime_error( "error creating interrupt context" );
+
     vlc_mutex_init(&m_lock);
     vlc_cond_init( &m_stateChangedCond );
     vlc_cond_init( &m_pace_cond );
@@ -139,6 +142,7 @@ intf_sys_t::intf_sys_t(vlc_object_t * const p_this, int port, std::string device
     if (vlc_clone(&m_chromecastThread, ChromecastThread, this,
                   VLC_THREAD_PRIORITY_LOW))
     {
+        vlc_interrupt_destroy( m_ctl_thread_interrupt );
         vlc_cond_destroy( &m_stateChangedCond );
         vlc_cond_destroy( &m_pace_cond );
         var_SetAddress( m_module->obj.parent->obj.parent, CC_SHARED_VAR_NAME, NULL );



More information about the vlc-commits mailing list