Chromium Code Reviews| Index: media/filters/audio_renderer_algorithm_unittest.cc |
| diff --git a/media/filters/audio_renderer_algorithm_unittest.cc b/media/filters/audio_renderer_algorithm_unittest.cc |
| index 0f63922398016e4361f01f32aba390a4a425909e..b5f895c90d9d3f7be4377d90b6884a248d92a7fe 100644 |
| --- a/media/filters/audio_renderer_algorithm_unittest.cc |
| +++ b/media/filters/audio_renderer_algorithm_unittest.cc |
| @@ -94,7 +94,7 @@ class AudioRendererAlgorithmTest : public testing::Test { |
| samples_per_second, |
| bytes_per_sample_ * 8, |
| samples_per_second / 100); |
| - algorithm_.Initialize(1, params); |
| + algorithm_.Initialize(params); |
| FillAlgorithmQueue(); |
| } |
| @@ -145,14 +145,14 @@ class AudioRendererAlgorithmTest : public testing::Test { |
| } |
| } |
| - void CheckFakeData(AudioBus* audio_data, int frames_written) { |
|
scherkus (not reviewing)
2014/07/22 19:25:50
I'm not sure what this was actually checking for .
DaleCurtis
2014/07/22 19:32:56
I think it was just trying to provide some extra c
|
| - // Check each channel individually. |
| + bool AudioDataIsMuted(AudioBus* audio_data, int frames_written) { |
| for (int ch = 0; ch < channels_; ++ch) { |
| - bool all_zero = true; |
| - for (int i = 0; i < frames_written && all_zero; ++i) |
| - all_zero = audio_data->channel(ch)[i] == 0.0f; |
| - ASSERT_EQ(algorithm_.is_muted(), all_zero) << " for channel " << ch; |
| + for (int i = 0; i < frames_written; ++i) { |
| + if (audio_data->channel(ch)[i] != 0.0f) |
| + return false; |
| + } |
| } |
| + return true; |
| } |
| int ComputeConsumedFrames(int initial_frames_enqueued, |
| @@ -178,22 +178,24 @@ class AudioRendererAlgorithmTest : public testing::Test { |
| int total_frames_requested) { |
| int initial_frames_enqueued = frames_enqueued_; |
| int initial_frames_buffered = algorithm_.frames_buffered(); |
| - algorithm_.SetPlaybackRate(static_cast<float>(playback_rate)); |
| scoped_ptr<AudioBus> bus = |
| AudioBus::Create(channels_, buffer_size_in_frames); |
| if (playback_rate == 0.0) { |
| - int frames_written = |
| - algorithm_.FillBuffer(bus.get(), buffer_size_in_frames); |
| + int frames_written = algorithm_.FillBuffer( |
| + bus.get(), buffer_size_in_frames, playback_rate); |
| EXPECT_EQ(0, frames_written); |
| return; |
| } |
| + bool expect_muted = (playback_rate < 0.5 || playback_rate > 4); |
| + |
| int frames_remaining = total_frames_requested; |
| bool first_fill_buffer = true; |
| while (frames_remaining > 0) { |
| int frames_requested = std::min(buffer_size_in_frames, frames_remaining); |
| - int frames_written = algorithm_.FillBuffer(bus.get(), frames_requested); |
| + int frames_written = |
| + algorithm_.FillBuffer(bus.get(), frames_requested, playback_rate); |
| ASSERT_GT(frames_written, 0) << "Requested: " << frames_requested |
| << ", playing at " << playback_rate; |
| @@ -203,7 +205,7 @@ class AudioRendererAlgorithmTest : public testing::Test { |
| // if at very first buffer-fill only one frame is written, that is zero |
| // which might cause exception in CheckFakeData(). |
| if (!first_fill_buffer || frames_written > 1) |
| - CheckFakeData(bus.get(), frames_written); |
| + ASSERT_EQ(expect_muted, AudioDataIsMuted(bus.get(), frames_written)); |
| first_fill_buffer = false; |
| frames_remaining -= frames_written; |
| @@ -242,7 +244,7 @@ class AudioRendererAlgorithmTest : public testing::Test { |
| channels_ = ChannelLayoutToChannelCount(kChannelLayout); |
| AudioParameters params(AudioParameters::AUDIO_PCM_LINEAR, kChannelLayout, |
| kSampleRateHz, kBytesPerSample * 8, kNumFrames); |
| - algorithm_.Initialize(playback_rate, params); |
| + algorithm_.Initialize(params); |
| // A pulse is 6 milliseconds (even number of samples). |
| const int kPulseWidthSamples = 6 * kSampleRateHz / 1000; |
| @@ -279,7 +281,7 @@ class AudioRendererAlgorithmTest : public testing::Test { |
| for (int n = 0; n < kNumRequestedPulses; ++n) { |
| int num_buffered_frames = 0; |
| while (num_buffered_frames < kPulseWidthSamples) { |
| - int num_samples = algorithm_.FillBuffer(output.get(), 1); |
| + int num_samples = algorithm_.FillBuffer(output.get(), 1, playback_rate); |
| ASSERT_LE(num_samples, 1); |
| if (num_samples > 0) { |
| output->CopyPartialFramesTo(0, num_samples, num_buffered_frames, |