// MediaPlayer ------------------------------------------------- void WebMediaPlayerClientImpl::load(WebMediaPlayer::LoadType loadType, const WTF::String& url, WebMediaPlayer::CORSMode corsMode) { ASSERT(!m_webMediaPlayer); // FIXME: Remove this cast LocalFrame* frame = mediaElement().document().frame(); WebURL poster = m_client->mediaPlayerPosterURL(); KURL kurl(ParsedURLString, url); m_webMediaPlayer = createWebMediaPlayer(this, kurl, frame); if (!m_webMediaPlayer) return; #if ENABLE(WEB_AUDIO) // Make sure if we create/re-create the WebMediaPlayer that we update our wrapper. m_audioSourceProvider.wrap(m_webMediaPlayer->audioSourceProvider()); #endif m_webMediaPlayer->setVolume(mediaElement().playerVolume()); m_webMediaPlayer->setPoster(poster); #if OS(ANDROID) m_usePaintOnAndroid = (loadType != WebMediaPlayer::LoadTypeMediaStream); #endif // Tell WebMediaPlayer about any connected CDM (may be null). m_webMediaPlayer->setContentDecryptionModule(HTMLMediaElementEncryptedMedia::contentDecryptionModule(mediaElement())); m_webMediaPlayer->load(loadType, kurl, corsMode); }
void WebMediaPlayerClientImpl::loadInternal() { m_isMediaStream = WebCore::MediaStreamRegistry::registry().lookupMediaStreamDescriptor(m_url.string()); #if ENABLE(WEB_AUDIO) m_audioSourceProvider.wrap(0); // Clear weak reference to m_webMediaPlayer's WebAudioSourceProvider. #endif // FIXME: Remove this cast Frame* frame = static_cast<HTMLMediaElement*>(m_client)->document().frame(); // This does not actually check whether the hardware can support accelerated // compositing, but only if the flag is set. However, this is checked lazily // in WebViewImpl::setIsAcceleratedCompositingActive() and will fail there // if necessary. m_needsWebLayerForVideo = frame->contentRenderer()->compositor()->hasAcceleratedCompositing(); m_webMediaPlayer = createWebMediaPlayer(this, m_url, frame); if (m_webMediaPlayer) { #if ENABLE(WEB_AUDIO) // Make sure if we create/re-create the WebMediaPlayer that we update our wrapper. m_audioSourceProvider.wrap(m_webMediaPlayer->audioSourceProvider()); #endif WebMediaPlayer::LoadType loadType = WebMediaPlayer::LoadTypeURL; if (m_mediaSource) loadType = WebMediaPlayer::LoadTypeMediaSource; else if (m_isMediaStream) loadType = WebMediaPlayer::LoadTypeMediaStream; WebMediaPlayer::CORSMode corsMode = static_cast<WebMediaPlayer::CORSMode>(m_client->mediaPlayerCORSMode()); m_webMediaPlayer->load(loadType, m_url, corsMode); } }
// MediaPlayer ------------------------------------------------- void WebMediaPlayerClientImpl::load(WebMediaPlayer::LoadType loadType, const WTF::String& url, WebMediaPlayer::CORSMode corsMode) { ASSERT(!m_webMediaPlayer); // FIXME: Remove this cast LocalFrame* frame = mediaElement().document().frame(); WebURL poster = m_client->mediaPlayerPosterURL(); KURL kurl(ParsedURLString, url); m_webMediaPlayer = createWebMediaPlayer(this, kurl, frame, HTMLMediaElementEncryptedMedia::contentDecryptionModule(mediaElement())); if (!m_webMediaPlayer) return; if (mediaElement().layoutObject()) mediaElement().layoutObject()->setShouldDoFullPaintInvalidation(); #if ENABLE(WEB_AUDIO) // Make sure if we create/re-create the WebMediaPlayer that we update our wrapper. m_audioSourceProvider.wrap(m_webMediaPlayer->audioSourceProvider()); #endif m_webMediaPlayer->setVolume(mediaElement().effectiveMediaVolume()); m_webMediaPlayer->setPoster(poster); setPreload(mediaElement().effectivePreloadType()); m_webMediaPlayer->load(loadType, kurl, corsMode); if (mediaElement().isFullscreen()) m_webMediaPlayer->enterFullscreen(); }
void WebMediaPlayerClientImpl::load(const String& url) { Frame* frame = static_cast<HTMLMediaElement*>( m_mediaPlayer->mediaPlayerClient())->document()->frame(); m_webMediaPlayer.set(createWebMediaPlayer(this, frame)); if (m_webMediaPlayer.get()) m_webMediaPlayer->load(KURL(ParsedURLString, url)); }
void WebMediaPlayerClientImpl::load(const String& url) { Frame* frame = static_cast<HTMLMediaElement*>( m_mediaPlayer->mediaPlayerClient())->document()->frame(); // Video frame object is owned by WebMediaPlayer. Before destroying // WebMediaPlayer all frames need to be released. if (m_videoLayer.get()) m_videoLayer->releaseCurrentFrame(); m_webMediaPlayer.set(createWebMediaPlayer(this, frame)); if (m_webMediaPlayer.get()) m_webMediaPlayer->load(KURL(ParsedURLString, url)); }