| Index: chromecast/media/service/cast_renderer.cc
|
| diff --git a/chromecast/media/service/cast_renderer.cc b/chromecast/media/service/cast_renderer.cc
|
| index aa3ae067644ddc8c5fcbbe77667e5a653c156fe4..109517b2bc3f12a4ae30fd527de23dd9ffa65d2d 100644
|
| --- a/chromecast/media/service/cast_renderer.cc
|
| +++ b/chromecast/media/service/cast_renderer.cc
|
| @@ -18,8 +18,8 @@
|
| #include "chromecast/public/media/media_pipeline_device_params.h"
|
| #include "media/base/audio_decoder_config.h"
|
| #include "media/base/demuxer_stream.h"
|
| -#include "media/base/demuxer_stream_provider.h"
|
| #include "media/base/media_log.h"
|
| +#include "media/base/media_resource.h"
|
| #include "media/base/renderer_client.h"
|
|
|
| namespace chromecast {
|
| @@ -61,10 +61,9 @@ CastRenderer::~CastRenderer() {
|
| video_resolution_policy_->RemoveObserver(this);
|
| }
|
|
|
| -void CastRenderer::Initialize(
|
| - ::media::DemuxerStreamProvider* demuxer_stream_provider,
|
| - ::media::RendererClient* client,
|
| - const ::media::PipelineStatusCB& init_cb) {
|
| +void CastRenderer::Initialize(::media::MediaResource* media_resource,
|
| + ::media::RendererClient* client,
|
| + const ::media::PipelineStatusCB& init_cb) {
|
| CMALOG(kLogControl) << __FUNCTION__ << ": " << this;
|
| DCHECK(task_runner_->BelongsToCurrentThread());
|
|
|
| @@ -92,9 +91,22 @@ void CastRenderer::Initialize(
|
| pipeline_->SetClient(pipeline_client);
|
| pipeline_->Initialize(load_type, std::move(backend));
|
|
|
| + // Obtain the first enabled audio and video streams.
|
| + std::vector<::media::DemuxerStream*> streams = media_resource->GetStreams();
|
| + ::media::DemuxerStream* audio_stream = nullptr;
|
| + ::media::DemuxerStream* video_stream = nullptr;
|
| + for (const auto& s : streams) {
|
| + if (!audio_stream && s->enabled() &&
|
| + s->type() == ::media::DemuxerStream::AUDIO) {
|
| + audio_stream = s;
|
| + }
|
| + if (!video_stream && s->enabled() &&
|
| + s->type() == ::media::DemuxerStream::VIDEO) {
|
| + video_stream = s;
|
| + }
|
| + }
|
| +
|
| // Initialize audio.
|
| - ::media::DemuxerStream* audio_stream =
|
| - demuxer_stream_provider->GetStream(::media::DemuxerStream::AUDIO);
|
| if (audio_stream) {
|
| AvPipelineClient audio_client;
|
| audio_client.wait_for_key_cb = base::Bind(
|
| @@ -119,8 +131,6 @@ void CastRenderer::Initialize(
|
| }
|
|
|
| // Initialize video.
|
| - ::media::DemuxerStream* video_stream =
|
| - demuxer_stream_provider->GetStream(::media::DemuxerStream::VIDEO);
|
| if (video_stream) {
|
| VideoPipelineClient video_client;
|
| video_client.av_pipeline_client.wait_for_key_cb = base::Bind(
|
|
|