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

Unified Diff: media/filters/ffmpeg_audio_decoder_unittest.cc

Issue 331863004: Revert 276344 "Add callback in VideoDecoder and AudioDecoder to ..." (Closed) Base URL: svn://svn.chromium.org/chrome/branches/2049/src/
Patch Set: 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/filters/ffmpeg_audio_decoder.cc ('k') | media/filters/ffmpeg_video_decoder.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/filters/ffmpeg_audio_decoder_unittest.cc
===================================================================
--- media/filters/ffmpeg_audio_decoder_unittest.cc (revision 277175)
+++ media/filters/ffmpeg_audio_decoder_unittest.cc (working copy)
@@ -29,8 +29,7 @@
: decoder_(new FFmpegAudioDecoder(message_loop_.message_loop_proxy(),
LogCB())),
pending_decode_(false),
- pending_reset_(false),
- last_decode_status_(AudioDecoder::kOk) {
+ pending_reset_(false) {
FFmpegGlue::InitializeFFmpeg();
vorbis_extradata_ = ReadTestDataFile("vorbis-extradata");
@@ -70,9 +69,7 @@
vorbis_extradata_->data_size(),
false); // Not encrypted.
decoder_->Initialize(config,
- NewExpectedStatusCB(PIPELINE_OK),
- base::Bind(&FFmpegAudioDecoderTest::OnDecoderOutput,
- base::Unretained(this)));
+ NewExpectedStatusCB(PIPELINE_OK));
base::RunLoop().RunUntilIdle();
}
@@ -88,8 +85,6 @@
base::Bind(&FFmpegAudioDecoderTest::DecodeFinished,
base::Unretained(this)));
base::RunLoop().RunUntilIdle();
- EXPECT_FALSE(pending_decode_);
- EXPECT_EQ(AudioDecoder::kOk, last_decode_status_);
}
void Reset() {
@@ -104,15 +99,27 @@
base::RunLoop().RunUntilIdle();
}
- void OnDecoderOutput(const scoped_refptr<AudioBuffer>& buffer) {
- decoded_audio_.push_back(buffer);
- }
-
- void DecodeFinished(AudioDecoder::Status status) {
+ void DecodeFinished(AudioDecoder::Status status,
+ const scoped_refptr<AudioBuffer>& buffer) {
EXPECT_TRUE(pending_decode_);
pending_decode_ = false;
- last_decode_status_ = status;
+ if (status == AudioDecoder::kNotEnoughData) {
+ EXPECT_TRUE(buffer.get() == NULL);
+ Decode();
+ return;
+ }
+
+ decoded_audio_.push_back(buffer);
+
+ // If we hit a NULL buffer or have a pending reset, we expect an abort.
+ if (buffer.get() == NULL || pending_reset_) {
+ EXPECT_TRUE(buffer.get() == NULL);
+ EXPECT_EQ(status, AudioDecoder::kAborted);
+ return;
+ }
+
+ EXPECT_EQ(status, AudioDecoder::kOk);
}
void ResetFinished() {
@@ -144,7 +151,6 @@
std::deque<scoped_refptr<DecoderBuffer> > encoded_audio_;
std::deque<scoped_refptr<AudioBuffer> > decoded_audio_;
- AudioDecoder::Status last_decode_status_;
};
TEST_F(FFmpegAudioDecoderTest, Initialize) {
@@ -166,7 +172,6 @@
Decode();
Decode();
Decode();
- Decode();
ASSERT_EQ(3u, decoded_audio_.size());
ExpectDecodedAudio(0, 0, 2902);
@@ -175,11 +180,21 @@
// Call one more time to trigger EOS.
Decode();
- ASSERT_EQ(5u, decoded_audio_.size());
+ ASSERT_EQ(4u, decoded_audio_.size());
ExpectEndOfStream(3);
Stop();
}
+TEST_F(FFmpegAudioDecoderTest, DecodeAbort) {
+ encoded_audio_.clear();
+ encoded_audio_.push_back(NULL);
+ Decode();
+
+ EXPECT_EQ(decoded_audio_.size(), 1u);
+ EXPECT_TRUE(decoded_audio_[0].get() == NULL);
+ Stop();
+}
+
TEST_F(FFmpegAudioDecoderTest, PendingDecode_Stop) {
Decode();
Stop();
« no previous file with comments | « media/filters/ffmpeg_audio_decoder.cc ('k') | media/filters/ffmpeg_video_decoder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698