| Index: media/filters/audio_renderer_impl_unittest.cc
|
| diff --git a/media/filters/audio_renderer_impl_unittest.cc b/media/filters/audio_renderer_impl_unittest.cc
|
| index b815176683067ae3b4f516c42416167882ef3141..ef00769db4fb7a73cbd83362f4967063f7a2efef 100644
|
| --- a/media/filters/audio_renderer_impl_unittest.cc
|
| +++ b/media/filters/audio_renderer_impl_unittest.cc
|
| @@ -290,10 +290,25 @@ class AudioRendererImplTest : public ::testing::Test {
|
| }
|
|
|
| void DeliverEndOfStream() {
|
| - // Repeatedly return EOS buffer
|
| - while (!decode_cb_.is_null()) {
|
| - DeliverBuffer(AudioDecoder::kOk, AudioBuffer::CreateEOSBuffer());
|
| - }
|
| + DCHECK(!decode_cb_.is_null());
|
| +
|
| + // Return EOS buffer to trigger EOS frame.
|
| + EXPECT_CALL(demuxer_stream_, Read(_))
|
| + .WillOnce(RunCallback<0>(DemuxerStream::kOk,
|
| + DecoderBuffer::CreateEOSBuffer()));
|
| +
|
| + // Satify pending |decode_cb_| to trigger a new DemuxerStream::Read().
|
| + message_loop_.PostTask(
|
| + FROM_HERE,
|
| + base::Bind(base::ResetAndReturn(&decode_cb_), AudioDecoder::kOk));
|
| +
|
| + WaitForPendingRead();
|
| +
|
| + message_loop_.PostTask(
|
| + FROM_HERE,
|
| + base::Bind(base::ResetAndReturn(&decode_cb_), AudioDecoder::kOk));
|
| +
|
| + message_loop_.RunUntilIdle();
|
| }
|
|
|
| // Delivers frames until |renderer_|'s internal buffer is full and no longer
|
| @@ -480,7 +495,7 @@ class AudioRendererImplTest : public ::testing::Test {
|
| void DeliverBuffer(AudioDecoder::Status status,
|
| const scoped_refptr<AudioBuffer>& buffer) {
|
| CHECK(!decode_cb_.is_null());
|
| - if (buffer)
|
| + if (buffer && !buffer->end_of_stream())
|
| output_cb_.Run(buffer);
|
| base::ResetAndReturn(&decode_cb_).Run(status);
|
|
|
|
|