| Index: chromecast/browser/cast_content_browser_client.cc
|
| diff --git a/chromecast/browser/cast_content_browser_client.cc b/chromecast/browser/cast_content_browser_client.cc
|
| index 0c601c31f543cf276084da536929169a3dacbd67..63d9e931edc9e6c59b7b75899e0c508f174cee29 100644
|
| --- a/chromecast/browser/cast_content_browser_client.cc
|
| +++ b/chromecast/browser/cast_content_browser_client.cc
|
| @@ -77,28 +77,39 @@ namespace shell {
|
|
|
| namespace {
|
| #if defined(ENABLE_MOJO_MEDIA_IN_BROWSER_PROCESS)
|
| +
|
| +static std::unique_ptr<media::CastMojoMediaClient> CreateCastMojoMediaClient(
|
| + CastContentBrowserClient* browser_client) {
|
| + return base::MakeUnique<media::CastMojoMediaClient>(
|
| + base::Bind(&CastContentBrowserClient::CreateMediaPipelineBackend,
|
| + base::Unretained(browser_client)),
|
| + base::Bind(&CastContentBrowserClient::CreateCdmFactory,
|
| + base::Unretained(browser_client)),
|
| + browser_client->GetVideoResolutionPolicy(),
|
| + browser_client->media_resource_tracker());
|
| +}
|
| +
|
| static std::unique_ptr<::shell::Service> CreateMojoMediaApplication(
|
| CastContentBrowserClient* browser_client,
|
| const base::Closure& quit_closure) {
|
| - std::unique_ptr<media::CastMojoMediaClient> mojo_media_client(
|
| - new media::CastMojoMediaClient(
|
| - base::Bind(&CastContentBrowserClient::CreateMediaPipelineBackend,
|
| - base::Unretained(browser_client)),
|
| - base::Bind(&CastContentBrowserClient::CreateCdmFactory,
|
| - base::Unretained(browser_client)),
|
| - browser_client->GetVideoResolutionPolicy(),
|
| - browser_client->media_resource_tracker()));
|
| - return std::unique_ptr<::shell::Service>(
|
| - new ::media::MojoMediaApplication(std::move(mojo_media_client),
|
| - quit_closure));
|
| + return std::unique_ptr<::shell::Service>(new ::media::MojoMediaApplication(
|
| + CreateCastMojoMediaClient(browser_client), quit_closure));
|
| }
|
| -#endif // defined(ENABLE_MOJO_MEDIA_IN_BROWSER_PROCESS)
|
|
|
| +static void CreateVideoDecoder(::media::MojoMediaClient* mojo_media_client,
|
| + ::media::mojom::VideoDecoderRequest request) {
|
| + DCHECK(mojo_media_client);
|
| + mojo::MakeStrongBinding<::media::mojom::VideoDecoder>(
|
| + base::MakeUnique<::media::MojoVideoDecoderService>(mojo_media_client),
|
| + std::move(request));
|
| +}
|
| +#endif // defined(ENABLE_MOJO_MEDIA_IN_BROWSER_PROCESS)
|
| } // namespace
|
|
|
| CastContentBrowserClient::CastContentBrowserClient()
|
| : cast_browser_main_parts_(nullptr),
|
| - url_request_context_factory_(new URLRequestContextFactory()) {}
|
| + url_request_context_factory_(new URLRequestContextFactory()),
|
| + cast_mojo_media_client_(CreateCastMojoMediaClient(this)) {}
|
|
|
| CastContentBrowserClient::~CastContentBrowserClient() {
|
| content::BrowserThread::DeleteSoon(
|
| @@ -422,6 +433,7 @@ void CastContentBrowserClient::ExposeInterfacesToRenderer(
|
| base::Bind(&media::MediaCapsImpl::AddBinding,
|
| base::Unretained(cast_browser_main_parts_->media_caps())),
|
| base::ThreadTaskRunnerHandle::Get());
|
| + registry->AddInterface()
|
| }
|
|
|
| void CastContentBrowserClient::RegisterInProcessMojoApplications(
|
|
|