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

Unified Diff: media/filters/video_renderer_impl_unittest.cc

Issue 557333002: Revert of Switch to using media::TimeSource inside media::RendererImpl. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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
« no previous file with comments | « media/filters/video_renderer_impl.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/filters/video_renderer_impl_unittest.cc
diff --git a/media/filters/video_renderer_impl_unittest.cc b/media/filters/video_renderer_impl_unittest.cc
index 1df10624094b70c87c7b5e73156b8f0066ccfc8e..592090cfd638677914cc1de9734113d886cad3ab 100644
--- a/media/filters/video_renderer_impl_unittest.cc
+++ b/media/filters/video_renderer_impl_unittest.cc
@@ -43,6 +43,10 @@
return arg->timestamp().InMilliseconds() == ms;
}
+// Arbitrary value. Has to be larger to cover any timestamp value used in tests
+// and kTimeToDeclareHaveNothing.
+static const int kVideoDurationInMs = 10000;
+
class VideoRendererImplTest : public ::testing::Test {
public:
VideoRendererImplTest()
@@ -67,9 +71,14 @@
scoped_refptr<DecoderBuffer>(new DecoderBuffer(0))));
EXPECT_CALL(statistics_cb_object_, OnStatistics(_))
.Times(AnyNumber());
+ EXPECT_CALL(*this, OnTimeUpdate(_))
+ .Times(AnyNumber());
}
virtual ~VideoRendererImplTest() {}
+
+ // Callbacks passed into Initialize().
+ MOCK_METHOD1(OnTimeUpdate, void(base::TimeDelta));
void Initialize() {
InitializeWithLowDelay(false);
@@ -105,11 +114,15 @@
status_cb,
base::Bind(&MockStatisticsCB::OnStatistics,
base::Unretained(&statistics_cb_object_)),
+ base::Bind(&VideoRendererImplTest::OnTimeUpdate,
+ base::Unretained(this)),
base::Bind(&StrictMock<MockCB>::BufferingStateChange,
base::Unretained(&mock_cb_)),
ended_event_.GetClosure(),
error_event_.GetPipelineStatusCB(),
- base::Bind(&VideoRendererImplTest::GetTime, base::Unretained(this)));
+ base::Bind(&VideoRendererImplTest::GetTime, base::Unretained(this)),
+ base::Bind(&VideoRendererImplTest::GetDuration,
+ base::Unretained(this)));
}
void StartPlaying() {
@@ -244,6 +257,7 @@
DCHECK_EQ(&message_loop_, base::MessageLoop::current());
base::AutoLock l(lock_);
time_ += base::TimeDelta::FromMilliseconds(time_ms);
+ DCHECK_LE(time_.InMicroseconds(), GetDuration().InMicroseconds());
}
protected:
@@ -267,6 +281,10 @@
return time_;
}
+ base::TimeDelta GetDuration() {
+ return base::TimeDelta::FromMilliseconds(kVideoDurationInMs);
+ }
+
void DecodeRequested(const scoped_refptr<DecoderBuffer>& buffer,
const VideoDecoder::DecodeCB& decode_cb) {
DCHECK_EQ(&message_loop_, base::MessageLoop::current());
@@ -372,6 +390,29 @@
// We shouldn't expect a buffering state change since we never reached
// BUFFERING_HAVE_ENOUGH.
Flush();
+ Destroy();
+}
+
+TEST_F(VideoRendererImplTest, EndOfStream_ClipDuration) {
+ Initialize();
+ QueueFrames("0");
+ EXPECT_CALL(mock_cb_, Display(HasTimestamp(0)));
+ EXPECT_CALL(mock_cb_, BufferingStateChange(BUFFERING_HAVE_ENOUGH));
+ StartPlaying();
+
+ // Next frame has timestamp way past duration. Its timestamp will be adjusted
+ // to match the duration of the video.
+ QueueFrames(base::IntToString(kVideoDurationInMs + 1000));
+ SatisfyPendingRead();
+ WaitForPendingRead();
+
+ // Queue the end of stream frame and wait for the last frame to be rendered.
+ SatisfyPendingReadWithEndOfStream();
+
+ EXPECT_CALL(mock_cb_, Display(HasTimestamp(kVideoDurationInMs)));
+ AdvanceTimeInMs(kVideoDurationInMs);
+ WaitForEnded();
+
Destroy();
}
« no previous file with comments | « media/filters/video_renderer_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698