Index: media/mojo/services/mojo_renderer_service.h |
diff --git a/media/mojo/services/mojo_renderer_service.h b/media/mojo/services/mojo_renderer_service.h |
index 70547f50f552915871c3a7708a80b16c9d480350..e133f77a9bb8b2d36f11a364249f24dcd69fe42a 100644 |
--- a/media/mojo/services/mojo_renderer_service.h |
+++ b/media/mojo/services/mojo_renderer_service.h |
@@ -26,6 +26,7 @@ namespace media { |
class AudioRendererSink; |
class DemuxerStreamProviderShim; |
+class CdmContextProvider; |
class Renderer; |
class VideoRendererSink; |
@@ -34,19 +35,22 @@ class VideoRendererSink; |
class MEDIA_EXPORT MojoRendererService |
: NON_EXPORTED_BASE(mojo::MediaRenderer) { |
public: |
- explicit MojoRendererService( |
- mojo::InterfaceRequest<mojo::MediaRenderer> request); |
- ~MojoRendererService() override; |
+ // |cdm_context_provider| can be used to find the CdmContext to support |
+ // encrypted media. If null, encrypted media is not supported. |
+ MojoRendererService(CdmContextProvider* cdm_context_provider, |
+ mojo::InterfaceRequest<mojo::MediaRenderer> request); |
+ ~MojoRendererService() final; |
// mojo::MediaRenderer implementation. |
void Initialize(mojo::MediaRendererClientPtr client, |
mojo::DemuxerStreamPtr audio, |
mojo::DemuxerStreamPtr video, |
- const mojo::Closure& callback) override; |
- void Flush(const mojo::Closure& callback) override; |
- void StartPlayingFrom(int64_t time_delta_usec) override; |
- void SetPlaybackRate(double playback_rate) override; |
- void SetVolume(float volume) override; |
+ const mojo::Closure& callback) final; |
+ void Flush(const mojo::Closure& callback) final; |
+ void StartPlayingFrom(int64_t time_delta_usec) final; |
+ void SetPlaybackRate(double playback_rate) final; |
+ void SetVolume(float volume) final; |
+ void SetCdm(int32_t cdm_id, const mojo::Callback<void(bool)>& callback) final; |
private: |
enum State { |
@@ -88,8 +92,13 @@ class MEDIA_EXPORT MojoRendererService |
// Callback executed once Flush() completes. |
void OnFlushCompleted(const mojo::Closure& callback); |
+ // Callback executed once SetCdm() completes. |
+ void OnCdmAttached(const mojo::Callback<void(bool)>& callback, bool success); |
+ |
mojo::StrongBinding<mojo::MediaRenderer> binding_; |
+ CdmContextProvider* cdm_context_provider_; |
+ |
State state_; |
scoped_refptr<AudioRendererSink> audio_renderer_sink_; |