| 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());
|
| }
|
|
|
|
|