Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(777)

Unified Diff: media/base/pipeline_impl.cc

Issue 2272293002: Introducing DemuxerHost::OnMetadata. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/base/mock_demuxer_host.h ('k') | media/filters/chunk_demuxer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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)
« no previous file with comments | « media/base/mock_demuxer_host.h ('k') | media/filters/chunk_demuxer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698