| Index: media/mojo/services/mojo_renderer_service.cc
|
| diff --git a/media/mojo/services/mojo_renderer_service.cc b/media/mojo/services/mojo_renderer_service.cc
|
| index 562ae1890ecb8e7faee809d2f75768eb5432ea39..6c14f7fec31004d65acbbee9be7c91e5db5127e3 100644
|
| --- a/media/mojo/services/mojo_renderer_service.cc
|
| +++ b/media/mojo/services/mojo_renderer_service.cc
|
| @@ -18,6 +18,7 @@
|
| #include "media/filters/renderer_impl.h"
|
| #include "media/filters/video_renderer_impl.h"
|
| #include "media/mojo/services/demuxer_stream_provider_shim.h"
|
| +#include "media/mojo/services/mojo_cdm_service_context.h"
|
| #include "media/mojo/services/mojo_demuxer_stream_adapter.h"
|
| #include "media/mojo/services/renderer_config.h"
|
|
|
| @@ -34,8 +35,10 @@ static void LogMediaSourceError(const scoped_refptr<MediaLog>& media_log,
|
| static void PaintNothing(const scoped_refptr<VideoFrame>& frame) {
|
| }
|
|
|
| -MojoRendererService::MojoRendererService()
|
| - : state_(STATE_UNINITIALIZED),
|
| +MojoRendererService::MojoRendererService(
|
| + MojoCdmServiceContext* cdm_service_context)
|
| + : cdm_service_context_(cdm_service_context),
|
| + state_(STATE_UNINITIALIZED),
|
| last_media_time_usec_(0),
|
| weak_factory_(this) {
|
| weak_this_ = weak_factory_.GetWeakPtr();
|
| @@ -110,6 +113,19 @@ void MojoRendererService::SetVolume(float volume) {
|
| renderer_->SetVolume(volume);
|
| }
|
|
|
| +void MojoRendererService::SetCdm(int32_t cdm_id,
|
| + const mojo::Callback<void(bool)>& callback) {
|
| + CdmContext* cdm_context = cdm_service_context_->GetCdmContext(cdm_id);
|
| + if (!cdm_context) {
|
| + DVLOG(1) << __FUNCTION__ << ": No CDM for " << cdm_id << " found.";
|
| + callback.Run(false);
|
| + return;
|
| + }
|
| +
|
| + renderer_->SetCdm(cdm_context, base::Bind(&MojoRendererService::OnCdmAttached,
|
| + weak_this_, callback));
|
| +}
|
| +
|
| void MojoRendererService::OnStreamReady(const mojo::Closure& callback) {
|
| DCHECK_EQ(state_, STATE_INITIALIZING);
|
|
|
| @@ -189,4 +205,11 @@ void MojoRendererService::OnFlushCompleted(const mojo::Closure& callback) {
|
| callback.Run();
|
| }
|
|
|
| +void MojoRendererService::OnCdmAttached(
|
| + const mojo::Callback<void(bool)>& callback,
|
| + bool success) {
|
| + DVLOG(1) << __FUNCTION__;
|
| + callback.Run(success);
|
| +}
|
| +
|
| } // namespace media
|
|
|