summaryrefslogtreecommitdiffstats
path: root/chromecast
diff options
context:
space:
mode:
authorBartosz Fabianowski <bartfab@chromium.org>2015-04-16 12:27:51 +0200
committerBartosz Fabianowski <bartfab@chromium.org>2015-04-16 10:28:32 +0000
commit85a8238181175de195158bf1554f530cd0f6e3f1 (patch)
tree72b0b33ece151dc9cdb2e7af36e8d554ec64350e /chromecast
parent919dce4400651813d5ff6e8a85b944a5987adcb7 (diff)
downloadchromium_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')
-rw-r--r--chromecast/media/base/switching_media_renderer.cc3
-rw-r--r--chromecast/media/base/switching_media_renderer.h1
-rw-r--r--chromecast/media/cma/filters/cma_renderer.cc13
-rw-r--r--chromecast/media/cma/filters/cma_renderer.h7
-rw-r--r--chromecast/renderer/media/chromecast_media_renderer_factory.cc8
-rw-r--r--chromecast/renderer/media/chromecast_media_renderer_factory.h3
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_;