Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(121)

Unified Diff: media/base/pipeline_unittest.cc

Issue 325503003: Fix seeking when the start time is non-zero. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« media/base/pipeline.cc ('K') | « media/base/pipeline.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/base/pipeline_unittest.cc
diff --git a/media/base/pipeline_unittest.cc b/media/base/pipeline_unittest.cc
index 45cc73ba36fa7b1a46c5f19aed717b78da5be1fe..ecdad550f0309acf7ef576bb5c1354346d82d885 100644
--- a/media/base/pipeline_unittest.cc
+++ b/media/base/pipeline_unittest.cc
@@ -753,6 +753,9 @@ TEST_F(PipelineTest, StartTimeIsZero) {
EXPECT_TRUE(metadata_.has_video);
EXPECT_EQ(base::TimeDelta(), pipeline_->GetMediaTime());
+ const base::TimeDelta kSeekPoint = kDuration / 2;
+ ExpectSeek(kSeekPoint);
+ DoSeek(kSeekPoint);
}
TEST_F(PipelineTest, StartTimeIsNonZero) {
@@ -774,6 +777,34 @@ TEST_F(PipelineTest, StartTimeIsNonZero) {
EXPECT_TRUE(metadata_.has_video);
EXPECT_EQ(kStartTime, pipeline_->GetMediaTime());
+ const base::TimeDelta kSeekPoint = kDuration / 2;
+ ExpectSeek(kSeekPoint + kStartTime);
+ DoSeek(kSeekPoint);
+}
+
+TEST_F(PipelineTest, StartTimeIsNegative) {
+ const base::TimeDelta kStartTime = base::TimeDelta::FromSeconds(-4);
+ const base::TimeDelta kDuration = base::TimeDelta::FromSeconds(100);
+
+ EXPECT_CALL(*demuxer_, GetStartTime())
+ .WillRepeatedly(Return(kStartTime));
+
+ CreateVideoStream();
+ MockDemuxerStreamVector streams;
+ streams.push_back(video_stream());
+
+ InitializeDemuxer(&streams, kDuration);
+ InitializeVideoRenderer(video_stream());
+
+ InitializePipeline(PIPELINE_OK);
+ EXPECT_FALSE(metadata_.has_audio);
+ EXPECT_TRUE(metadata_.has_video);
+
+ // The media time should be clamped to zero.
+ EXPECT_EQ(base::TimeDelta(), pipeline_->GetMediaTime());
+ const base::TimeDelta kSeekPoint = kDuration / 2;
+ ExpectSeek(kSeekPoint + kStartTime);
+ DoSeek(kSeekPoint);
}
static void RunTimeCB(const AudioRenderer::TimeCB& time_cb,
« media/base/pipeline.cc ('K') | « media/base/pipeline.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698