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

Unified Diff: media/blink/webmediaplayer_impl.cc

Issue 2815303006: Convert MediaLog from being ref counted to owned by WebMediaPlayer. (Closed)
Patch Set: Rebase. Created 3 years, 8 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/blink/webmediaplayer_impl_unittest.cc » ('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 9b79fba4fd291c277d2ed1c4d46d00f39f321be3..af8d74c1a027f7a5f14a07eb8dc33f0d41529a15 100644
--- a/media/blink/webmediaplayer_impl.cc
+++ b/media/blink/webmediaplayer_impl.cc
@@ -177,7 +177,7 @@ WebMediaPlayerImpl::WebMediaPlayerImpl(
WebMediaPlayerDelegate* delegate,
std::unique_ptr<RendererFactory> renderer_factory,
linked_ptr<UrlIndex> url_index,
- const WebMediaPlayerParams& params)
+ std::unique_ptr<WebMediaPlayerParams> params)
: frame_(frame),
delegate_state_(DelegateState::GONE),
delegate_has_audio_(false),
@@ -186,9 +186,9 @@ WebMediaPlayerImpl::WebMediaPlayerImpl(
highest_ready_state_(WebMediaPlayer::kReadyStateHaveNothing),
preload_(MultibufferDataSource::AUTO),
main_task_runner_(frame->LoadingTaskRunner()),
- media_task_runner_(params.media_task_runner()),
- worker_task_runner_(params.worker_task_runner()),
- media_log_(params.media_log()),
+ media_task_runner_(params->media_task_runner()),
+ worker_task_runner_(params->worker_task_runner()),
+ media_log_(params->take_media_log()),
pipeline_controller_(
base::MakeUnique<PipelineImpl>(media_task_runner_, media_log_.get()),
base::Bind(&WebMediaPlayerImpl::CreateRenderer,
@@ -213,40 +213,40 @@ WebMediaPlayerImpl::WebMediaPlayerImpl(
encrypted_client_(encrypted_client),
delegate_(delegate),
delegate_id_(0),
- defer_load_cb_(params.defer_load_cb()),
- context_3d_cb_(params.context_3d_cb()),
- adjust_allocated_memory_cb_(params.adjust_allocated_memory_cb()),
+ defer_load_cb_(params->defer_load_cb()),
+ context_3d_cb_(params->context_3d_cb()),
+ adjust_allocated_memory_cb_(params->adjust_allocated_memory_cb()),
last_reported_memory_usage_(0),
supports_save_(true),
chunk_demuxer_(NULL),
url_index_(url_index),
// Threaded compositing isn't enabled universally yet.
- compositor_task_runner_(params.compositor_task_runner()
- ? params.compositor_task_runner()
+ compositor_task_runner_(params->compositor_task_runner()
+ ? params->compositor_task_runner()
: base::ThreadTaskRunnerHandle::Get()),
compositor_(new VideoFrameCompositor(compositor_task_runner_)),
#if defined(OS_ANDROID) // WMPI_CAST
- cast_impl_(this, client_, params.context_3d_cb()),
+ cast_impl_(this, client_, params->context_3d_cb()),
#endif
volume_(1.0),
volume_multiplier_(1.0),
renderer_factory_(std::move(renderer_factory)),
- surface_manager_(params.surface_manager()),
+ surface_manager_(params->surface_manager()),
overlay_surface_id_(SurfaceManager::kNoSurfaceID),
suppress_destruction_errors_(false),
- suspend_enabled_(params.allow_suspend()),
+ suspend_enabled_(params->allow_suspend()),
use_fallback_path_(false),
is_encrypted_(false),
preroll_attempt_pending_(false),
- observer_(params.media_observer()),
+ observer_(params->media_observer()),
max_keyframe_distance_to_disable_background_video_(
- params.max_keyframe_distance_to_disable_background_video()),
+ params->max_keyframe_distance_to_disable_background_video()),
max_keyframe_distance_to_disable_background_video_mse_(
- params.max_keyframe_distance_to_disable_background_video_mse()),
+ params->max_keyframe_distance_to_disable_background_video_mse()),
enable_instant_source_buffer_gc_(
- params.enable_instant_source_buffer_gc()),
+ params->enable_instant_source_buffer_gc()),
embedded_media_experience_enabled_(
- params.embedded_media_experience_enabled()) {
+ params->embedded_media_experience_enabled()) {
DVLOG(1) << __func__;
DCHECK(!adjust_allocated_memory_cb_.is_null());
DCHECK(renderer_factory_);
@@ -267,13 +267,13 @@ WebMediaPlayerImpl::WebMediaPlayerImpl(
media_log_->AddEvent(
media_log_->CreateEvent(MediaLogEvent::WEBMEDIAPLAYER_CREATED));
- if (params.initial_cdm())
- SetCdm(params.initial_cdm());
+ if (params->initial_cdm())
+ SetCdm(params->initial_cdm());
// TODO(xhwang): When we use an external Renderer, many methods won't work,
// e.g. GetCurrentFrameFromCompositor(). See http://crbug.com/434861
- audio_source_provider_ =
- new WebAudioSourceProviderImpl(params.audio_renderer_sink(), media_log_);
+ audio_source_provider_ = new WebAudioSourceProviderImpl(
+ params->audio_renderer_sink(), media_log_.get());
if (observer_)
observer_->SetClient(this);
@@ -400,7 +400,7 @@ void WebMediaPlayerImpl::DoLoad(LoadType load_type,
DCHECK(main_task_runner_->BelongsToCurrentThread());
GURL gurl(url);
- ReportMetrics(load_type, gurl, frame_->GetSecurityOrigin(), media_log_);
+ ReportMetrics(load_type, gurl, frame_->GetSecurityOrigin(), media_log_.get());
// Set subresource URL for crash reporting.
base::debug::SetCrashKeyValue("subresource_url", gurl.spec());
@@ -669,8 +669,8 @@ void WebMediaPlayerImpl::EnabledAudioTracksChanged(
logstr << track_id << " ";
enabledMediaTrackIds.push_back(track_id);
}
- MEDIA_LOG(INFO, media_log_) << "Enabled audio tracks: [" << logstr.str()
- << "]";
+ MEDIA_LOG(INFO, media_log_.get())
+ << "Enabled audio tracks: [" << logstr.str() << "]";
pipeline_controller_.OnEnabledAudioTracksChanged(enabledMediaTrackIds);
}
@@ -681,8 +681,9 @@ void WebMediaPlayerImpl::SelectedVideoTrackChanged(
base::Optional<MediaTrack::Id> selected_video_track_id;
if (selectedTrackId && !video_track_disabled_)
selected_video_track_id = MediaTrack::Id(selectedTrackId->Utf8().data());
- MEDIA_LOG(INFO, media_log_) << "Selected video track: ["
- << selected_video_track_id.value_or("") << "]";
+ MEDIA_LOG(INFO, media_log_.get())
+ << "Selected video track: [" << selected_video_track_id.value_or("")
+ << "]";
pipeline_controller_.OnSelectedVideoTrackChanged(selected_video_track_id);
}
@@ -1186,8 +1187,7 @@ void WebMediaPlayerImpl::OnPipelineResumed() {
void WebMediaPlayerImpl::OnDemuxerOpened() {
DCHECK(main_task_runner_->BelongsToCurrentThread());
- client_->MediaSourceOpened(
- new WebMediaSourceImpl(chunk_demuxer_, media_log_));
+ client_->MediaSourceOpened(new WebMediaSourceImpl(chunk_demuxer_));
}
void WebMediaPlayerImpl::OnMemoryPressure(
@@ -1228,7 +1228,7 @@ void WebMediaPlayerImpl::OnError(PipelineStatus status) {
if (suppress_destruction_errors_)
return;
- ReportPipelineError(load_type_, status, media_log_);
+ ReportPipelineError(load_type_, status, media_log_.get());
media_log_->AddEvent(media_log_->CreatePipelineErrorEvent(status));
if (ready_state_ == WebMediaPlayer::kReadyStateHaveNothing) {
@@ -1755,9 +1755,9 @@ void WebMediaPlayerImpl::StartPipeline() {
BindToCurrentLoop(base::Bind(
&WebMediaPlayerImpl::OnFFmpegMediaTracksUpdated, AsWeakPtr()));
- demuxer_.reset(new FFmpegDemuxer(media_task_runner_, data_source_.get(),
- encrypted_media_init_data_cb,
- media_tracks_updated_cb, media_log_));
+ demuxer_.reset(new FFmpegDemuxer(
+ media_task_runner_, data_source_.get(), encrypted_media_init_data_cb,
+ media_tracks_updated_cb, media_log_.get()));
#else
OnError(PipelineStatus::DEMUXER_ERROR_COULD_NOT_OPEN);
return;
@@ -1769,7 +1769,7 @@ void WebMediaPlayerImpl::StartPipeline() {
chunk_demuxer_ = new ChunkDemuxer(
BindToCurrentLoop(
base::Bind(&WebMediaPlayerImpl::OnDemuxerOpened, AsWeakPtr())),
- encrypted_media_init_data_cb, media_log_);
+ encrypted_media_init_data_cb, media_log_.get());
demuxer_.reset(chunk_demuxer_);
if (base::FeatureList::IsEnabled(kMemoryPressureBasedSourceBufferGC)) {
@@ -2168,7 +2168,7 @@ void WebMediaPlayerImpl::CreateWatchTimeReporter() {
watch_time_reporter_.reset(
new WatchTimeReporter(HasAudio(), HasVideo(), !!chunk_demuxer_,
is_encrypted_, embedded_media_experience_enabled_,
- media_log_, pipeline_metadata_.natural_size,
+ media_log_.get(), pipeline_metadata_.natural_size,
base::Bind(&GetCurrentTimeInternal, this)));
watch_time_reporter_->OnVolumeChange(volume_);
if (delegate_->IsFrameHidden())
« no previous file with comments | « media/blink/webmediaplayer_impl.h ('k') | media/blink/webmediaplayer_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698