Index: content/renderer/media/webmediaplayer_ms.h |
diff --git a/content/renderer/media/webmediaplayer_ms.h b/content/renderer/media/webmediaplayer_ms.h |
index 24f34c0e0f8df1e99c370259a3559ee6ae556ad5..07c84c26dd93eed4ae1aa3e9504641c178f627b4 100644 |
--- a/content/renderer/media/webmediaplayer_ms.h |
+++ b/content/renderer/media/webmediaplayer_ms.h |
@@ -14,6 +14,7 @@ |
#include "base/synchronization/lock.h" |
#include "base/threading/thread_checker.h" |
#include "content/common/content_export.h" |
+#include "content/renderer/media/media_stream.h" |
#include "media/blink/webmediaplayer_delegate.h" |
#include "media/blink/webmediaplayer_util.h" |
#include "media/renderers/gpu_video_accelerator_factories.h" |
@@ -62,7 +63,8 @@ class WebMediaPlayerMSCompositor; |
// blink::WebMediaPlayerClient |
// WebKit client of this media player object. |
class CONTENT_EXPORT WebMediaPlayerMS |
- : public NON_EXPORTED_BASE(blink::WebMediaPlayer), |
+ : public NON_EXPORTED_BASE(MediaStreamObserver), |
+ public NON_EXPORTED_BASE(blink::WebMediaPlayer), |
public NON_EXPORTED_BASE(media::WebMediaPlayerDelegate::Observer), |
public NON_EXPORTED_BASE(base::SupportsWeakPtr<WebMediaPlayerMS>) { |
public: |
@@ -179,6 +181,10 @@ class CONTENT_EXPORT WebMediaPlayerMS |
bool flip_y, |
bool premultiply_alpha) override; |
+ // MediaStreamObserver implementation |
+ void TrackAdded(const blink::WebMediaStreamTrack& track) override; |
+ void TrackRemoved(const blink::WebMediaStreamTrack& track) override; |
+ |
private: |
friend class WebMediaPlayerMSTest; |
@@ -201,6 +207,11 @@ class CONTENT_EXPORT WebMediaPlayerMS |
// Getter method to |client_|. |
blink::WebMediaPlayerClient* get_client() { return client_; } |
+ // To be run when tracks are added or removed. |
+ void Reload(); |
+ void ReloadVideo(); |
+ void ReloadAudio(); |
+ |
blink::WebLocalFrame* const frame_; |
blink::WebMediaPlayer::NetworkState network_state_; |
@@ -266,6 +277,10 @@ class CONTENT_EXPORT WebMediaPlayerMS |
// True if playback should be started upon the next call to OnShown(). Only |
// used on Android. |
bool should_play_upon_shown_; |
+ blink::WebMediaStream web_stream_; |
+ // IDs of the tracks currently played. |
+ blink::WebString current_video_track_id_; |
+ blink::WebString current_audio_track_id_; |
DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerMS); |
}; |