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

Unified Diff: media/filters/audio_clock_unittest.cc

Issue 591603003: Introduce media::AudioClock::WallTimeForTimestamp(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase 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/audio_clock.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/filters/audio_clock_unittest.cc
diff --git a/media/filters/audio_clock_unittest.cc b/media/filters/audio_clock_unittest.cc
index f34f21f4438cd5b98d2c42b82632ae4020916e9f..fa7248b46aa60b5eb5abbb8b709d98fb5d3b7994 100644
--- a/media/filters/audio_clock_unittest.cc
+++ b/media/filters/audio_clock_unittest.cc
@@ -39,6 +39,11 @@ class AudioClockTest : public testing::Test {
milliseconds)).InMilliseconds();
}
+ int TimeUntilPlaybackInMilliseconds(int timestamp_ms) {
+ return clock_.TimeUntilPlayback(base::TimeDelta::FromMilliseconds(
+ timestamp_ms)).InMilliseconds();
DaleCurtis 2014/09/22 18:48:57 Weird formatting, did clang-format do this?
scherkus (not reviewing) 2014/09/22 18:49:57 It did!
+ }
+
int ContiguousAudioDataBufferedInDays() {
return clock_.contiguous_audio_data_buffered().InDays();
}
@@ -278,8 +283,9 @@ TEST_F(AudioClockTest, ZeroDelay) {
TEST_F(AudioClockTest, TimestampSinceLastWriting) {
// Construct an audio clock with the following representation:
//
+ // |- existing delay -|------------ calls to WroteAudio() -----------------|
// +-------------------+----------------+------------------+----------------+
- // | 10 frames silence | 10 frames @ 1x | 10 frames @ 0.5x | 10 frames @ 2x |
+ // | 20 frames silence | 10 frames @ 1x | 10 frames @ 0.5x | 10 frames @ 2x |
// +-------------------+----------------+------------------+----------------+
// Media timestamp: 0 1000 1500 3500
// Wall clock time: 2000 3000 4000 5000
@@ -287,6 +293,7 @@ TEST_F(AudioClockTest, TimestampSinceLastWriting) {
WroteAudio(10, 10, 40, 0.5);
WroteAudio(10, 10, 40, 2.0);
EXPECT_EQ(0, FrontTimestampInMilliseconds());
+ EXPECT_EQ(3500, BackTimestampInMilliseconds());
EXPECT_EQ(0, ContiguousAudioDataBufferedInMilliseconds());
// Simulate passing 2000ms of initial delay in the audio hardware.
@@ -314,6 +321,38 @@ TEST_F(AudioClockTest, TimestampSinceLastWriting) {
EXPECT_EQ(3500, TimestampSinceLastWritingInMilliseconds(6000));
}
+TEST_F(AudioClockTest, TimeUntilPlayback) {
+ // Construct an audio clock with the following representation:
+ //
+ // existing
+ // |- delay -|------------------ calls to WroteAudio() ------------------|
+ // +------------+---------+------------+-----------+------------+-----------+
+ // | 20 silence | 10 @ 1x | 10 silence | 10 @ 0.5x | 10 silence | 10 @ 2.0x |
+ // +------------+---------+------------+-----------+------------+-----------+
+ // Media: 0 1000 1000 1500 1500 3500
+ // Wall: 2000 3000 4000 5000 6000 7000
+ WroteAudio(10, 10, 60, 1.0);
+ WroteAudio(0, 10, 60, 1.0);
+ WroteAudio(10, 10, 60, 0.5);
+ WroteAudio(0, 10, 60, 0.5);
+ WroteAudio(10, 10, 60, 2.0);
+ EXPECT_EQ(0, FrontTimestampInMilliseconds());
+ EXPECT_EQ(3500, BackTimestampInMilliseconds());
+ EXPECT_EQ(0, ContiguousAudioDataBufferedInMilliseconds());
+
+ // Media timestamp zero has to wait for silence to pass.
+ EXPECT_EQ(2000, TimeUntilPlaybackInMilliseconds(0));
+
+ // From then on out it's simply adding up the number of frames and taking
+ // silence into account.
+ EXPECT_EQ(2500, TimeUntilPlaybackInMilliseconds(500));
+ EXPECT_EQ(3000, TimeUntilPlaybackInMilliseconds(1000));
+ EXPECT_EQ(4500, TimeUntilPlaybackInMilliseconds(1250));
+ EXPECT_EQ(5000, TimeUntilPlaybackInMilliseconds(1500));
+ EXPECT_EQ(6500, TimeUntilPlaybackInMilliseconds(2500));
+ EXPECT_EQ(7000, TimeUntilPlaybackInMilliseconds(3500));
+}
+
TEST_F(AudioClockTest, SupportsYearsWorthOfAudioData) {
// Use number of frames that would be likely to overflow 32-bit integer math.
const int huge_amount_of_frames = std::numeric_limits<int>::max();
« no previous file with comments | « media/filters/audio_clock.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698