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

Unified Diff: chromecast/media/cma/pipeline/media_pipeline_impl.cc

Issue 1257013003: Load CMA backend from shared library (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Unit test + android fixes Created 5 years, 5 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
Index: chromecast/media/cma/pipeline/media_pipeline_impl.cc
diff --git a/chromecast/media/cma/pipeline/media_pipeline_impl.cc b/chromecast/media/cma/pipeline/media_pipeline_impl.cc
index fe5a2ebd10d58c661e0ab0b8f83973d17fad4c2a..3fbc469044c31abc17c0496cf519b08ca9148881 100644
--- a/chromecast/media/cma/pipeline/media_pipeline_impl.cc
+++ b/chromecast/media/cma/pipeline/media_pipeline_impl.cc
@@ -12,15 +12,16 @@
#include "base/single_thread_task_runner.h"
#include "base/thread_task_runner_handle.h"
#include "base/time/time.h"
+#include "chromecast/base/time_conversions.h"
#include "chromecast/media/cdm/browser_cdm_cast.h"
-#include "chromecast/media/cma/backend/media_clock_device.h"
-#include "chromecast/media/cma/backend/media_pipeline_device.h"
#include "chromecast/media/cma/base/buffering_controller.h"
#include "chromecast/media/cma/base/buffering_state.h"
#include "chromecast/media/cma/base/cma_logging.h"
#include "chromecast/media/cma/base/coded_frame_provider.h"
#include "chromecast/media/cma/pipeline/audio_pipeline_impl.h"
#include "chromecast/media/cma/pipeline/video_pipeline_impl.h"
+#include "chromecast/public/media/media_clock_device.h"
+#include "chromecast/public/media/media_pipeline_backend.h"
#include "media/base/buffers.h"
namespace chromecast {
@@ -70,11 +71,11 @@ MediaPipelineImpl::~MediaPipelineImpl() {
void MediaPipelineImpl::Initialize(
LoadType load_type,
- scoped_ptr<MediaPipelineDevice> media_pipeline_device) {
+ scoped_ptr<MediaPipelineBackend> media_device_components) {
gunsch 2015/07/27 17:14:49 media_device_components --> media_pipeline_backend
halliwell 2015/07/28 02:19:35 Done.
CMALOG(kLogControl) << __FUNCTION__;
DCHECK(thread_checker_.CalledOnValidThread());
- media_pipeline_device_.reset(media_pipeline_device.release());
- clock_device_ = media_pipeline_device_->GetMediaClockDevice();
+ media_device_components_.reset(media_device_components.release());
+ clock_device_ = media_device_components_->GetClock();
if (load_type == kLoadTypeURL || load_type == kLoadTypeMediaSource) {
base::TimeDelta low_threshold(kLowBufferThresholdURL);
@@ -90,11 +91,11 @@ void MediaPipelineImpl::Initialize(
base::Bind(&MediaPipelineImpl::OnBufferingNotification, weak_this_)));
}
- audio_pipeline_.reset(new AudioPipelineImpl(
- media_pipeline_device_->GetAudioPipelineDevice()));
+ audio_pipeline_.reset(
+ new AudioPipelineImpl(media_device_components_->GetAudio()));
- video_pipeline_.reset(new VideoPipelineImpl(
- media_pipeline_device_->GetVideoPipelineDevice()));
+ video_pipeline_.reset(
+ new VideoPipelineImpl(media_device_components_->GetVideo()));
}
void MediaPipelineImpl::SetClient(const MediaPipelineClient& client) {
@@ -166,7 +167,7 @@ void MediaPipelineImpl::StartPlayingFrom(base::TimeDelta time) {
// Reset the start of the timeline.
DCHECK_EQ(clock_device_->GetState(), MediaClockDevice::kStateIdle);
- clock_device_->ResetTimeline(time);
+ clock_device_->ResetTimeline(FromBaseTimeDelta(time));
// Start the clock. If the playback rate is 0, then the clock is started
// but does not increase.
@@ -272,7 +273,7 @@ void MediaPipelineImpl::SetPlaybackRate(double rate) {
DCHECK(thread_checker_.CalledOnValidThread());
target_playback_rate_ = rate;
if (!buffering_controller_ || !buffering_controller_->IsBuffering())
- media_pipeline_device_->GetMediaClockDevice()->SetRate(rate);
+ media_device_components_->GetClock()->SetRate(rate);
}
AudioPipelineImpl* MediaPipelineImpl::GetAudioPipelineImpl() const {
@@ -301,17 +302,16 @@ void MediaPipelineImpl::OnBufferingNotification(bool is_buffering) {
client_.buffering_state_cb.Run(buffering_state);
}
- if (media_pipeline_device_->GetMediaClockDevice()->GetState() ==
+ if (media_device_components_->GetClock()->GetState() ==
MediaClockDevice::kStateUninitialized) {
return;
}
if (is_buffering) {
// Do not consume data in a rebuffering phase.
- media_pipeline_device_->GetMediaClockDevice()->SetRate(0.0);
+ media_device_components_->GetClock()->SetRate(0.0);
} else {
- media_pipeline_device_->GetMediaClockDevice()->SetRate(
- target_playback_rate_);
+ media_device_components_->GetClock()->SetRate(target_playback_rate_);
}
}
@@ -327,7 +327,7 @@ void MediaPipelineImpl::UpdateMediaTime() {
statistics_rolling_counter_ =
(statistics_rolling_counter_ + 1) % kStatisticsUpdatePeriod;
- base::TimeDelta media_time(clock_device_->GetTime());
+ base::TimeDelta media_time = ToBaseTimeDelta(clock_device_->GetTime());
if (media_time == ::media::kNoTimestamp()) {
pending_time_update_task_ = true;
base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(

Powered by Google App Engine
This is Rietveld 408576698