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

Unified Diff: media/filters/audio_renderer_impl_unittest.cc

Issue 339653003: No EOS frame in {Audio|Video}Decoder::OutputCB. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase only Created 6 years, 6 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/base/video_decoder.h ('k') | media/filters/decoder_stream.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
« no previous file with comments | « media/base/video_decoder.h ('k') | media/filters/decoder_stream.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698