From 69a83853994057c9bb81fbc8e184cf36650293db Mon Sep 17 00:00:00 2001 From: "vrk@google.com" Date: Sat, 12 Jun 2010 01:12:13 +0000 Subject: 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 --- webkit/glue/webmediaplayer_impl.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'webkit') 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( - pipeline_->GetBufferedTime().InSecondsF()); + if (buffered_.size() > 0) { + float buffered_time = static_cast( + pipeline_->GetBufferedTime().InSecondsF()); + if (buffered_time >= buffered_[0].start) + buffered_[0].end = buffered_time; + } return buffered_; } -- cgit v1.1