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 @@
#include "mojo/public/cpp/application/application_delegate.h"
#include "mojo/public/cpp/application/application_impl.h"
#include "mojo/public/cpp/application/application_test_base.h"
#include "mojo/public/cpp/application/connect.h"
namespace {
......@@ -117,7 +118,13 @@ class MojoRendererTest : public mojo::test::ApplicationTestBase {
->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() {
return demuxer_stream_provider_.get();
}
......@@ -142,7 +149,7 @@ void ErrorCallback(PipelineStatus* output, PipelineStatus status) {
// connection. The test also initializes a media::AudioRendererImpl which
// will error-out expectedly due to lack of support for decoder selection.
TEST_F(MojoRendererTest, BasicInitialize) {
MojoRendererImpl mojo_renderer_impl(task_runner(), service_provider());
MojoRendererImpl mojo_renderer_impl(task_runner(), CreateMediaRenderer());
PipelineStatus expected_error(PIPELINE_OK);
mojo_renderer_impl.Initialize(
stream_provider(), base::MessageLoop::current()->QuitClosure(),
......
......@@ -19,12 +19,12 @@ namespace media {
MojoRendererImpl::MojoRendererImpl(
const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
mojo::ServiceProvider* media_renderer_provider)
mojo::MediaRendererPtr remote_media_renderer)
: task_runner_(task_runner),
remote_media_renderer_(remote_media_renderer.Pass()),
weak_factory_(this) {
DVLOG(1) << __FUNCTION__;
DCHECK(media_renderer_provider);
mojo::ConnectToService(media_renderer_provider, &remote_media_renderer_);
DCHECK(remote_media_renderer_);
remote_media_renderer_.set_client(this);
}
......
......@@ -14,11 +14,8 @@ namespace base {
class SingleThreadTaskRunner;
}
namespace mojo {
class ServiceProvider;
}
namespace media {
class DemuxerStreamProvider;
// A media::Renderer that proxies to a mojo::MediaRenderer. That
......@@ -30,11 +27,9 @@ class DemuxerStreamProvider;
class MojoRendererImpl : public Renderer, public mojo::MediaRendererClient {
public:
// |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(
const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
mojo::ServiceProvider* media_renderer_provider);
mojo::MediaRendererPtr remote_media_renderer);
~MojoRendererImpl() override;
// Renderer implementation.
......
......@@ -18,7 +18,9 @@
#include "media/blink/webmediaplayer_impl.h"
#include "media/blink/webmediaplayer_params.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 "mojo/public/cpp/application/connect.h"
#include "mojo/public/interfaces/application/shell.mojom.h"
namespace mojo {
......@@ -59,8 +61,13 @@ blink::WebMediaPlayer* WebMediaPlayerFactory::CreateMediaPlayer(
ServiceProviderPtr media_renderer_service_provider;
shell->ConnectToApplication("mojo:media",
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(
......
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