Index: media/blink/webmediaplayer_impl.cc |
diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc |
index 7c67743e982b430e3c7794a1e1d2a3310806ee3c..4d265a471f1812646e8d7275ab9b59c6e5b28fe6 100644 |
--- a/media/blink/webmediaplayer_impl.cc |
+++ b/media/blink/webmediaplayer_impl.cc |
@@ -167,6 +167,7 @@ WebMediaPlayerImpl::WebMediaPlayerImpl( |
base::WeakPtr<WebMediaPlayerDelegate> delegate, |
std::unique_ptr<RendererFactory> renderer_factory, |
linked_ptr<UrlIndex> url_index, |
+ MediaPlayerObserver* observer, |
const WebMediaPlayerParams& params) |
: frame_(frame), |
delegate_state_(DelegateState::GONE), |
@@ -227,7 +228,8 @@ WebMediaPlayerImpl::WebMediaPlayerImpl( |
suppress_destruction_errors_(false), |
can_suspend_state_(CanSuspendState::UNKNOWN), |
is_encrypted_(false), |
- underflow_count_(0) { |
+ underflow_count_(0), |
+ observer_(observer) { |
DCHECK(!adjust_allocated_memory_cb_.is_null()); |
DCHECK(renderer_factory_); |
DCHECK(client_); |
@@ -258,6 +260,10 @@ WebMediaPlayerImpl::WebMediaPlayerImpl( |
params.audio_renderer_sink().get() |
? params.audio_renderer_sink() |
: new NullAudioSink(media_task_runner_)); |
+ |
+ if (observer_) |
+ observer_->SetSwitchRenderCallback( |
+ base::Bind(&WebMediaPlayerImpl::ScheduleRestart, AsWeakPtr())); |
} |
WebMediaPlayerImpl::~WebMediaPlayerImpl() { |
@@ -337,11 +343,15 @@ void WebMediaPlayerImpl::DisableOverlay() { |
void WebMediaPlayerImpl::enteredFullscreen() { |
if (!force_video_overlays_ && !disable_fullscreen_video_overlays_) |
EnableOverlay(); |
+ if (observer_) |
+ observer_->OnEnteredFullscreen(); |
} |
void WebMediaPlayerImpl::exitedFullscreen() { |
if (!force_video_overlays_ && !disable_fullscreen_video_overlays_) |
DisableOverlay(); |
+ if (observer_) |
+ observer_->OnExitedFullscreen(); |
} |
void WebMediaPlayerImpl::DoLoad(LoadType load_type, |
@@ -953,6 +963,9 @@ void WebMediaPlayerImpl::SetCdm(const CdmAttachedCB& cdm_attached_cb, |
return; |
} |
+ if (observer_) |
+ observer_->OnSetCdm(cdm_context); |
+ |
// If CDM initialization succeeded, tell the pipeline about it. |
pipeline_.SetCdm(cdm_context, cdm_attached_cb); |
} |
@@ -1089,6 +1102,10 @@ void WebMediaPlayerImpl::OnMetadata(PipelineMetadata metadata) { |
video_weblayer_->layer()->SetContentsOpaque(opaque_); |
video_weblayer_->SetContentsOpaqueIsFixed(true); |
client_->setWebLayer(video_weblayer_.get()); |
+ if (observer_) |
miu
2016/09/30 08:12:10
style: Multi-line then-clause needs braces around
xjz
2016/10/01 00:28:41
Done.
|
+ observer_->OnDecoderConfigChanged( |
+ pipeline_metadata_.audio_decoder_config, |
+ pipeline_metadata_.video_decoder_config); |
} |
CreateWatchTimeReporter(); |
@@ -1821,4 +1838,14 @@ void WebMediaPlayerImpl::CreateWatchTimeReporter() { |
watch_time_reporter_->OnShown(); |
} |
+void WebMediaPlayerImpl::ancestorEnteredFullscreen() { |
+ if (observer_) |
+ observer_->OnEnteredFullscreen(); |
+} |
+ |
+void WebMediaPlayerImpl::ancestorExitedFullscreen() { |
+ if (observer_) |
+ observer_->OnExitedFullscreen(); |
+} |
+ |
} // namespace media |