| Index: chromecast/renderer/media/cma_renderer.cc
|
| diff --git a/chromecast/media/cma/filters/cma_renderer.cc b/chromecast/renderer/media/cma_renderer.cc
|
| similarity index 91%
|
| rename from chromecast/media/cma/filters/cma_renderer.cc
|
| rename to chromecast/renderer/media/cma_renderer.cc
|
| index 1d9dadd6a8da872458dbc8004bb547e9d8c0b9af..922f5c9d8c45ce4dc30e8b529ca13540890fb40e 100644
|
| --- a/chromecast/media/cma/filters/cma_renderer.cc
|
| +++ b/chromecast/renderer/media/cma_renderer.cc
|
| @@ -2,7 +2,7 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#include "chromecast/media/cma/filters/cma_renderer.h"
|
| +#include "chromecast/renderer/media/cma_renderer.h"
|
|
|
| #include "base/bind.h"
|
| #include "base/callback_helpers.h"
|
| @@ -11,14 +11,14 @@
|
| #include "base/thread_task_runner_handle.h"
|
| #include "chromecast/media/cma/base/balanced_media_task_runner_factory.h"
|
| #include "chromecast/media/cma/base/cma_logging.h"
|
| -#include "chromecast/media/cma/filters/demuxer_stream_adapter.h"
|
| -#include "chromecast/media/cma/filters/hole_frame_factory.h"
|
| -#include "chromecast/media/cma/pipeline/audio_pipeline.h"
|
| #include "chromecast/media/cma/pipeline/av_pipeline_client.h"
|
| -#include "chromecast/media/cma/pipeline/media_pipeline.h"
|
| #include "chromecast/media/cma/pipeline/media_pipeline_client.h"
|
| -#include "chromecast/media/cma/pipeline/video_pipeline.h"
|
| #include "chromecast/media/cma/pipeline/video_pipeline_client.h"
|
| +#include "chromecast/renderer/media/audio_pipeline_proxy.h"
|
| +#include "chromecast/renderer/media/demuxer_stream_adapter.h"
|
| +#include "chromecast/renderer/media/hole_frame_factory.h"
|
| +#include "chromecast/renderer/media/media_pipeline_proxy.h"
|
| +#include "chromecast/renderer/media/video_pipeline_proxy.h"
|
| #include "media/base/bind_to_current_loop.h"
|
| #include "media/base/demuxer_stream_provider.h"
|
| #include "media/base/pipeline_status.h"
|
| @@ -34,15 +34,15 @@ namespace {
|
|
|
| // Maximum difference between audio frame PTS and video frame PTS
|
| // for frames read from the DemuxerStream.
|
| -const base::TimeDelta kMaxDeltaFetcher(
|
| - base::TimeDelta::FromMilliseconds(2000));
|
| +const base::TimeDelta kMaxDeltaFetcher(base::TimeDelta::FromMilliseconds(2000));
|
|
|
| -void MediaPipelineClientDummyCallback() {}
|
| +void MediaPipelineClientDummyCallback() {
|
| +}
|
|
|
| } // namespace
|
|
|
| CmaRenderer::CmaRenderer(
|
| - scoped_ptr<MediaPipeline> media_pipeline,
|
| + scoped_ptr<MediaPipelineProxy> media_pipeline,
|
| ::media::VideoRendererSink* video_renderer_sink,
|
| const scoped_refptr<::media::GpuVideoAcceleratorFactories>& gpu_factories)
|
| : media_task_runner_factory_(
|
| @@ -122,8 +122,8 @@ void CmaRenderer::Initialize(
|
| base::Bind(&CmaRenderer::OnPlaybackTimeUpdated, weak_this_));
|
| media_pipeline_client.pipeline_backend_created_cb =
|
| base::Bind(&MediaPipelineClientDummyCallback);
|
| - media_pipeline_client.pipeline_backend_destroyed_cb
|
| - = base::Bind(&MediaPipelineClientDummyCallback);
|
| + media_pipeline_client.pipeline_backend_destroyed_cb =
|
| + base::Bind(&MediaPipelineClientDummyCallback);
|
| media_pipeline_->SetClient(media_pipeline_client);
|
|
|
| init_cb_ = init_cb;
|
| @@ -144,9 +144,8 @@ void CmaRenderer::Flush(const base::Closure& flush_cb) {
|
| }
|
|
|
| DCHECK_EQ(state_, kPlaying) << state_;
|
| - media_pipeline_->Flush(
|
| - ::media::BindToCurrentLoop(
|
| - base::Bind(&CmaRenderer::OnFlushDone, weak_this_)));
|
| + media_pipeline_->Flush(::media::BindToCurrentLoop(
|
| + base::Bind(&CmaRenderer::OnFlushDone, weak_this_)));
|
|
|
| {
|
| base::AutoLock auto_lock(time_interpolator_lock_);
|
| @@ -248,7 +247,8 @@ void CmaRenderer::InitializeAudioPipeline() {
|
| demuxer_stream_provider_->GetStream(::media::DemuxerStream::AUDIO);
|
| ::media::PipelineStatusCB audio_initialization_done_cb =
|
| ::media::BindToCurrentLoop(
|
| - base::Bind(&CmaRenderer::OnAudioPipelineInitializeDone, weak_this_,
|
| + base::Bind(&CmaRenderer::OnAudioPipelineInitializeDone,
|
| + weak_this_,
|
| stream != nullptr));
|
| if (!stream) {
|
| CMALOG(kLogControl) << __FUNCTION__ << ": no audio stream, skipping init.";
|
| @@ -260,8 +260,8 @@ void CmaRenderer::InitializeAudioPipeline() {
|
| AvPipelineClient av_pipeline_client;
|
| av_pipeline_client.eos_cb = ::media::BindToCurrentLoop(
|
| base::Bind(&CmaRenderer::OnEosReached, weak_this_, true));
|
| - av_pipeline_client.playback_error_cb = ::media::BindToCurrentLoop(
|
| - base::Bind(&CmaRenderer::OnError, weak_this_));
|
| + av_pipeline_client.playback_error_cb =
|
| + ::media::BindToCurrentLoop(base::Bind(&CmaRenderer::OnError, weak_this_));
|
| av_pipeline_client.statistics_cb = ::media::BindToCurrentLoop(
|
| base::Bind(&CmaRenderer::OnStatisticsUpdated, weak_this_));
|
| audio_pipeline_->SetClient(av_pipeline_client);
|
| @@ -307,7 +307,8 @@ void CmaRenderer::InitializeVideoPipeline() {
|
| demuxer_stream_provider_->GetStream(::media::DemuxerStream::VIDEO);
|
| ::media::PipelineStatusCB video_initialization_done_cb =
|
| ::media::BindToCurrentLoop(
|
| - base::Bind(&CmaRenderer::OnVideoPipelineInitializeDone, weak_this_,
|
| + base::Bind(&CmaRenderer::OnVideoPipelineInitializeDone,
|
| + weak_this_,
|
| stream != nullptr));
|
| if (!stream) {
|
| CMALOG(kLogControl) << __FUNCTION__ << ": no video stream, skipping init.";
|
| @@ -319,8 +320,8 @@ void CmaRenderer::InitializeVideoPipeline() {
|
| VideoPipelineClient client;
|
| client.av_pipeline_client.eos_cb = ::media::BindToCurrentLoop(
|
| base::Bind(&CmaRenderer::OnEosReached, weak_this_, false));
|
| - client.av_pipeline_client.playback_error_cb = ::media::BindToCurrentLoop(
|
| - base::Bind(&CmaRenderer::OnError, weak_this_));
|
| + client.av_pipeline_client.playback_error_cb =
|
| + ::media::BindToCurrentLoop(base::Bind(&CmaRenderer::OnError, weak_this_));
|
| client.av_pipeline_client.statistics_cb = ::media::BindToCurrentLoop(
|
| base::Bind(&CmaRenderer::OnStatisticsUpdated, weak_this_));
|
| client.natural_size_changed_cb = ::media::BindToCurrentLoop(
|
| @@ -339,9 +340,7 @@ void CmaRenderer::InitializeVideoPipeline() {
|
| std::vector<::media::VideoDecoderConfig> configs;
|
| configs.push_back(config);
|
| media_pipeline_->InitializeVideo(
|
| - configs,
|
| - frame_provider.Pass(),
|
| - video_initialization_done_cb);
|
| + configs, frame_provider.Pass(), video_initialization_done_cb);
|
| }
|
|
|
| void CmaRenderer::OnVideoPipelineInitializeDone(
|
| @@ -383,8 +382,7 @@ void CmaRenderer::OnEosReached(bool is_audio) {
|
|
|
| bool audio_finished = !has_audio_ || received_audio_eos_;
|
| bool video_finished = !has_video_ || received_video_eos_;
|
| - CMALOG(kLogControl) << __FUNCTION__
|
| - << " audio_finished=" << audio_finished
|
| + CMALOG(kLogControl) << __FUNCTION__ << " audio_finished=" << audio_finished
|
| << " video_finished=" << video_finished;
|
| if (audio_finished && video_finished)
|
| ended_cb_.Run();
|
| @@ -402,10 +400,9 @@ void CmaRenderer::OnNaturalSizeChanged(const gfx::Size& size) {
|
| hole_frame_factory_->CreateHoleFrame(size));
|
| }
|
|
|
| -void CmaRenderer::OnPlaybackTimeUpdated(
|
| - base::TimeDelta time,
|
| - base::TimeDelta max_time,
|
| - base::TimeTicks capture_time) {
|
| +void CmaRenderer::OnPlaybackTimeUpdated(base::TimeDelta time,
|
| + base::TimeDelta max_time,
|
| + base::TimeTicks capture_time) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| if (state_ != kPlaying) {
|
| LOG(WARNING) << "Ignoring a late time update";
|
|
|