Index: media/filters/audio_clock_unittest.cc |
diff --git a/media/filters/audio_clock_unittest.cc b/media/filters/audio_clock_unittest.cc |
index 5f69fd8efe10db7747ab3560388b0096914ba089..a9d3b89ead31c4668afb1e1ed19c2c2cfc1df480 100644 |
--- a/media/filters/audio_clock_unittest.cc |
+++ b/media/filters/audio_clock_unittest.cc |
@@ -32,6 +32,10 @@ class AudioClockTest : public testing::Test { |
return clock_.current_media_timestamp().InMilliseconds(); |
} |
+ int LatestMediaTimestampInMilliseconds() { |
+ return clock_.latest_media_timestamp().InMilliseconds(); |
+ } |
+ |
int CurrentMediaTimestampSinceLastWritingInMilliseconds(int milliseconds) { |
return clock_.CurrentMediaTimestampSinceWriting( |
base::TimeDelta::FromMilliseconds(milliseconds)) |
@@ -84,38 +88,38 @@ TEST_F(AudioClockTest, ContiguousAudioDataBufferedAtSameRateStartsAtZero) { |
clock_.contiguous_audio_data_buffered_at_same_rate()); |
} |
-TEST_F(AudioClockTest, AudioDataBufferedStartsAtFalse) { |
- EXPECT_FALSE(clock_.audio_data_buffered()); |
-} |
- |
TEST_F(AudioClockTest, Playback) { |
// The first time we write data we should still expect our start timestamp |
// due to delay. |
WroteAudio(10, 10, 20, 1.0); |
EXPECT_EQ(0, CurrentMediaTimestampInMilliseconds()); |
+ EXPECT_EQ(1000, LatestMediaTimestampInMilliseconds()); |
EXPECT_EQ(0, ContiguousAudioDataBufferedInMilliseconds()); |
EXPECT_EQ(0, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); |
- EXPECT_TRUE(clock_.audio_data_buffered()); |
// The media time should remain at start timestamp as we write data. |
WroteAudio(10, 10, 20, 1.0); |
EXPECT_EQ(0, CurrentMediaTimestampInMilliseconds()); |
+ EXPECT_EQ(2000, LatestMediaTimestampInMilliseconds()); |
EXPECT_EQ(0, ContiguousAudioDataBufferedInMilliseconds()); |
EXPECT_EQ(0, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); |
WroteAudio(10, 10, 20, 1.0); |
EXPECT_EQ(0, CurrentMediaTimestampInMilliseconds()); |
+ EXPECT_EQ(3000, LatestMediaTimestampInMilliseconds()); |
EXPECT_EQ(3000, ContiguousAudioDataBufferedInMilliseconds()); |
EXPECT_EQ(3000, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); |
// The media time should now start advanced now that delay has been covered. |
WroteAudio(10, 10, 20, 1.0); |
EXPECT_EQ(1000, CurrentMediaTimestampInMilliseconds()); |
+ EXPECT_EQ(4000, LatestMediaTimestampInMilliseconds()); |
EXPECT_EQ(3000, ContiguousAudioDataBufferedInMilliseconds()); |
EXPECT_EQ(3000, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); |
WroteAudio(10, 10, 20, 1.0); |
EXPECT_EQ(2000, CurrentMediaTimestampInMilliseconds()); |
+ EXPECT_EQ(5000, LatestMediaTimestampInMilliseconds()); |
EXPECT_EQ(3000, ContiguousAudioDataBufferedInMilliseconds()); |
EXPECT_EQ(3000, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); |
@@ -124,21 +128,25 @@ TEST_F(AudioClockTest, Playback) { |
// - Contiguous audio data will start shrinking immediately |
WroteAudio(10, 10, 20, 0.5); |
EXPECT_EQ(3000, CurrentMediaTimestampInMilliseconds()); |
+ EXPECT_EQ(5500, LatestMediaTimestampInMilliseconds()); |
EXPECT_EQ(2500, ContiguousAudioDataBufferedInMilliseconds()); |
EXPECT_EQ(2000, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); |
WroteAudio(10, 10, 20, 0.5); |
EXPECT_EQ(4000, CurrentMediaTimestampInMilliseconds()); |
+ EXPECT_EQ(6000, LatestMediaTimestampInMilliseconds()); |
EXPECT_EQ(2000, ContiguousAudioDataBufferedInMilliseconds()); |
EXPECT_EQ(1000, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); |
WroteAudio(10, 10, 20, 0.5); |
EXPECT_EQ(5000, CurrentMediaTimestampInMilliseconds()); |
+ EXPECT_EQ(6500, LatestMediaTimestampInMilliseconds()); |
EXPECT_EQ(1500, ContiguousAudioDataBufferedInMilliseconds()); |
EXPECT_EQ(1500, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); |
WroteAudio(10, 10, 20, 0.5); |
EXPECT_EQ(5500, CurrentMediaTimestampInMilliseconds()); |
+ EXPECT_EQ(7000, LatestMediaTimestampInMilliseconds()); |
EXPECT_EQ(1500, ContiguousAudioDataBufferedInMilliseconds()); |
EXPECT_EQ(1500, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); |
@@ -147,21 +155,25 @@ TEST_F(AudioClockTest, Playback) { |
// - Contiguous audio data will start growing immediately |
WroteAudio(10, 10, 20, 2); |
EXPECT_EQ(6000, CurrentMediaTimestampInMilliseconds()); |
+ EXPECT_EQ(9000, LatestMediaTimestampInMilliseconds()); |
EXPECT_EQ(3000, ContiguousAudioDataBufferedInMilliseconds()); |
EXPECT_EQ(1000, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); |
WroteAudio(10, 10, 20, 2); |
EXPECT_EQ(6500, CurrentMediaTimestampInMilliseconds()); |
+ EXPECT_EQ(11000, LatestMediaTimestampInMilliseconds()); |
EXPECT_EQ(4500, ContiguousAudioDataBufferedInMilliseconds()); |
EXPECT_EQ(500, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); |
WroteAudio(10, 10, 20, 2); |
EXPECT_EQ(7000, CurrentMediaTimestampInMilliseconds()); |
+ EXPECT_EQ(13000, LatestMediaTimestampInMilliseconds()); |
EXPECT_EQ(6000, ContiguousAudioDataBufferedInMilliseconds()); |
EXPECT_EQ(6000, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); |
WroteAudio(10, 10, 20, 2); |
EXPECT_EQ(9000, CurrentMediaTimestampInMilliseconds()); |
+ EXPECT_EQ(15000, LatestMediaTimestampInMilliseconds()); |
EXPECT_EQ(6000, ContiguousAudioDataBufferedInMilliseconds()); |
EXPECT_EQ(6000, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); |
@@ -170,44 +182,48 @@ TEST_F(AudioClockTest, Playback) { |
// - Contiguous audio data will start shrinking towards zero |
WroteAudio(0, 10, 20, 2); |
EXPECT_EQ(11000, CurrentMediaTimestampInMilliseconds()); |
+ EXPECT_EQ(15000, LatestMediaTimestampInMilliseconds()); |
EXPECT_EQ(4000, ContiguousAudioDataBufferedInMilliseconds()); |
EXPECT_EQ(4000, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); |
WroteAudio(0, 10, 20, 2); |
EXPECT_EQ(13000, CurrentMediaTimestampInMilliseconds()); |
+ EXPECT_EQ(15000, LatestMediaTimestampInMilliseconds()); |
EXPECT_EQ(2000, ContiguousAudioDataBufferedInMilliseconds()); |
EXPECT_EQ(2000, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); |
- EXPECT_TRUE(clock_.audio_data_buffered()); // Still audio data buffered. |
WroteAudio(0, 10, 20, 2); |
EXPECT_EQ(15000, CurrentMediaTimestampInMilliseconds()); |
+ EXPECT_EQ(15000, LatestMediaTimestampInMilliseconds()); |
EXPECT_EQ(0, ContiguousAudioDataBufferedInMilliseconds()); |
EXPECT_EQ(0, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); |
- EXPECT_FALSE(clock_.audio_data_buffered()); // No more audio data buffered. |
// At this point media time should stop increasing. |
WroteAudio(0, 10, 20, 2); |
EXPECT_EQ(15000, CurrentMediaTimestampInMilliseconds()); |
+ EXPECT_EQ(15000, LatestMediaTimestampInMilliseconds()); |
EXPECT_EQ(0, ContiguousAudioDataBufferedInMilliseconds()); |
EXPECT_EQ(0, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); |
- EXPECT_FALSE(clock_.audio_data_buffered()); |
} |
TEST_F(AudioClockTest, AlternatingAudioAndSilence) { |
// Buffer #1: [0, 1000) |
WroteAudio(10, 10, 20, 1.0); |
EXPECT_EQ(0, CurrentMediaTimestampInMilliseconds()); |
+ EXPECT_EQ(1000, LatestMediaTimestampInMilliseconds()); |
EXPECT_EQ(0, ContiguousAudioDataBufferedInMilliseconds()); |
// Buffer #2: 1000ms of silence |
WroteAudio(0, 10, 20, 1.0); |
EXPECT_EQ(0, CurrentMediaTimestampInMilliseconds()); |
+ EXPECT_EQ(1000, LatestMediaTimestampInMilliseconds()); |
EXPECT_EQ(0, ContiguousAudioDataBufferedInMilliseconds()); |
// Buffer #3: [1000, 2000): |
// - Buffer #1 is at front with 1000ms of contiguous audio data |
WroteAudio(10, 10, 20, 1.0); |
EXPECT_EQ(0, CurrentMediaTimestampInMilliseconds()); |
+ EXPECT_EQ(2000, LatestMediaTimestampInMilliseconds()); |
EXPECT_EQ(1000, ContiguousAudioDataBufferedInMilliseconds()); |
// Buffer #4: 1000ms of silence |
@@ -215,12 +231,14 @@ TEST_F(AudioClockTest, AlternatingAudioAndSilence) { |
// - Buffer #2 of silence leaves us with 0ms of contiguous audio data |
WroteAudio(0, 10, 20, 1.0); |
EXPECT_EQ(1000, CurrentMediaTimestampInMilliseconds()); |
+ EXPECT_EQ(2000, LatestMediaTimestampInMilliseconds()); |
EXPECT_EQ(0, ContiguousAudioDataBufferedInMilliseconds()); |
// Buffer #5: [2000, 3000): |
// - Buffer #3 is at front with 1000ms of contiguous audio data |
WroteAudio(10, 10, 20, 1.0); |
EXPECT_EQ(1000, CurrentMediaTimestampInMilliseconds()); |
+ EXPECT_EQ(3000, LatestMediaTimestampInMilliseconds()); |
EXPECT_EQ(1000, ContiguousAudioDataBufferedInMilliseconds()); |
} |
@@ -229,24 +247,29 @@ TEST_F(AudioClockTest, ZeroDelay) { |
// immediately. |
WroteAudio(10, 10, 0, 1.0); |
EXPECT_EQ(0, CurrentMediaTimestampInMilliseconds()); |
+ EXPECT_EQ(1000, LatestMediaTimestampInMilliseconds()); |
EXPECT_EQ(1000, ContiguousAudioDataBufferedInMilliseconds()); |
// Ditto for all subsequent buffers. |
WroteAudio(10, 10, 0, 1.0); |
EXPECT_EQ(1000, CurrentMediaTimestampInMilliseconds()); |
+ EXPECT_EQ(2000, LatestMediaTimestampInMilliseconds()); |
EXPECT_EQ(1000, ContiguousAudioDataBufferedInMilliseconds()); |
WroteAudio(10, 10, 0, 1.0); |
EXPECT_EQ(2000, CurrentMediaTimestampInMilliseconds()); |
+ EXPECT_EQ(3000, LatestMediaTimestampInMilliseconds()); |
EXPECT_EQ(1000, ContiguousAudioDataBufferedInMilliseconds()); |
// Ditto for silence. |
WroteAudio(0, 10, 0, 1.0); |
EXPECT_EQ(3000, CurrentMediaTimestampInMilliseconds()); |
+ EXPECT_EQ(3000, LatestMediaTimestampInMilliseconds()); |
EXPECT_EQ(0, ContiguousAudioDataBufferedInMilliseconds()); |
WroteAudio(0, 10, 0, 1.0); |
EXPECT_EQ(3000, CurrentMediaTimestampInMilliseconds()); |
+ EXPECT_EQ(3000, LatestMediaTimestampInMilliseconds()); |
EXPECT_EQ(0, ContiguousAudioDataBufferedInMilliseconds()); |
} |