Index: media/base/pipeline_unittest.cc |
diff --git a/media/base/pipeline_unittest.cc b/media/base/pipeline_unittest.cc |
index 05ffc8c391a3918514b9b5a895b36226a2b8f623..45cc73ba36fa7b1a46c5f19aed717b78da5be1fe 100644 |
--- a/media/base/pipeline_unittest.cc |
+++ b/media/base/pipeline_unittest.cc |
@@ -107,6 +107,9 @@ |
EXPECT_CALL(*demuxer_, GetStream(_)) |
.WillRepeatedly(Return(null_pointer)); |
+ EXPECT_CALL(*demuxer_, GetStartTime()) |
+ .WillRepeatedly(Return(base::TimeDelta())); |
+ |
EXPECT_CALL(*demuxer_, GetTimelineOffset()) |
.WillRepeatedly(Return(base::Time())); |
@@ -171,7 +174,7 @@ |
EXPECT_CALL(*video_renderer_, SetPlaybackRate(0.0f)); |
// Startup sequence. |
- EXPECT_CALL(*video_renderer_, Preroll(base::TimeDelta(), _)) |
+ EXPECT_CALL(*video_renderer_, Preroll(demuxer_->GetStartTime(), _)) |
.WillOnce(RunCallback<1>(PIPELINE_OK)); |
EXPECT_CALL(*video_renderer_, Play(_)) |
.WillOnce(RunClosure<0>()); |
@@ -736,6 +739,43 @@ |
message_loop_.RunUntilIdle(); |
} |
+TEST_F(PipelineTest, StartTimeIsZero) { |
+ CreateVideoStream(); |
+ MockDemuxerStreamVector streams; |
+ streams.push_back(video_stream()); |
+ |
+ const base::TimeDelta kDuration = base::TimeDelta::FromSeconds(100); |
+ InitializeDemuxer(&streams, kDuration); |
+ InitializeVideoRenderer(video_stream()); |
+ |
+ InitializePipeline(PIPELINE_OK); |
+ EXPECT_FALSE(metadata_.has_audio); |
+ EXPECT_TRUE(metadata_.has_video); |
+ |
+ EXPECT_EQ(base::TimeDelta(), pipeline_->GetMediaTime()); |
+} |
+ |
+TEST_F(PipelineTest, StartTimeIsNonZero) { |
+ 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); |
+ |
+ EXPECT_EQ(kStartTime, pipeline_->GetMediaTime()); |
+} |
+ |
static void RunTimeCB(const AudioRenderer::TimeCB& time_cb, |
int time_in_ms, |
int max_time_in_ms) { |