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

Unified Diff: media/blink/webmediaplayer_impl.cc

Issue 2689863002: Change ownership of PipelineImpl (Closed)
Patch Set: Proper rebase Created 3 years, 10 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/blink/webmediaplayer_impl.h ('k') | media/filters/pipeline_controller.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/blink/webmediaplayer_impl.cc
diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc
index 89e56fa76a68a70ba0954f296739c1410c1b18f4..7c395746dd873795b28071c84acd3a0d939fa310 100644
--- a/media/blink/webmediaplayer_impl.cc
+++ b/media/blink/webmediaplayer_impl.cc
@@ -145,9 +145,9 @@ gfx::Size GetRotatedVideoSize(VideoRotation rotation, gfx::Size natural_size) {
}
base::TimeDelta GetCurrentTimeInternal(WebMediaPlayerImpl* p_this) {
- // We wrap currentTime() instead of using pipeline_.GetMediaTime() since there
- // are a variety of cases in which that time is not accurate; e.g., while
- // remoting and during a pause or seek.
+ // We wrap currentTime() instead of using pipeline_controller_.GetMediaTime()
+ // since there are a variety of cases in which that time is not accurate;
+ // e.g., while remoting and during a pause or seek.
return base::TimeDelta::FromSecondsD(p_this->currentTime());
}
@@ -186,9 +186,8 @@ WebMediaPlayerImpl::WebMediaPlayerImpl(
media_task_runner_(params.media_task_runner()),
worker_task_runner_(params.worker_task_runner()),
media_log_(params.media_log()),
- pipeline_(media_task_runner_, media_log_.get()),
pipeline_controller_(
- &pipeline_,
+ base::MakeUnique<PipelineImpl>(media_task_runner_, media_log_.get()),
base::Bind(&WebMediaPlayerImpl::CreateRenderer,
base::Unretained(this)),
base::Bind(&WebMediaPlayerImpl::OnPipelineSeeked, AsWeakPtr()),
@@ -283,8 +282,8 @@ WebMediaPlayerImpl::~WebMediaPlayerImpl() {
// Finalize any watch time metrics before destroying the pipeline.
watch_time_reporter_.reset();
- // Pipeline must be stopped before it is destroyed.
- pipeline_.Stop();
+ // The underlying Pipeline must be stopped before it is destroyed.
+ pipeline_controller_.Stop();
if (last_reported_memory_usage_)
adjust_allocated_memory_cb_.Run(-last_reported_memory_usage_);
@@ -308,8 +307,8 @@ void WebMediaPlayerImpl::load(LoadType load_type,
DVLOG(1) << __func__ << "(" << load_type << ", " << url << ", " << cors_mode
<< ")";
if (!defer_load_cb_.is_null()) {
- defer_load_cb_.Run(base::Bind(
- &WebMediaPlayerImpl::DoLoad, AsWeakPtr(), load_type, url, cors_mode));
+ defer_load_cb_.Run(base::Bind(&WebMediaPlayerImpl::DoLoad, AsWeakPtr(),
+ load_type, url, cors_mode));
return;
}
DoLoad(load_type, url, cors_mode);
@@ -433,7 +432,7 @@ void WebMediaPlayerImpl::play() {
// TODO(sandersd): Do we want to reset the idle timer here?
delegate_->SetIdle(delegate_id_, false);
paused_ = false;
- pipeline_.SetPlaybackRate(playback_rate_);
+ pipeline_controller_.SetPlaybackRate(playback_rate_);
background_pause_timer_.Stop();
if (data_source_)
@@ -471,13 +470,14 @@ void WebMediaPlayerImpl::pause() {
}
#endif
- pipeline_.SetPlaybackRate(0.0);
+ pipeline_controller_.SetPlaybackRate(0.0);
// pause() may be called after playback has ended and the HTMLMediaElement
// requires that currentTime() == duration() after ending. We want to ensure
// |paused_time_| matches currentTime() in this case or a future seek() may
// incorrectly discard what it thinks is a seek to the existing time.
- paused_time_ = ended_ ? GetPipelineMediaDuration() : pipeline_.GetMediaTime();
+ paused_time_ =
+ ended_ ? GetPipelineMediaDuration() : pipeline_controller_.GetMediaTime();
if (observer_)
observer_->OnPaused();
@@ -574,7 +574,7 @@ void WebMediaPlayerImpl::setRate(double rate) {
playback_rate_ = rate;
if (!paused_) {
- pipeline_.SetPlaybackRate(rate);
+ pipeline_controller_.SetPlaybackRate(rate);
if (data_source_)
data_source_->MediaPlaybackRateChanged(rate);
}
@@ -584,7 +584,7 @@ void WebMediaPlayerImpl::setVolume(double volume) {
DVLOG(1) << __func__ << "(" << volume << ")";
DCHECK(main_task_runner_->BelongsToCurrentThread());
volume_ = volume;
- pipeline_.SetVolume(volume_ * volume_multiplier_);
+ pipeline_controller_.SetVolume(volume_ * volume_multiplier_);
if (watch_time_reporter_)
watch_time_reporter_->OnVolumeChange(volume);
@@ -673,7 +673,7 @@ void WebMediaPlayerImpl::enabledAudioTracksChanged(
}
MEDIA_LOG(INFO, media_log_) << "Enabled audio tracks: [" << logstr.str()
<< "]";
- pipeline_.OnEnabledAudioTracksChanged(enabledMediaTrackIds);
+ pipeline_controller_.OnEnabledAudioTracksChanged(enabledMediaTrackIds);
}
void WebMediaPlayerImpl::selectedVideoTrackChanged(
@@ -685,7 +685,7 @@ void WebMediaPlayerImpl::selectedVideoTrackChanged(
selected_video_track_id = MediaTrack::Id(selectedTrackId->utf8().data());
MEDIA_LOG(INFO, media_log_) << "Selected video track: ["
<< selected_video_track_id.value_or("") << "]";
- pipeline_.OnSelectedVideoTrackChanged(selected_video_track_id);
+ pipeline_controller_.OnSelectedVideoTrackChanged(selected_video_track_id);
}
blink::WebSize WebMediaPlayerImpl::naturalSize() const {
@@ -702,7 +702,7 @@ bool WebMediaPlayerImpl::paused() const {
return cast_impl_.IsPaused();
#endif
- return pipeline_.GetPlaybackRate() == 0.0f;
+ return pipeline_controller_.GetPlaybackRate() == 0.0f;
}
bool WebMediaPlayerImpl::seeking() const {
@@ -763,7 +763,7 @@ double WebMediaPlayerImpl::currentTime() const {
if (paused_)
return paused_time_.InSecondsF();
- return pipeline_.GetMediaTime().InSecondsF();
+ return pipeline_controller_.GetMediaTime().InSecondsF();
}
WebMediaPlayer::NetworkState WebMediaPlayerImpl::getNetworkState() const {
@@ -785,12 +785,12 @@ blink::WebTimeRanges WebMediaPlayerImpl::buffered() const {
DCHECK(main_task_runner_->BelongsToCurrentThread());
Ranges<base::TimeDelta> buffered_time_ranges =
- pipeline_.GetBufferedTimeRanges();
+ pipeline_controller_.GetBufferedTimeRanges();
const base::TimeDelta duration = GetPipelineMediaDuration();
if (duration != kInfiniteDuration) {
- buffered_data_source_host_.AddBufferedTimeRanges(
- &buffered_time_ranges, duration);
+ buffered_data_source_host_.AddBufferedTimeRanges(&buffered_time_ranges,
+ duration);
}
return ConvertToWebTimeRanges(buffered_time_ranges);
}
@@ -844,7 +844,7 @@ bool WebMediaPlayerImpl::didLoadingProgress() {
DCHECK(main_task_runner_->BelongsToCurrentThread());
// Note: Separate variables used to ensure both methods are called every time.
- const bool pipeline_progress = pipeline_.DidLoadingProgress();
+ const bool pipeline_progress = pipeline_controller_.DidLoadingProgress();
const bool data_progress = buffered_data_source_host_.DidLoadingProgress();
const bool did_loading_progress = pipeline_progress || data_progress;
@@ -1067,8 +1067,8 @@ void WebMediaPlayerImpl::SetCdm(blink::WebContentDecryptionModule* cdm) {
// Keep the reference to the CDM, as it shouldn't be destroyed until
// after the pipeline is done with the |cdm_context|.
pending_cdm_ = std::move(cdm_reference);
- pipeline_.SetCdm(cdm_context,
- base::Bind(&WebMediaPlayerImpl::OnCdmAttached, AsWeakPtr()));
+ pipeline_controller_.SetCdm(
+ cdm_context, base::Bind(&WebMediaPlayerImpl::OnCdmAttached, AsWeakPtr()));
}
void WebMediaPlayerImpl::OnCdmAttached(bool success) {
@@ -1106,10 +1106,10 @@ void WebMediaPlayerImpl::OnPipelineSeeked(bool time_updated) {
if (isRemote()) {
paused_time_ = base::TimeDelta::FromSecondsD(cast_impl_.currentTime());
} else {
- paused_time_ = pipeline_.GetMediaTime();
+ paused_time_ = pipeline_controller_.GetMediaTime();
}
#else
- paused_time_ = pipeline_.GetMediaTime();
+ paused_time_ = pipeline_controller_.GetMediaTime();
#endif
} else {
DCHECK(watch_time_reporter_);
@@ -1359,12 +1359,10 @@ void WebMediaPlayerImpl::OnAddTextTrack(const TextTrackConfig& config,
const WebInbandTextTrackImpl::Kind web_kind =
static_cast<WebInbandTextTrackImpl::Kind>(config.kind());
- const blink::WebString web_label =
- blink::WebString::fromUTF8(config.label());
+ const blink::WebString web_label = blink::WebString::fromUTF8(config.label());
const blink::WebString web_language =
blink::WebString::fromUTF8(config.language());
- const blink::WebString web_id =
- blink::WebString::fromUTF8(config.id());
+ const blink::WebString web_id = blink::WebString::fromUTF8(config.id());
std::unique_ptr<WebInbandTextTrackImpl> web_inband_text_track(
new WebInbandTextTrackImpl(web_kind, web_label, web_language, web_id));
@@ -1520,7 +1518,8 @@ void WebMediaPlayerImpl::OnVolumeMultiplierUpdate(double multiplier) {
void WebMediaPlayerImpl::ScheduleRestart() {
// TODO(watk): All restart logic should be moved into PipelineController.
- if (pipeline_.IsRunning() && !pipeline_controller_.IsPipelineSuspended()) {
+ if (pipeline_controller_.IsPipelineRunning() &&
+ !pipeline_controller_.IsPipelineSuspended()) {
pending_suspend_resume_cycle_ = true;
UpdatePlayState();
}
@@ -1648,9 +1647,8 @@ void WebMediaPlayerImpl::NotifyDownloading(bool is_downloading) {
else if (is_downloading && network_state_ == WebMediaPlayer::NetworkStateIdle)
SetNetworkState(WebMediaPlayer::NetworkStateLoading);
media_log_->AddEvent(
- media_log_->CreateBooleanEvent(
- MediaLogEvent::NETWORK_ACTIVITY_SET,
- "is_downloading_data", is_downloading));
+ media_log_->CreateBooleanEvent(MediaLogEvent::NETWORK_ACTIVITY_SET,
+ "is_downloading_data", is_downloading));
}
void WebMediaPlayerImpl::OnSurfaceCreated(int surface_id) {
@@ -1802,17 +1800,15 @@ blink::WebAudioSourceProvider* WebMediaPlayerImpl::getAudioSourceProvider() {
return audio_source_provider_.get();
}
-static void GetCurrentFrameAndSignal(
- VideoFrameCompositor* compositor,
- scoped_refptr<VideoFrame>* video_frame_out,
- base::WaitableEvent* event) {
+static void GetCurrentFrameAndSignal(VideoFrameCompositor* compositor,
+ scoped_refptr<VideoFrame>* video_frame_out,
+ base::WaitableEvent* event) {
TRACE_EVENT0("media", "GetCurrentFrameAndSignal");
*video_frame_out = compositor->GetCurrentFrameAndUpdateIfStale();
event->Signal();
}
-scoped_refptr<VideoFrame>
-WebMediaPlayerImpl::GetCurrentFrameFromCompositor() {
+scoped_refptr<VideoFrame> WebMediaPlayerImpl::GetCurrentFrameFromCompositor() {
DCHECK(main_task_runner_->BelongsToCurrentThread());
TRACE_EVENT0("media", "WebMediaPlayerImpl::GetCurrentFrameFromCompositor");
@@ -1826,11 +1822,10 @@ WebMediaPlayerImpl::GetCurrentFrameFromCompositor() {
scoped_refptr<VideoFrame> video_frame;
base::WaitableEvent event(base::WaitableEvent::ResetPolicy::AUTOMATIC,
base::WaitableEvent::InitialState::NOT_SIGNALED);
- compositor_task_runner_->PostTask(FROM_HERE,
- base::Bind(&GetCurrentFrameAndSignal,
- base::Unretained(compositor_),
- &video_frame,
- &event));
+ compositor_task_runner_->PostTask(
+ FROM_HERE,
+ base::Bind(&GetCurrentFrameAndSignal, base::Unretained(compositor_),
+ &video_frame, &event));
event.Wait();
return video_frame;
}
@@ -2224,7 +2219,8 @@ void WebMediaPlayerImpl::PauseVideoIfNeeded() {
// Don't pause video while the pipeline is stopped, resuming or seeking.
// Also if the video is paused already.
- if (!pipeline_.IsRunning() || is_pipeline_resuming_ || seeking_ || paused_)
+ if (!pipeline_controller_.IsPipelineRunning() || is_pipeline_resuming_ ||
+ seeking_ || paused_)
return;
// OnPause() will set |paused_when_hidden_| to false and call
@@ -2236,7 +2232,8 @@ void WebMediaPlayerImpl::PauseVideoIfNeeded() {
void WebMediaPlayerImpl::EnableVideoTrackIfNeeded() {
// Don't change video track while the pipeline is stopped, resuming or
// seeking.
- if (!pipeline_.IsRunning() || is_pipeline_resuming_ || seeking_)
+ if (!pipeline_controller_.IsPipelineRunning() || is_pipeline_resuming_ ||
+ seeking_)
return;
if (video_track_disabled_) {
@@ -2269,7 +2266,8 @@ void WebMediaPlayerImpl::SetPipelineStatisticsForTest(
PipelineStatistics WebMediaPlayerImpl::GetPipelineStatistics() const {
DCHECK(main_task_runner_->BelongsToCurrentThread());
- return pipeline_statistics_for_test_.value_or(pipeline_.GetStatistics());
+ return pipeline_statistics_for_test_.value_or(
+ pipeline_controller_.GetStatistics());
}
void WebMediaPlayerImpl::SetPipelineMediaDurationForTest(
@@ -2281,7 +2279,7 @@ base::TimeDelta WebMediaPlayerImpl::GetPipelineMediaDuration() const {
DCHECK(main_task_runner_->BelongsToCurrentThread());
return pipeline_media_duration_for_test_.value_or(
- pipeline_.GetMediaDuration());
+ pipeline_controller_.GetMediaDuration());
}
void WebMediaPlayerImpl::ReportTimeFromForegroundToFirstFrame(
« no previous file with comments | « media/blink/webmediaplayer_impl.h ('k') | media/filters/pipeline_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698