Commit 8d5642a7 authored by xhwang's avatar xhwang Committed by Commit bot

Pass mojo::MediaRendererPtr in MojoRendererImpl's constructor.

BUG=416570
TEST=Existing tests pass.

Review URL: https://codereview.chromium.org/785643002

Cr-Commit-Position: refs/heads/master@{#307121}
parent f90eb48e
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include "mojo/public/cpp/application/application_delegate.h" #include "mojo/public/cpp/application/application_delegate.h"
#include "mojo/public/cpp/application/application_impl.h" #include "mojo/public/cpp/application/application_impl.h"
#include "mojo/public/cpp/application/application_test_base.h" #include "mojo/public/cpp/application/application_test_base.h"
#include "mojo/public/cpp/application/connect.h"
namespace { namespace {
...@@ -117,7 +118,13 @@ class MojoRendererTest : public mojo::test::ApplicationTestBase { ...@@ -117,7 +118,13 @@ class MojoRendererTest : public mojo::test::ApplicationTestBase {
->GetServiceProvider(); ->GetServiceProvider();
} }
mojo::ServiceProvider* service_provider() { return service_provider_; } mojo::MediaRendererPtr CreateMediaRenderer() {
mojo::MediaRendererPtr mojo_media_renderer;
mojo::ConnectToService(service_provider_,
&mojo_media_renderer);
return mojo_media_renderer.Pass();
}
DemuxerStreamProvider* stream_provider() { DemuxerStreamProvider* stream_provider() {
return demuxer_stream_provider_.get(); return demuxer_stream_provider_.get();
} }
...@@ -142,7 +149,7 @@ void ErrorCallback(PipelineStatus* output, PipelineStatus status) { ...@@ -142,7 +149,7 @@ void ErrorCallback(PipelineStatus* output, PipelineStatus status) {
// connection. The test also initializes a media::AudioRendererImpl which // connection. The test also initializes a media::AudioRendererImpl which
// will error-out expectedly due to lack of support for decoder selection. // will error-out expectedly due to lack of support for decoder selection.
TEST_F(MojoRendererTest, BasicInitialize) { TEST_F(MojoRendererTest, BasicInitialize) {
MojoRendererImpl mojo_renderer_impl(task_runner(), service_provider()); MojoRendererImpl mojo_renderer_impl(task_runner(), CreateMediaRenderer());
PipelineStatus expected_error(PIPELINE_OK); PipelineStatus expected_error(PIPELINE_OK);
mojo_renderer_impl.Initialize( mojo_renderer_impl.Initialize(
stream_provider(), base::MessageLoop::current()->QuitClosure(), stream_provider(), base::MessageLoop::current()->QuitClosure(),
......
...@@ -19,12 +19,12 @@ namespace media { ...@@ -19,12 +19,12 @@ namespace media {
MojoRendererImpl::MojoRendererImpl( MojoRendererImpl::MojoRendererImpl(
const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
mojo::ServiceProvider* media_renderer_provider) mojo::MediaRendererPtr remote_media_renderer)
: task_runner_(task_runner), : task_runner_(task_runner),
remote_media_renderer_(remote_media_renderer.Pass()),
weak_factory_(this) { weak_factory_(this) {
DVLOG(1) << __FUNCTION__; DVLOG(1) << __FUNCTION__;
DCHECK(media_renderer_provider); DCHECK(remote_media_renderer_);
mojo::ConnectToService(media_renderer_provider, &remote_media_renderer_);
remote_media_renderer_.set_client(this); remote_media_renderer_.set_client(this);
} }
......
...@@ -14,11 +14,8 @@ namespace base { ...@@ -14,11 +14,8 @@ namespace base {
class SingleThreadTaskRunner; class SingleThreadTaskRunner;
} }
namespace mojo {
class ServiceProvider;
}
namespace media { namespace media {
class DemuxerStreamProvider; class DemuxerStreamProvider;
// A media::Renderer that proxies to a mojo::MediaRenderer. That // A media::Renderer that proxies to a mojo::MediaRenderer. That
...@@ -30,11 +27,9 @@ class DemuxerStreamProvider; ...@@ -30,11 +27,9 @@ class DemuxerStreamProvider;
class MojoRendererImpl : public Renderer, public mojo::MediaRendererClient { class MojoRendererImpl : public Renderer, public mojo::MediaRendererClient {
public: public:
// |task_runner| is the TaskRunner on which all methods are invoked. // |task_runner| is the TaskRunner on which all methods are invoked.
// |media_renderer_provider| is a ServiceProvider from a connected
// Application that is hosting a mojo::MediaRenderer.
MojoRendererImpl( MojoRendererImpl(
const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
mojo::ServiceProvider* media_renderer_provider); mojo::MediaRendererPtr remote_media_renderer);
~MojoRendererImpl() override; ~MojoRendererImpl() override;
// Renderer implementation. // Renderer implementation.
......
...@@ -18,7 +18,9 @@ ...@@ -18,7 +18,9 @@
#include "media/blink/webmediaplayer_impl.h" #include "media/blink/webmediaplayer_impl.h"
#include "media/blink/webmediaplayer_params.h" #include "media/blink/webmediaplayer_params.h"
#include "media/filters/gpu_video_accelerator_factories.h" #include "media/filters/gpu_video_accelerator_factories.h"
#include "media/mojo/interfaces/media_renderer.mojom.h"
#include "media/mojo/services/mojo_renderer_impl.h" #include "media/mojo/services/mojo_renderer_impl.h"
#include "mojo/public/cpp/application/connect.h"
#include "mojo/public/interfaces/application/shell.mojom.h" #include "mojo/public/interfaces/application/shell.mojom.h"
namespace mojo { namespace mojo {
...@@ -59,8 +61,13 @@ blink::WebMediaPlayer* WebMediaPlayerFactory::CreateMediaPlayer( ...@@ -59,8 +61,13 @@ blink::WebMediaPlayer* WebMediaPlayerFactory::CreateMediaPlayer(
ServiceProviderPtr media_renderer_service_provider; ServiceProviderPtr media_renderer_service_provider;
shell->ConnectToApplication("mojo:media", shell->ConnectToApplication("mojo:media",
GetProxy(&media_renderer_service_provider)); GetProxy(&media_renderer_service_provider));
renderer.reset(new media::MojoRendererImpl(
GetMediaThreadTaskRunner(), media_renderer_service_provider.get())); MediaRendererPtr mojo_media_renderer;
ConnectToService(media_renderer_service_provider.get(),
&mojo_media_renderer);
renderer.reset(new media::MojoRendererImpl(GetMediaThreadTaskRunner(),
mojo_media_renderer.Pass()));
} }
media::WebMediaPlayerParams params( media::WebMediaPlayerParams params(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment