Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6478)

Unified Diff: chromecast/browser/cast_content_browser_client.cc

Issue 2363303002: [WIP] Proxy RtcVideoDecoder calls to a media::VideoDecoder.
Patch Set: Now working with remote ffmpeg decoder Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chromecast/browser/cast_content_browser_client.h ('k') | components/policy/core/common/schema_registry.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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(
« no previous file with comments | « chromecast/browser/cast_content_browser_client.h ('k') | components/policy/core/common/schema_registry.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698