| Index: content/renderer/media/webmediaplayer_ms.h
|
| diff --git a/content/renderer/media/webmediaplayer_ms.h b/content/renderer/media/webmediaplayer_ms.h
|
| index 24b2d6b6b2cef341eec993469b4ac6c95dfa94b5..bd33186804c1bd4c2403761ddccf51217bed79ea 100644
|
| --- a/content/renderer/media/webmediaplayer_ms.h
|
| +++ b/content/renderer/media/webmediaplayer_ms.h
|
| @@ -13,7 +13,7 @@
|
| #include "base/synchronization/lock.h"
|
| #include "base/threading/thread_checker.h"
|
| #include "content/common/content_export.h"
|
| -#include "content/public/renderer/render_frame_observer.h"
|
| +#include "media/blink/webmediaplayer_delegate.h"
|
| #include "media/blink/webmediaplayer_util.h"
|
| #include "media/renderers/gpu_video_accelerator_factories.h"
|
| #include "media/renderers/skcanvas_video_renderer.h"
|
| @@ -30,7 +30,6 @@ class WebString;
|
|
|
| namespace media {
|
| class MediaLog;
|
| -class WebMediaPlayerDelegate;
|
| class VideoFrame;
|
| }
|
|
|
| @@ -60,8 +59,8 @@ class RenderFrameObserver;
|
| // WebKit client of this media player object.
|
| class CONTENT_EXPORT WebMediaPlayerMS
|
| : public NON_EXPORTED_BASE(blink::WebMediaPlayer),
|
| - public NON_EXPORTED_BASE(base::SupportsWeakPtr<WebMediaPlayerMS>),
|
| - public NON_EXPORTED_BASE(RenderFrameObserver) {
|
| + public NON_EXPORTED_BASE(media::WebMediaPlayerDelegate::Observer),
|
| + public NON_EXPORTED_BASE(base::SupportsWeakPtr<WebMediaPlayerMS>) {
|
| public:
|
| // Construct a WebMediaPlayerMS with reference to the client, and
|
| // a MediaStreamClient which provides VideoFrameProvider.
|
| @@ -135,10 +134,12 @@ class CONTENT_EXPORT WebMediaPlayerMS
|
| unsigned audioDecodedByteCount() const override;
|
| unsigned videoDecodedByteCount() const override;
|
|
|
| - // RenderFrameObserver implementation. Called when the RenderFrame visiblity
|
| - // is changed.
|
| - void WasHidden() override;
|
| - void WasShown() override;
|
| + // WebMediaPlayerDelegate::Observer implementation.
|
| + void OnHidden() override;
|
| + void OnShown() override;
|
| + void OnPlay() override;
|
| + void OnPause() override;
|
| + void OnVolumeMultiplierUpdate(double multiplier) override;
|
|
|
| bool copyVideoTextureToPlatformTexture(
|
| blink::WebGraphicsContext3D* web_graphics_context,
|
| @@ -176,7 +177,12 @@ class CONTENT_EXPORT WebMediaPlayerMS
|
|
|
| blink::WebMediaPlayerClient* const client_;
|
|
|
| + // WebMediaPlayer notifies the |delegate_| of playback state changes using
|
| + // |delegate_id_|; an id provided after registering with the delegate. The
|
| + // WebMediaPlayer may also receive directives (play, pause) from the delegate
|
| + // via the WebMediaPlayerDelegate::Observer interface after registration.
|
| const base::WeakPtr<media::WebMediaPlayerDelegate> delegate_;
|
| + int delegate_id_;
|
|
|
| // Specify content:: to disambiguate from cc::.
|
| scoped_refptr<content::VideoFrameProvider> video_frame_provider_; // Weak
|
| @@ -210,6 +216,13 @@ class CONTENT_EXPORT WebMediaPlayerMS
|
| const std::string initial_audio_output_device_id_;
|
| const url::Origin initial_security_origin_;
|
|
|
| + // The last volume received by setVolume() and the last volume multiplier from
|
| + // OnVolumeMultiplierUpdate(). The multiplier is typical 1.0, but may be less
|
| + // if the WebMediaPlayerDelegate has requested a volume reduction (ducking)
|
| + // for a transient sound. Playout volume is derived by volume * multiplier.
|
| + double volume_;
|
| + double volume_multiplier_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerMS);
|
| };
|
|
|
|
|