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

Unified Diff: media/renderers/video_renderer_impl_unittest.cc

Issue 1027553002: Change the TimeSource interface to return wallclock time for video. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove underflow changes. Created 5 years, 9 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/renderers/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/renderers/video_renderer_impl_unittest.cc
diff --git a/media/renderers/video_renderer_impl_unittest.cc b/media/renderers/video_renderer_impl_unittest.cc
index 54ca695c1c199de79676236fd21faa9d133e207a..7ef623399d98dfbc91fe6b06175875832ad7e1be 100644
--- a/media/renderers/video_renderer_impl_unittest.cc
+++ b/media/renderers/video_renderer_impl_unittest.cc
@@ -14,6 +14,7 @@
#include "base/strings/string_split.h"
#include "base/strings/stringprintf.h"
#include "base/synchronization/lock.h"
+#include "base/test/simple_test_tick_clock.h"
#include "media/base/data_buffer.h"
#include "media/base/gmock_callback_support.h"
#include "media/base/limits.h"
@@ -45,7 +46,8 @@ MATCHER_P(HasTimestamp, ms, "") {
class VideoRendererImplTest : public ::testing::Test {
public:
VideoRendererImplTest()
- : decoder_(new MockVideoDecoder()),
+ : tick_clock_(new base::SimpleTestTickClock()),
+ decoder_(new MockVideoDecoder()),
demuxer_stream_(DemuxerStream::VIDEO) {
ScopedVector<VideoDecoder> decoders;
decoders.push_back(decoder_);
@@ -53,6 +55,10 @@ class VideoRendererImplTest : public ::testing::Test {
renderer_.reset(new VideoRendererImpl(message_loop_.message_loop_proxy(),
decoders.Pass(), true,
new MediaLog()));
+ renderer_->SetTickClockForTesting(scoped_ptr<base::TickClock>(tick_clock_));
+
+ // Start wallclock time at a non-zero value.
+ AdvanceWallclockTimeInMs(12345);
demuxer_stream_.set_video_decoder_config(TestVideoConfig::Normal());
@@ -103,7 +109,8 @@ class VideoRendererImplTest : public ::testing::Test {
base::Unretained(&mock_cb_)),
base::Bind(&StrictMock<MockCB>::Display, base::Unretained(&mock_cb_)),
ended_event_.GetClosure(), error_event_.GetPipelineStatusCB(),
- base::Bind(&VideoRendererImplTest::GetTime, base::Unretained(this)),
+ base::Bind(&VideoRendererImplTest::GetWallClockTime,
+ base::Unretained(this)),
base::Bind(&VideoRendererImplTest::OnWaitingForDecryptionKey,
base::Unretained(this)));
}
@@ -237,6 +244,12 @@ class VideoRendererImplTest : public ::testing::Test {
base::Bind(base::ResetAndReturn(&decode_cb_), VideoDecoder::kOk));
}
+ void AdvanceWallclockTimeInMs(int time_ms) {
+ DCHECK_EQ(&message_loop_, base::MessageLoop::current());
+ base::AutoLock l(lock_);
+ tick_clock_->Advance(base::TimeDelta::FromMilliseconds(time_ms));
+ }
+
void AdvanceTimeInMs(int time_ms) {
DCHECK_EQ(&message_loop_, base::MessageLoop::current());
base::AutoLock l(lock_);
@@ -246,6 +259,7 @@ class VideoRendererImplTest : public ::testing::Test {
protected:
// Fixture members.
scoped_ptr<VideoRendererImpl> renderer_;
+ base::SimpleTestTickClock* tick_clock_; // Owned by |renderer_|.
MockVideoDecoder* decoder_; // Owned by |renderer_|.
NiceMock<MockDemuxerStream> demuxer_stream_;
@@ -258,9 +272,9 @@ class VideoRendererImplTest : public ::testing::Test {
StrictMock<MockCB> mock_cb_;
private:
- base::TimeDelta GetTime() {
+ base::TimeTicks GetWallClockTime(base::TimeDelta time) {
base::AutoLock l(lock_);
- return time_;
+ return tick_clock_->NowTicks() + (time - time_);
}
void DecodeRequested(const scoped_refptr<DecoderBuffer>& buffer,
« no previous file with comments | « media/renderers/video_renderer_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698