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]); |
dcheng
2015/06/05 23:41:18
What process is this running in? It looks like thi
erickung1
2015/06/06 00:04:17
Done.
OK. it will return error if the vector is em
|
+ 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()); |
if (video_config.IsValidConfig()) { |
CMALOG(kLogControl) << "VideoPipelineImpl::OnUpdateConfig id:" << id << " " |
<< video_config.AsHumanReadableString(); |