| Index: media/filters/chunk_demuxer.cc
|
| diff --git a/media/filters/chunk_demuxer.cc b/media/filters/chunk_demuxer.cc
|
| index 832caa32459ca84426793a883e5186726684812f..d27f0f9931c2e5dbedadc4bad65ee6927606ee3a 100644
|
| --- a/media/filters/chunk_demuxer.cc
|
| +++ b/media/filters/chunk_demuxer.cc
|
| @@ -1021,6 +1021,26 @@ void ChunkDemuxer::ReportError_Locked(PipelineStatus error) {
|
| host_->OnDemuxerError(error);
|
| }
|
|
|
| +void ChunkDemuxer::ReportMetadata_Locked() const {
|
| + DVLOG(1) << __func__;
|
| + lock_.AssertAcquired();
|
| + DCHECK_EQ(state_, INITIALIZED);
|
| +
|
| + PipelineMetadata metadata;
|
| + metadata.timeline_offset = timeline_offset_;
|
| + if (video_) {
|
| + metadata.has_video = true;
|
| + metadata.natural_size = video_->video_decoder_config().natural_size();
|
| + metadata.video_rotation = video_->video_rotation();
|
| + }
|
| + if (audio_) {
|
| + metadata.has_audio = true;
|
| + }
|
| +
|
| + base::AutoUnlock auto_unlock(lock_);
|
| + host_->OnMetadata(metadata);
|
| +}
|
| +
|
| bool ChunkDemuxer::IsSeekWaitingForData_Locked() const {
|
| lock_.AssertAcquired();
|
| for (MediaSourceStateMap::const_iterator itr = source_state_map_.begin();
|
| @@ -1102,6 +1122,9 @@ void ChunkDemuxer::OnSourceInitDone(
|
| // The demuxer is now initialized after the |start_timestamp_| was set.
|
| ChangeState_Locked(INITIALIZED);
|
| base::ResetAndReturn(&init_cb_).Run(PIPELINE_OK);
|
| +
|
| + // Report metadata.
|
| + ReportMetadata_Locked();
|
| }
|
|
|
| // static
|
|
|