diff options
author | fischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-01 01:13:16 +0000 |
---|---|---|
committer | fischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-01 01:13:16 +0000 |
commit | d7eec26f4e325611e84c76e80bd9f191e187d463 (patch) | |
tree | 0262aa4ef68b20d8cea2f2a6d7377044fc0f6bb6 /webkit/media | |
parent | 240bbf7676388b62b10c90327851fdae2090e392 (diff) | |
download | chromium_src-d7eec26f4e325611e84c76e80bd9f191e187d463.zip chromium_src-d7eec26f4e325611e84c76e80bd9f191e187d463.tar.gz chromium_src-d7eec26f4e325611e84c76e80bd9f191e187d463.tar.bz2 |
Prepare WebMediaPlayerAndroid for bytesLoaded() -> didLoadingProgress() transition.
TBR=scherkus
Review URL: https://chromiumcodereview.appspot.com/10469003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139945 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/media')
-rw-r--r-- | webkit/media/android/webmediaplayer_android.cc | 8 | ||||
-rw-r--r-- | webkit/media/android/webmediaplayer_android.h | 80 |
2 files changed, 50 insertions, 38 deletions
diff --git a/webkit/media/android/webmediaplayer_android.cc b/webkit/media/android/webmediaplayer_android.cc index b4184da..1b99ebb 100644 --- a/webkit/media/android/webmediaplayer_android.cc +++ b/webkit/media/android/webmediaplayer_android.cc @@ -60,6 +60,7 @@ WebMediaPlayerAndroid::WebMediaPlayerAndroid( seeking_(false), playback_completed_(false), buffered_bytes_(0), + did_loading_progress_(false), cookie_jar_(cookie_jar), pending_play_event_(false), network_state_(WebMediaPlayer::NetworkStateEmpty), @@ -264,6 +265,12 @@ float WebMediaPlayerAndroid::maxTimeSeekable() const { return duration(); } +bool WebMediaPlayerAndroid::didLoadingProgress() const { + bool ret = did_loading_progress_; + did_loading_progress_ = false; + return ret; +} + unsigned long long WebMediaPlayerAndroid::bytesLoaded() const { return buffered_bytes_; } @@ -371,6 +378,7 @@ void WebMediaPlayerAndroid::OnPlaybackComplete() { void WebMediaPlayerAndroid::OnBufferingUpdate(int percentage) { buffered_[0].end = duration() * percentage / 100; + did_loading_progress_ = true; // Implement a trick here to fake progress event, as WebKit checks // consecutive bytesLoaded() to see if any progress made. // See HTMLMediaElement::progressEventTimerFired. diff --git a/webkit/media/android/webmediaplayer_android.h b/webkit/media/android/webmediaplayer_android.h index 61ee5d1..c8935fa 100644 --- a/webkit/media/android/webmediaplayer_android.h +++ b/webkit/media/android/webmediaplayer_android.h @@ -37,73 +37,74 @@ class WebMediaPlayerAndroid : public: WebMediaPlayerAndroid(WebKit::WebMediaPlayerClient* client, WebKit::WebCookieJar* cookie_jar); - virtual ~WebMediaPlayerAndroid() OVERRIDE; + virtual ~WebMediaPlayerAndroid(); // Set |incognito_mode_| to true if in incognito mode. static void InitIncognito(bool incognito_mode); // Resource loading. - virtual void load(const WebKit::WebURL& url) OVERRIDE; - virtual void cancelLoad() OVERRIDE; + virtual void load(const WebKit::WebURL& url); + virtual void cancelLoad(); // Playback controls. - virtual void play() OVERRIDE; - virtual void pause() OVERRIDE; - virtual void seek(float seconds) OVERRIDE; - virtual bool supportsFullscreen() const OVERRIDE; - virtual bool supportsSave() const OVERRIDE; - virtual void setEndTime(float seconds) OVERRIDE; - virtual void setRate(float rate) OVERRIDE; - virtual void setVolume(float volume) OVERRIDE; - virtual void setVisible(bool visible) OVERRIDE; - virtual bool totalBytesKnown() OVERRIDE; - virtual const WebKit::WebTimeRanges& buffered() OVERRIDE; - virtual float maxTimeSeekable() const OVERRIDE; + virtual void play(); + virtual void pause(); + virtual void seek(float seconds); + virtual bool supportsFullscreen() const; + virtual bool supportsSave() const; + virtual void setEndTime(float seconds); + virtual void setRate(float rate); + virtual void setVolume(float volume); + virtual void setVisible(bool visible); + virtual bool totalBytesKnown(); + virtual const WebKit::WebTimeRanges& buffered(); + virtual float maxTimeSeekable() const; // Methods for painting. - virtual void setSize(const WebKit::WebSize& size) OVERRIDE; + virtual void setSize(const WebKit::WebSize& size); virtual void paint(WebKit::WebCanvas* canvas, const WebKit::WebRect& rect, - uint8_t alpha) OVERRIDE; + uint8_t alpha); // True if the loaded media has a playable video/audio track. - virtual bool hasVideo() const OVERRIDE; - virtual bool hasAudio() const OVERRIDE; + virtual bool hasVideo() const; + virtual bool hasAudio() const; // Dimensions of the video. - virtual WebKit::WebSize naturalSize() const OVERRIDE; + virtual WebKit::WebSize naturalSize() const; // Getters of playback state. - virtual bool paused() const OVERRIDE; - virtual bool seeking() const OVERRIDE; - virtual float duration() const OVERRIDE; - virtual float currentTime() const OVERRIDE; + virtual bool paused() const; + virtual bool seeking() const; + virtual float duration() const; + virtual float currentTime() const; // Get rate of loading the resource. - virtual int32 dataRate() const OVERRIDE; + virtual int32 dataRate() const; - virtual unsigned long long bytesLoaded() const OVERRIDE; - virtual unsigned long long totalBytes() const OVERRIDE; + virtual unsigned long long bytesLoaded() const; + virtual bool didLoadingProgress() const; + virtual unsigned long long totalBytes() const; // Internal states of loading and network. - virtual WebKit::WebMediaPlayer::NetworkState networkState() const OVERRIDE; - virtual WebKit::WebMediaPlayer::ReadyState readyState() const OVERRIDE; + virtual WebKit::WebMediaPlayer::NetworkState networkState() const; + virtual WebKit::WebMediaPlayer::ReadyState readyState() const; - virtual bool hasSingleSecurityOrigin() const OVERRIDE; - virtual WebKit::WebMediaPlayer::MovieLoadType movieLoadType() const OVERRIDE; + virtual bool hasSingleSecurityOrigin() const; + virtual WebKit::WebMediaPlayer::MovieLoadType movieLoadType() const; - virtual float mediaTimeForTimeValue(float timeValue) const OVERRIDE; + virtual float mediaTimeForTimeValue(float timeValue) const; // Provide statistics. - virtual unsigned decodedFrameCount() const OVERRIDE; - virtual unsigned droppedFrameCount() const OVERRIDE; - virtual unsigned audioDecodedByteCount() const OVERRIDE; - virtual unsigned videoDecodedByteCount() const OVERRIDE; + virtual unsigned decodedFrameCount() const; + virtual unsigned droppedFrameCount() const; + virtual unsigned audioDecodedByteCount() const; + virtual unsigned videoDecodedByteCount() const; // Methods called from VideoLayerChromium. These methods are running on the // compositor thread. - virtual WebKit::WebVideoFrame* getCurrentFrame() OVERRIDE; - virtual void putCurrentFrame(WebKit::WebVideoFrame*) OVERRIDE; + virtual WebKit::WebVideoFrame* getCurrentFrame(); + virtual void putCurrentFrame(WebKit::WebVideoFrame*); // Media player callback handlers. void OnMediaPrepared(); @@ -181,6 +182,9 @@ class WebMediaPlayerAndroid : // Fake it by self increasing on every OnBufferingUpdate event. int64 buffered_bytes_; + // Whether loading has progressed since the last call to didLoadingProgress. + mutable bool did_loading_progress_; + // Pointer to the cookie jar to get the cookie for the media url. WebKit::WebCookieJar* cookie_jar_; |