diff options
author | vrk@google.com <vrk@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-12 01:12:13 +0000 |
---|---|---|
committer | vrk@google.com <vrk@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-12 01:12:13 +0000 |
commit | 69a83853994057c9bb81fbc8e184cf36650293db (patch) | |
tree | afc6527c83b5ce29a7513d6a71c3b5d7b5da19da /webkit | |
parent | 2e8cfe2f5ac7075bc8ec76dbbcad60a1183c71cb (diff) | |
download | chromium_src-69a83853994057c9bb81fbc8e184cf36650293db.zip chromium_src-69a83853994057c9bb81fbc8e184cf36650293db.tar.gz chromium_src-69a83853994057c9bb81fbc8e184cf36650293db.tar.bz2 |
Fixed edgecase bugs for WebMediaPlayer buffered()
Fixed some bugs with buffered() in WebMediaPlayer regarding edge cases:
making sure buffered_ is always initialized before trying to write, and
making sure buffered_.end is never after buffered_.start.
Review URL: http://codereview.chromium.org/2691005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49621 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r-- | webkit/glue/webmediaplayer_impl.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/webkit/glue/webmediaplayer_impl.cc b/webkit/glue/webmediaplayer_impl.cc index d6f24ed..56067df 100644 --- a/webkit/glue/webmediaplayer_impl.cc +++ b/webkit/glue/webmediaplayer_impl.cc @@ -452,8 +452,12 @@ const WebKit::WebTimeRanges& WebMediaPlayerImpl::buffered() { DCHECK(MessageLoop::current() == main_loop_); // Update buffered_ with the most recent buffered time. - buffered_[0].end = static_cast<float>( - pipeline_->GetBufferedTime().InSecondsF()); + if (buffered_.size() > 0) { + float buffered_time = static_cast<float>( + pipeline_->GetBufferedTime().InSecondsF()); + if (buffered_time >= buffered_[0].start) + buffered_[0].end = buffered_time; + } return buffered_; } |