Commit 0012f4c2 authored by srirama.m@samsung.com's avatar srirama.m@samsung.com

Eliminate MediaPlayer & MediaPlayerClient abstractions(rate, setRate and other APIs)

BUG=350571

Chromium side patch for this is https://codereview.chromium.org/303403002/

Review URL: https://codereview.chromium.org/304353005

git-svn-id: svn://svn.chromium.org/blink/trunk@175683 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent f113af7b
......@@ -1712,7 +1712,7 @@ void HTMLMediaElement::progressEventTimerFired(Timer<HTMLMediaElement>*)
double time = WTF::currentTime();
double timedelta = time - m_previousProgressTime;
if (m_player->didLoadingProgress()) {
if (webMediaPlayer() && webMediaPlayer()->didLoadingProgress()) {
scheduleEvent(EventTypeNames::progress);
m_previousProgressTime = time;
m_sentStalledEvent = false;
......@@ -1989,15 +1989,15 @@ void HTMLMediaElement::setPlaybackRate(double rate)
scheduleEvent(EventTypeNames::ratechange);
}
if (m_player && potentiallyPlaying() && m_player->rate() != rate && !m_mediaController)
m_player->setRate(rate);
if (m_player && potentiallyPlaying() && !m_mediaController)
webMediaPlayer()->setRate(rate);
}
void HTMLMediaElement::updatePlaybackRate()
{
double effectiveRate = m_mediaController ? m_mediaController->playbackRate() : m_playbackRate;
if (m_player && potentiallyPlaying() && m_player->rate() != effectiveRate)
m_player->setRate(effectiveRate);
if (m_player && potentiallyPlaying())
webMediaPlayer()->setRate(effectiveRate);
}
bool HTMLMediaElement::ended() const
......@@ -2897,13 +2897,13 @@ void HTMLMediaElement::mediaPlayerSizeChanged()
PassRefPtr<TimeRanges> HTMLMediaElement::buffered() const
{
if (!m_player)
return TimeRanges::create();
if (m_mediaSource)
return m_mediaSource->buffered();
return m_player->buffered();
if (!webMediaPlayer())
return TimeRanges::create();
return TimeRanges::create(webMediaPlayer()->buffered());
}
PassRefPtr<TimeRanges> HTMLMediaElement::played()
......@@ -2922,8 +2922,8 @@ PassRefPtr<TimeRanges> HTMLMediaElement::played()
PassRefPtr<TimeRanges> HTMLMediaElement::seekable() const
{
if (m_player) {
double maxTimeSeekable = m_player->maxTimeSeekable();
if (webMediaPlayer()) {
double maxTimeSeekable = webMediaPlayer()->maxTimeSeekable();
if (maxTimeSeekable)
return TimeRanges::create(0, maxTimeSeekable);
}
......@@ -3033,7 +3033,7 @@ void HTMLMediaElement::updatePlayState()
if (playerPaused) {
// Set rate, muted before calling play in case they were set before the media engine was setup.
// The media engine should just stash the rate and muted values since it isn't already playing.
m_player->setRate(m_playbackRate);
webMediaPlayer()->setRate(m_playbackRate);
updateVolume();
webMediaPlayer()->play();
}
......
......@@ -112,20 +112,12 @@ public:
virtual void load(blink::WebMediaPlayer::LoadType, const String& url, blink::WebMediaPlayer::CORSMode) = 0;
virtual double rate() const = 0;
virtual void setRate(double) = 0;
enum NetworkState { Empty, Idle, Loading, Loaded, FormatError, NetworkError, DecodeError };
virtual NetworkState networkState() const = 0;
enum ReadyState { HaveNothing, HaveMetadata, HaveCurrentData, HaveFutureData, HaveEnoughData };
virtual ReadyState readyState() const = 0;
virtual double maxTimeSeekable() const = 0;
virtual PassRefPtr<TimeRanges> buffered() const = 0;
virtual bool didLoadingProgress() const = 0;
virtual void paint(GraphicsContext*, const IntRect&) = 0;
virtual bool copyVideoTextureToPlatformTexture(blink::WebGraphicsContext3D*, Platform3DObject, GC3Dint, GC3Denum, GC3Denum, bool, bool) = 0;
......
......@@ -205,18 +205,6 @@ void WebMediaPlayerClientImpl::load(WebMediaPlayer::LoadType loadType, const WTF
m_webMediaPlayer->load(loadType, kurl, corsMode);
}
double WebMediaPlayerClientImpl::rate() const
{
return m_rate;
}
void WebMediaPlayerClientImpl::setRate(double rate)
{
m_rate = rate;
if (m_webMediaPlayer)
m_webMediaPlayer->setRate(rate);
}
MediaPlayer::NetworkState WebMediaPlayerClientImpl::networkState() const
{
if (m_webMediaPlayer)
......@@ -231,25 +219,6 @@ MediaPlayer::ReadyState WebMediaPlayerClientImpl::readyState() const
return MediaPlayer::HaveNothing;
}
double WebMediaPlayerClientImpl::maxTimeSeekable() const
{
if (m_webMediaPlayer)
return m_webMediaPlayer->maxTimeSeekable();
return 0.0;
}
PassRefPtr<TimeRanges> WebMediaPlayerClientImpl::buffered() const
{
if (m_webMediaPlayer)
return TimeRanges::create(m_webMediaPlayer->buffered());
return TimeRanges::create();
}
bool WebMediaPlayerClientImpl::didLoadingProgress() const
{
return m_webMediaPlayer && m_webMediaPlayer->didLoadingProgress();
}
void WebMediaPlayerClientImpl::paint(GraphicsContext* context, const IntRect& rect)
{
// Normally GraphicsContext operations do nothing when painting is disabled.
......@@ -339,7 +308,6 @@ void WebMediaPlayerClientImpl::paintOnAndroid(WebCore::GraphicsContext* context,
WebMediaPlayerClientImpl::WebMediaPlayerClientImpl(MediaPlayerClient* client)
: m_client(client)
, m_preload(MediaPlayer::Auto)
, m_rate(1.0)
#if OS(ANDROID)
, m_usePaintOnAndroid(false)
#endif
......
......@@ -94,13 +94,8 @@ public:
// MediaPlayer methods:
virtual WebMediaPlayer* webMediaPlayer() const OVERRIDE;
virtual void load(WebMediaPlayer::LoadType, const WTF::String& url, WebMediaPlayer::CORSMode) OVERRIDE;
virtual double rate() const OVERRIDE;
virtual void setRate(double) OVERRIDE;
virtual WebCore::MediaPlayer::NetworkState networkState() const OVERRIDE;
virtual WebCore::MediaPlayer::ReadyState readyState() const OVERRIDE;
virtual double maxTimeSeekable() const OVERRIDE;
virtual WTF::PassRefPtr<WebCore::TimeRanges> buffered() const OVERRIDE;
virtual bool didLoadingProgress() const OVERRIDE;
virtual void paint(WebCore::GraphicsContext*, const WebCore::IntRect&) OVERRIDE;
virtual bool copyVideoTextureToPlatformTexture(WebGraphicsContext3D*, Platform3DObject texture, GLint level, GLenum type, GLenum internalFormat, bool premultiplyAlpha, bool flipY) OVERRIDE;
virtual void setPreload(WebCore::MediaPlayer::Preload) OVERRIDE;
......@@ -117,7 +112,6 @@ private:
WebCore::MediaPlayerClient* m_client;
OwnPtr<WebMediaPlayer> m_webMediaPlayer;
WebCore::MediaPlayer::Preload m_preload;
double m_rate;
#if OS(ANDROID)
// FIXME: This path "only works" on Android. It is a workaround for the problem that Skia could not handle Android's GL_TEXTURE_EXTERNAL_OES
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment