Index: media/base/pipeline_impl.cc |
diff --git a/media/base/pipeline_impl.cc b/media/base/pipeline_impl.cc |
index 43fdf5eb951113bab49777c1f94e89b3dc55434e..b980f2d97f8c3cf0890306045f816f66c3dcd6e4 100644 |
--- a/media/base/pipeline_impl.cc |
+++ b/media/base/pipeline_impl.cc |
@@ -98,6 +98,7 @@ class PipelineImpl::RendererWrapper : public DemuxerHost, |
}; |
// DemuxerHost implementaion. |
+ void OnMetadata(PipelineMetadata metadata) final; |
void OnBufferedTimeRangesChanged(const Ranges<base::TimeDelta>& ranges) final; |
void SetDuration(base::TimeDelta duration) final; |
void OnDemuxerError(PipelineStatus error) final; |
@@ -135,7 +136,6 @@ class PipelineImpl::RendererWrapper : public DemuxerHost, |
void InitializeDemuxer(const PipelineStatusCB& done_cb); |
void InitializeRenderer(const PipelineStatusCB& done_cb); |
void DestroyRenderer(); |
- void ReportMetadata(); |
const scoped_refptr<base::SingleThreadTaskRunner> media_task_runner_; |
const scoped_refptr<base::SingleThreadTaskRunner> main_task_runner_; |
@@ -241,10 +241,6 @@ void PipelineImpl::RendererWrapper::Start( |
// Initialize demuxer. |
fns.Push(base::Bind(&RendererWrapper::InitializeDemuxer, weak_this_)); |
- // Once the demuxer is initialized successfully, media metadata must be |
- // available - report the metadata to client. |
- fns.Push(base::Bind(&RendererWrapper::ReportMetadata, weak_this_)); |
- |
// Initialize renderer. |
fns.Push(base::Bind(&RendererWrapper::InitializeRenderer, weak_this_)); |
@@ -486,6 +482,11 @@ void PipelineImpl::RendererWrapper::SetCdm( |
cdm_attached_cb, cdm_context)); |
} |
+void PipelineImpl::RendererWrapper::OnMetadata(PipelineMetadata metadata) { |
+ main_task_runner_->PostTask(FROM_HERE, base::Bind(&PipelineImpl::OnMetadata, |
+ weak_pipeline_, metadata)); |
+} |
+ |
void PipelineImpl::RendererWrapper::OnBufferedTimeRangesChanged( |
const Ranges<base::TimeDelta>& ranges) { |
// TODO(alokp): Add thread DCHECK after ensuring that all Demuxer |
@@ -845,25 +846,6 @@ void PipelineImpl::RendererWrapper::DestroyRenderer() { |
} |
} |
-void PipelineImpl::RendererWrapper::ReportMetadata() { |
- DCHECK(media_task_runner_->BelongsToCurrentThread()); |
- |
- PipelineMetadata metadata; |
- metadata.timeline_offset = demuxer_->GetTimelineOffset(); |
- DemuxerStream* stream = demuxer_->GetStream(DemuxerStream::VIDEO); |
- if (stream) { |
- metadata.has_video = true; |
- metadata.natural_size = stream->video_decoder_config().natural_size(); |
- metadata.video_rotation = stream->video_rotation(); |
- } |
- if (demuxer_->GetStream(DemuxerStream::AUDIO)) { |
- metadata.has_audio = true; |
- } |
- |
- main_task_runner_->PostTask(FROM_HERE, base::Bind(&PipelineImpl::OnMetadata, |
- weak_pipeline_, metadata)); |
-} |
- |
PipelineImpl::PipelineImpl( |
const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, |
MediaLog* media_log) |