vlc | branch: master | Adrien Maglo <[email protected]> | Wed Oct 22 
12:18:41 2014 +0200| [1182e9d4d737a4cf00bf84a2438b5e4f87b101e6] | committer: 
Jean-Baptiste Kempf

chromecast: fix the device loading timeout

Signed-off-by: Jean-Baptiste Kempf <[email protected]>

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=1182e9d4d737a4cf00bf84a2438b5e4f87b101e6
---

 modules/stream_out/chromecast/cast.cpp |   25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)

diff --git a/modules/stream_out/chromecast/cast.cpp 
b/modules/stream_out/chromecast/cast.cpp
index b9247d5..b5da717 100644
--- a/modules/stream_out/chromecast/cast.cpp
+++ b/modules/stream_out/chromecast/cast.cpp
@@ -284,20 +284,21 @@ static int Open(vlc_object_t *p_this)
 
     // Lock the sout thread until we have sent the media loading command to 
the Chromecast.
     int i_ret = 0;
+    const mtime_t deadline = mdate() + 6 * CLOCK_FREQ;
+    vlc_mutex_lock(&p_sys->lock);
+    while (p_sys->i_status != CHROMECAST_MEDIA_LOAD_SENT)
     {
-        const mtime_t deadline = mdate() + 6 * CLOCK_FREQ;
-        vlc_mutex_locker locker(&p_sys->lock);
-        while (p_sys->i_status != CHROMECAST_MEDIA_LOAD_SENT)
-            i_ret = vlc_cond_timedwait(&p_sys->loadCommandCond, &p_sys->lock, 
deadline);
-    }
-    if (i_ret == ETIMEDOUT)
-    {
-        msg_Err(p_stream, "Timeout reached before sending the media loading 
command");
-        vlc_cancel(p_sys->chromecastThread);
-        vlc_join(p_sys->chromecastThread, NULL);
-        Clean(p_stream);
-        return VLC_EGENERIC;
+        i_ret = vlc_cond_timedwait(&p_sys->loadCommandCond, &p_sys->lock, 
deadline);
+        if (i_ret == ETIMEDOUT)
+        {
+            msg_Err(p_stream, "Timeout reached before sending the media 
loading command");
+            vlc_mutex_unlock(&p_sys->lock);
+            vlc_cancel(p_sys->chromecastThread);
+            Clean(p_stream);
+            return VLC_EGENERIC;
+        }
     }
+    vlc_mutex_unlock(&p_sys->lock);
 
     /* Even uglier: sleep more to let to the Chromecast initiate the connection
      * to the http server. */

_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to