summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-22 01:06:33 +0000
committerscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-22 01:06:33 +0000
commit97b3029bae25940227e1986df19d2677e687660b (patch)
treec48d179a1ac2d4d8dac241f4bc3fed7ec2bcc763 /media
parent533e681e84a1eaccc29f990ce08cab54ab80c77b (diff)
downloadchromium_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.cc2
-rw-r--r--media/filters/video_renderer_base_unittest.cc6
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);