[vlc-commits] chromecast: fix invalid corks state

Thomas Guillem git at videolan.org
Wed Jan 9 14:58:25 CET 2019


vlc | branch: master | Thomas Guillem <thomas at gllm.fr> | Wed Jan  9 14:52:19 2019 +0100| [43e9b4388c8c3061ba06fa32299206fd25c2b163] | committer: Thomas Guillem

chromecast: fix invalid corks state

It happened when the chromecast was switching to the buffering state from the
playing state.

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

 modules/stream_out/chromecast/chromecast.h        | 1 +
 modules/stream_out/chromecast/chromecast_ctrl.cpp | 5 ++++-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/modules/stream_out/chromecast/chromecast.h b/modules/stream_out/chromecast/chromecast.h
index 4e6fb2ebb2..144212f4ee 100644
--- a/modules/stream_out/chromecast/chromecast.h
+++ b/modules/stream_out/chromecast/chromecast.h
@@ -270,6 +270,7 @@ private:
     States m_state;
     bool m_retry_on_fail;
     bool m_played_once;
+    bool m_paused_once;
     bool m_request_stop;
     bool m_request_load;
     bool m_paused;
diff --git a/modules/stream_out/chromecast/chromecast_ctrl.cpp b/modules/stream_out/chromecast/chromecast_ctrl.cpp
index a2c68e682a..78d6945be4 100644
--- a/modules/stream_out/chromecast/chromecast_ctrl.cpp
+++ b/modules/stream_out/chromecast/chromecast_ctrl.cpp
@@ -102,6 +102,7 @@ intf_sys_t::intf_sys_t(vlc_object_t * const p_this, int port, std::string device
  , m_state( Authenticating )
  , m_retry_on_fail( false )
  , m_played_once( false )
+ , m_paused_once( false )
  , m_request_stop( false )
  , m_request_load( false )
  , m_paused( false )
@@ -394,6 +395,7 @@ void intf_sys_t::setHasInput( const std::string mime_type )
 
     m_request_stop = false;
     m_played_once = false;
+    m_paused_once = false;
     m_paused = false;
     m_cc_eof = false;
     m_request_load = true;
@@ -1211,9 +1213,10 @@ void intf_sys_t::setState( States state )
             case Paused:
                 if (m_played_once && m_on_paused_changed != NULL)
                     m_on_paused_changed(m_on_paused_changed_data, true);
+                m_paused_once = true;
                 break;
             case Playing:
-                if (m_played_once && m_on_paused_changed != NULL)
+                if (m_played_once && m_paused_once && m_on_paused_changed != NULL)
                     m_on_paused_changed(m_on_paused_changed_data, false);
                 m_played_once = true;
                 break;



More information about the vlc-commits mailing list