| 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 4987751b3b4e63bbb1da6ba1ca7d37bbcacb346c..03b5040b2f3f2c733d53af9f99fdf31576400420 100644
|
| --- a/media/mojo/services/mojo_renderer_service.cc
|
| +++ b/media/mojo/services/mojo_renderer_service.cc
|
| @@ -15,6 +15,8 @@
|
| #include "media/base/video_renderer.h"
|
| #include "media/filters/audio_renderer_impl.h"
|
| #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_demuxer_stream_adapter.h"
|
| #include "media/mojo/services/renderer_config.h"
|
| #include "mojo/application/application_runner_chromium.h"
|
| @@ -33,29 +35,8 @@ static void LogMediaSourceError(const scoped_refptr<MediaLog>& media_log,
|
| media_log->AddEvent(media_log->CreateMediaSourceErrorEvent(error));
|
| }
|
|
|
| -// Shim DemuxerStreamProvider wrapper for a single DemuxerStream.
|
| -// TODO(dalecurtis): Once we support more than one DemuxerStream we'll need a
|
| -// more complicated shim which can handle a mojo::Array<DemuxerStream>.
|
| -class DemuxerStreamProviderShim : public DemuxerStreamProvider {
|
| - public:
|
| - DemuxerStreamProviderShim(scoped_ptr<MojoDemuxerStreamAdapter> stream)
|
| - : stream_(stream.Pass()) {}
|
| -
|
| - ~DemuxerStreamProviderShim() override {}
|
| -
|
| - DemuxerStream* GetStream(DemuxerStream::Type type) override {
|
| - return type != stream_->type() ? nullptr : stream_.get();
|
| - };
|
| -
|
| - Liveness GetLiveness() const override {
|
| - return DemuxerStreamProvider::LIVENESS_UNKNOWN;
|
| - }
|
| -
|
| - private:
|
| - scoped_ptr<MojoDemuxerStreamAdapter> stream_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(DemuxerStreamProviderShim);
|
| -};
|
| +static void PaintNothing(const scoped_refptr<VideoFrame>& frame) {
|
| +}
|
|
|
| class MojoRendererApplication
|
| : public mojo::ApplicationDelegate,
|
| @@ -102,7 +83,16 @@ MojoRendererService::MojoRendererService(
|
| SetDecryptorReadyCB(),
|
| renderer_config->GetAudioHardwareConfig(),
|
| media_log));
|
| - scoped_ptr<VideoRenderer> video_renderer(nullptr);
|
| +
|
| + scoped_ptr<VideoRenderer> video_renderer(new VideoRendererImpl(
|
| + task_runner,
|
| + renderer_config->GetVideoDecoders(
|
| + task_runner,
|
| + base::Bind(&LogMediaSourceError, media_log)).Pass(),
|
| + SetDecryptorReadyCB(),
|
| + base::Bind(&PaintNothing),
|
| + true,
|
| + media_log));
|
|
|
| // Create renderer.
|
| renderer_.reset(new RendererImpl(
|
| @@ -112,7 +102,8 @@ MojoRendererService::MojoRendererService(
|
| MojoRendererService::~MojoRendererService() {
|
| }
|
|
|
| -void MojoRendererService::Initialize(mojo::DemuxerStreamPtr stream,
|
| +void MojoRendererService::Initialize(mojo::DemuxerStreamPtr audio,
|
| + mojo::DemuxerStreamPtr video,
|
| const mojo::Closure& callback) {
|
| DVLOG(1) << __FUNCTION__;
|
| DCHECK_EQ(state_, STATE_UNINITIALIZED);
|
| @@ -120,11 +111,9 @@ void MojoRendererService::Initialize(mojo::DemuxerStreamPtr stream,
|
|
|
| state_ = STATE_INITIALIZING;
|
| stream_provider_.reset(new DemuxerStreamProviderShim(
|
| - make_scoped_ptr(new MojoDemuxerStreamAdapter(
|
| - stream.Pass(),
|
| - base::Bind(&MojoRendererService::OnStreamReady,
|
| - weak_this_,
|
| - callback))).Pass()));
|
| + audio.Pass(),
|
| + video.Pass(),
|
| + base::Bind(&MojoRendererService::OnStreamReady, weak_this_, callback)));
|
| }
|
|
|
| void MojoRendererService::Flush(const mojo::Closure& callback) {
|
|
|