diff options
author | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-22 01:06:33 +0000 |
---|---|---|
committer | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-22 01:06:33 +0000 |
commit | 97b3029bae25940227e1986df19d2677e687660b (patch) | |
tree | c48d179a1ac2d4d8dac241f4bc3fed7ec2bcc763 /media | |
parent | 533e681e84a1eaccc29f990ce08cab54ab80c77b (diff) | |
download | chromium_src-97b3029bae25940227e1986df19d2677e687660b.zip chromium_src-97b3029bae25940227e1986df19d2677e687660b.tar.gz chromium_src-97b3029bae25940227e1986df19d2677e687660b.tar.bz2 |
Fix frame-exact seeking again to stay within duration as opposed to rounding to the closest frame.
Based on discussion from https://bugs.webkit.org/show_bug.cgi?id=52697 to be consistent with other WebKit ports.
BUG=69499
TEST=media_unittests
Review URL: http://codereview.chromium.org/6259012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72247 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r-- | media/filters/video_renderer_base.cc | 2 | ||||
-rw-r--r-- | media/filters/video_renderer_base_unittest.cc | 6 |
2 files changed, 4 insertions, 4 deletions
diff --git a/media/filters/video_renderer_base.cc b/media/filters/video_renderer_base.cc index 410e18f..1268ec3 100644 --- a/media/filters/video_renderer_base.cc +++ b/media/filters/video_renderer_base.cc @@ -408,7 +408,7 @@ void VideoRendererBase::ConsumeVideoFrame(scoped_refptr<VideoFrame> frame) { // Discard frames until we reach our desired seek timestamp. if (state_ == kSeeking && !frame->IsEndOfStream() && - (frame->GetTimestamp() + frame->GetDuration() / 2) < seek_timestamp_) { + (frame->GetTimestamp() + frame->GetDuration()) <= seek_timestamp_) { frames_queue_done_.push_back(frame); ScheduleRead_Locked(); } else { diff --git a/media/filters/video_renderer_base_unittest.cc b/media/filters/video_renderer_base_unittest.cc index 8ee5b14..c15f8c3 100644 --- a/media/filters/video_renderer_base_unittest.cc +++ b/media/filters/video_renderer_base_unittest.cc @@ -243,15 +243,15 @@ TEST_F(VideoRendererBaseTest, Seek_Exact) { Flush(); } -TEST_F(VideoRendererBaseTest, Seek_RoundUp) { +TEST_F(VideoRendererBaseTest, Seek_RightBefore) { Initialize(); Flush(); Seek(kDuration * 6 - 1); - ExpectCurrentTimestamp(kDuration * 6); + ExpectCurrentTimestamp(kDuration * 5); Flush(); } -TEST_F(VideoRendererBaseTest, Seek_RoundDown) { +TEST_F(VideoRendererBaseTest, Seek_RightAfter) { Initialize(); Flush(); Seek(kDuration * 6 + 1); |