diff options
author | Bartosz Fabianowski <bartfab@chromium.org> | 2015-04-16 12:27:51 +0200 |
---|---|---|
committer | Bartosz Fabianowski <bartfab@chromium.org> | 2015-04-16 10:28:32 +0000 |
commit | 85a8238181175de195158bf1554f530cd0f6e3f1 (patch) | |
tree | 72b0b33ece151dc9cdb2e7af36e8d554ec64350e /chromecast | |
parent | 919dce4400651813d5ff6e8a85b944a5987adcb7 (diff) | |
download | chromium_src-85a8238181175de195158bf1554f530cd0f6e3f1.zip chromium_src-85a8238181175de195158bf1554f530cd0f6e3f1.tar.gz chromium_src-85a8238181175de195158bf1554f530cd0f6e3f1.tar.bz2 |
Revert "Speculative revert by sheriff"
This reverts commit 919dce4400651813d5ff6e8a85b944a5987adcb7.
BUG=None
TBR=akuegel
Review URL: https://codereview.chromium.org/1094553002
Cr-Commit-Position: refs/heads/master@{#325412}
Diffstat (limited to 'chromecast')
6 files changed, 20 insertions, 15 deletions
diff --git a/chromecast/media/base/switching_media_renderer.cc b/chromecast/media/base/switching_media_renderer.cc index 1ca45b2..79b7d1ef 100644 --- a/chromecast/media/base/switching_media_renderer.cc +++ b/chromecast/media/base/switching_media_renderer.cc @@ -29,7 +29,6 @@ void SwitchingMediaRenderer::Initialize( const ::media::PipelineStatusCB& init_cb, const ::media::StatisticsCB& statistics_cb, const ::media::BufferingStateCB& buffering_state_cb, - const ::media::Renderer::PaintCB& paint_cb, const base::Closure& ended_cb, const ::media::PipelineStatusCB& error_cb, const base::Closure& waiting_for_decryption_key_cb) { @@ -53,7 +52,7 @@ void SwitchingMediaRenderer::Initialize( return GetRenderer()->Initialize( demuxer_stream_provider, init_cb, statistics_cb, buffering_state_cb, - paint_cb, ended_cb, error_cb, waiting_for_decryption_key_cb); + ended_cb, error_cb, waiting_for_decryption_key_cb); } ::media::Renderer* SwitchingMediaRenderer::GetRenderer() const { diff --git a/chromecast/media/base/switching_media_renderer.h b/chromecast/media/base/switching_media_renderer.h index 830cef6..2739f40 100644 --- a/chromecast/media/base/switching_media_renderer.h +++ b/chromecast/media/base/switching_media_renderer.h @@ -36,7 +36,6 @@ class SwitchingMediaRenderer : public ::media::Renderer { const ::media::PipelineStatusCB& init_cb, const ::media::StatisticsCB& statistics_cb, const ::media::BufferingStateCB& buffering_state_cb, - const ::media::Renderer::PaintCB& paint_cb, const base::Closure& ended_cb, const ::media::PipelineStatusCB& error_cb, const base::Closure& waiting_for_decryption_key_cb) override; diff --git a/chromecast/media/cma/filters/cma_renderer.cc b/chromecast/media/cma/filters/cma_renderer.cc index 1473f02..bc29b4f 100644 --- a/chromecast/media/cma/filters/cma_renderer.cc +++ b/chromecast/media/cma/filters/cma_renderer.cc @@ -22,6 +22,7 @@ #include "media/base/pipeline_status.h" #include "media/base/time_delta_interpolator.h" #include "media/base/video_frame.h" +#include "media/base/video_renderer_sink.h" #include "ui/gfx/geometry/size.h" namespace chromecast { @@ -36,12 +37,14 @@ const base::TimeDelta kMaxDeltaFetcher( } // namespace -CmaRenderer::CmaRenderer(scoped_ptr<MediaPipeline> media_pipeline) +CmaRenderer::CmaRenderer(scoped_ptr<MediaPipeline> media_pipeline, + ::media::VideoRendererSink* video_renderer_sink) : media_task_runner_factory_( new BalancedMediaTaskRunnerFactory(kMaxDeltaFetcher)), media_pipeline_(media_pipeline.Pass()), audio_pipeline_(media_pipeline_->GetAudioPipeline()), video_pipeline_(media_pipeline_->GetVideoPipeline()), + video_renderer_sink_(video_renderer_sink), state_(kUninitialized), is_pending_transition_(false), has_audio_(false), @@ -76,7 +79,6 @@ void CmaRenderer::Initialize( const ::media::PipelineStatusCB& init_cb, const ::media::StatisticsCB& statistics_cb, const ::media::BufferingStateCB& buffering_state_cb, - const PaintCB& paint_cb, const base::Closure& ended_cb, const ::media::PipelineStatusCB& error_cb, const base::Closure& waiting_for_decryption_key_cb) { @@ -97,7 +99,6 @@ void CmaRenderer::Initialize( demuxer_stream_provider_ = demuxer_stream_provider; statistics_cb_ = statistics_cb; buffering_state_cb_ = buffering_state_cb; - paint_cb_ = paint_cb; ended_cb_ = ended_cb; error_cb_ = error_cb; // TODO(erickung): wire up waiting_for_decryption_key_cb. @@ -160,7 +161,8 @@ void CmaRenderer::StartPlayingFrom(base::TimeDelta time) { // Pipeline::StateTransitionTask). if (!initial_video_hole_created_) { initial_video_hole_created_ = true; - paint_cb_.Run(::media::VideoFrame::CreateHoleFrame(initial_natural_size_)); + video_renderer_sink_->PaintFrameUsingOldRenderingPath( + ::media::VideoFrame::CreateHoleFrame(initial_natural_size_)); } #endif @@ -383,7 +385,8 @@ void CmaRenderer::OnStatisticsUpdated( void CmaRenderer::OnNaturalSizeChanged(const gfx::Size& size) { DCHECK(thread_checker_.CalledOnValidThread()); #if defined(VIDEO_HOLE) - paint_cb_.Run(::media::VideoFrame::CreateHoleFrame(size)); + video_renderer_sink_->PaintFrameUsingOldRenderingPath( + ::media::VideoFrame::CreateHoleFrame(size)); #endif } diff --git a/chromecast/media/cma/filters/cma_renderer.h b/chromecast/media/cma/filters/cma_renderer.h index 62efd7c..25fec41 100644 --- a/chromecast/media/cma/filters/cma_renderer.h +++ b/chromecast/media/cma/filters/cma_renderer.h @@ -23,6 +23,7 @@ namespace media { class DemuxerStreamProvider; class TimeDeltaInterpolator; class VideoFrame; +class VideoRendererSink; } namespace chromecast { @@ -34,7 +35,8 @@ class VideoPipeline; class CmaRenderer : public ::media::Renderer { public: - explicit CmaRenderer(scoped_ptr<MediaPipeline> media_pipeline); + CmaRenderer(scoped_ptr<MediaPipeline> media_pipeline, + ::media::VideoRendererSink* video_renderer_sink); ~CmaRenderer() override; // ::media::Renderer implementation: @@ -43,7 +45,6 @@ class CmaRenderer : public ::media::Renderer { const ::media::PipelineStatusCB& init_cb, const ::media::StatisticsCB& statistics_cb, const ::media::BufferingStateCB& buffering_state_cb, - const PaintCB& paint_cb, const base::Closure& ended_cb, const ::media::PipelineStatusCB& error_cb, const base::Closure& waiting_for_decryption_key_cb) override; @@ -98,11 +99,11 @@ class CmaRenderer : public ::media::Renderer { scoped_ptr<MediaPipeline> media_pipeline_; AudioPipeline* audio_pipeline_; VideoPipeline* video_pipeline_; + ::media::VideoRendererSink* video_renderer_sink_; ::media::DemuxerStreamProvider* demuxer_stream_provider_; // Set of callbacks. - PaintCB paint_cb_; ::media::PipelineStatusCB init_cb_; ::media::StatisticsCB statistics_cb_; base::Closure ended_cb_; diff --git a/chromecast/renderer/media/chromecast_media_renderer_factory.cc b/chromecast/renderer/media/chromecast_media_renderer_factory.cc index cdfab39..62fe771 100644 --- a/chromecast/renderer/media/chromecast_media_renderer_factory.cc +++ b/chromecast/renderer/media/chromecast_media_renderer_factory.cc @@ -29,7 +29,8 @@ ChromecastMediaRendererFactory::~ChromecastMediaRendererFactory() { scoped_ptr<::media::Renderer> ChromecastMediaRendererFactory::CreateRenderer( const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, - ::media::AudioRendererSink* audio_renderer_sink) { + ::media::AudioRendererSink* audio_renderer_sink, + ::media::VideoRendererSink* video_renderer_sink) { if (!default_render_factory_) { // Chromecast doesn't have input audio devices, so leave this uninitialized ::media::AudioParameters input_audio_params; @@ -61,10 +62,11 @@ scoped_ptr<::media::Renderer> ChromecastMediaRendererFactory::CreateRenderer( content::RenderThread::Get()->GetIOMessageLoopProxy(), cma_load_type)); scoped_ptr<CmaRenderer> cma_renderer( - new CmaRenderer(cma_media_pipeline.Pass())); + new CmaRenderer(cma_media_pipeline.Pass(), video_renderer_sink)); scoped_ptr<::media::Renderer> default_media_render( default_render_factory_->CreateRenderer(media_task_runner, - audio_renderer_sink)); + audio_renderer_sink, + video_renderer_sink)); scoped_ptr<SwitchingMediaRenderer> media_renderer(new SwitchingMediaRenderer( default_media_render.Pass(), cma_renderer.Pass())); return media_renderer.Pass(); diff --git a/chromecast/renderer/media/chromecast_media_renderer_factory.h b/chromecast/renderer/media/chromecast_media_renderer_factory.h index f880ff6..8206094 100644 --- a/chromecast/renderer/media/chromecast_media_renderer_factory.h +++ b/chromecast/renderer/media/chromecast_media_renderer_factory.h @@ -27,7 +27,8 @@ class ChromecastMediaRendererFactory : public ::media::RendererFactory { // ::media::RendererFactory implementation. scoped_ptr<::media::Renderer> CreateRenderer( const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, - ::media::AudioRendererSink* audio_renderer_sink) final; + ::media::AudioRendererSink* audio_renderer_sink, + ::media::VideoRendererSink* video_renderer_sink) final; private: int render_frame_id_; |