[vlc-devel] [PATCH 2/4] chromecast: do the disconnect in the recv/send thread

Steve Lhomme robux4 at videolabs.io
Mon May 9 22:08:47 CEST 2016


---
 modules/stream_out/chromecast/chromecast_ctrl.cpp | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/modules/stream_out/chromecast/chromecast_ctrl.cpp b/modules/stream_out/chromecast/chromecast_ctrl.cpp
index b6d7917..28fe8cf 100644
--- a/modules/stream_out/chromecast/chromecast_ctrl.cpp
+++ b/modules/stream_out/chromecast/chromecast_ctrl.cpp
@@ -142,8 +142,6 @@ intf_sys_t::~intf_sys_t()
 
     vlc_join(chromecastThread, NULL);
 
-    disconnectChromecast();
-
     vlc_interrupt_destroy( p_ctl_thread_interrupt );
 
     vlc_cond_destroy(&loadCommandCond);
@@ -831,9 +829,8 @@ void* intf_sys_t::ChromecastThread(void* p_data)
     if (p_sys->i_sock_fd < 0)
     {
         msg_Err( p_sys->p_module, "Could not connect the Chromecast" );
-        vlc_mutex_lock(&p_sys->lock);
+        vlc_mutex_locker locker(&p_sys->lock);
         p_sys->setConnectionStatus(CHROMECAST_CONNECTION_DEAD);
-        vlc_mutex_unlock(&p_sys->lock);
         return NULL;
     }
 
@@ -841,9 +838,8 @@ void* intf_sys_t::ChromecastThread(void* p_data)
     if (net_GetSockAddress(p_sys->i_sock_fd, psz_localIP, NULL))
     {
         msg_Err( p_sys->p_module, "Cannot get local IP address" );
-        vlc_mutex_lock(&p_sys->lock);
-        p_sys->setConnectionStatus(CHROMECAST_CONNECTION_DEAD);
-        vlc_mutex_unlock(&p_sys->lock);
+        vlc_mutex_locker locker(&p_sys->lock);
+        p_sys->disconnectChromecast();
         return NULL;
     }
 
@@ -858,6 +854,8 @@ void* intf_sys_t::ChromecastThread(void* p_data)
 
     while ( !vlc_killed() && p_sys->handleMessages() );
 
+    p_sys->disconnectChromecast();
+
     return NULL;
 }
 
-- 
2.7.0



More information about the vlc-devel mailing list