Chromium Code Reviews| Index: chromecast/media/cma/pipeline/video_pipeline_impl.cc |
| diff --git a/chromecast/media/cma/pipeline/video_pipeline_impl.cc b/chromecast/media/cma/pipeline/video_pipeline_impl.cc |
| index c1328af39f1b7155cdaf7b9341ed5e7711477db0..0f48cbd63d25d3915c808ece1d59a80bbbf2cd4e 100644 |
| --- a/chromecast/media/cma/pipeline/video_pipeline_impl.cc |
| +++ b/chromecast/media/cma/pipeline/video_pipeline_impl.cc |
| @@ -101,11 +101,10 @@ void VideoPipelineImpl::SetClient(const VideoPipelineClient& client) { |
| } |
| void VideoPipelineImpl::Initialize( |
| - const ::media::VideoDecoderConfig& video_config, |
| + const std::vector<::media::VideoDecoderConfig>& configs, |
| scoped_ptr<CodedFrameProvider> frame_provider, |
| const ::media::PipelineStatusCB& status_cb) { |
| - CMALOG(kLogControl) << "VideoPipelineImpl::Initialize " |
| - << video_config.AsHumanReadableString(); |
| + CMALOG(kLogControl) << __FUNCTION__ << " config (" << configs.size() << ")"; |
| VideoPipelineDevice::VideoClient client; |
| client.natural_size_changed_cb = |
| base::Bind(&VideoPipelineImpl::OnNaturalSizeChanged, weak_this_); |
| @@ -113,8 +112,19 @@ void VideoPipelineImpl::Initialize( |
| if (frame_provider) |
| SetCodedFrameProvider(frame_provider.Pass()); |
| - if (!video_device_->SetConfig( |
| - DecoderConfigAdapter::ToCastVideoConfig(kPrimary, video_config)) || |
| + DCHECK(configs.size() <= 2); |
| + DCHECK(configs[0].IsValidConfig()); |
| + VideoConfig video_config = |
| + DecoderConfigAdapter::ToCastVideoConfig(kPrimary, configs[0]); |
| + VideoConfig secondary_config; |
| + if (configs.size() == 2) { |
| + DCHECK(configs[1].IsValidConfig()); |
| + secondary_config = DecoderConfigAdapter::ToCastVideoConfig(kSecondary, |
| + configs[1]); |
| + video_config.additional_config = &secondary_config; |
| + } |
| + |
| + if (!video_device_->SetConfig(video_config) || |
| !av_pipeline_impl_->Initialize()) { |
| status_cb.Run(::media::PIPELINE_ERROR_INITIALIZATION_FAILED); |
| return; |
| @@ -127,6 +137,7 @@ void VideoPipelineImpl::OnUpdateConfig( |
| StreamId id, |
| const ::media::AudioDecoderConfig& audio_config, |
| const ::media::VideoDecoderConfig& video_config) { |
| + DCHECK(!audio_config.IsValidConfig()); |
|
erickung1
2015/06/07 05:20:26
I ended up removing this DCHECK in this CL, same a
|
| if (video_config.IsValidConfig()) { |
| CMALOG(kLogControl) << "VideoPipelineImpl::OnUpdateConfig id:" << id << " " |
| << video_config.AsHumanReadableString(); |