| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <deque> | 5 #include <deque> |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/format_macros.h" | 8 #include "base/format_macros.h" |
| 9 #include "base/md5.h" | 9 #include "base/md5.h" |
| 10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 154 reader_->codec_context_for_testing(), false, &config, false); | 154 reader_->codec_context_for_testing(), false, &config, false); |
| 155 | 155 |
| 156 EXPECT_EQ(GetParam().codec, config.codec()); | 156 EXPECT_EQ(GetParam().codec, config.codec()); |
| 157 EXPECT_EQ(GetParam().samples_per_second, config.samples_per_second()); | 157 EXPECT_EQ(GetParam().samples_per_second, config.samples_per_second()); |
| 158 EXPECT_EQ(GetParam().channel_layout, config.channel_layout()); | 158 EXPECT_EQ(GetParam().channel_layout, config.channel_layout()); |
| 159 | 159 |
| 160 InitializeDecoder(config); | 160 InitializeDecoder(config); |
| 161 } | 161 } |
| 162 | 162 |
| 163 void InitializeDecoder(const AudioDecoderConfig& config) { | 163 void InitializeDecoder(const AudioDecoderConfig& config) { |
| 164 InitializeDecoderWithStatus(config, PIPELINE_OK); | 164 InitializeDecoderWithResult(config, true); |
| 165 } | 165 } |
| 166 | 166 |
| 167 void InitializeDecoderWithStatus(const AudioDecoderConfig& config, | 167 void InitializeDecoderWithResult(const AudioDecoderConfig& config, |
| 168 PipelineStatus status) { | 168 bool success) { |
| 169 decoder_->Initialize( | 169 decoder_->Initialize( |
| 170 config, | 170 config, NewExpectedBoolCB(success), |
| 171 NewExpectedStatusCB(status), | |
| 172 base::Bind(&AudioDecoderTest::OnDecoderOutput, base::Unretained(this))); | 171 base::Bind(&AudioDecoderTest::OnDecoderOutput, base::Unretained(this))); |
| 173 base::RunLoop().RunUntilIdle(); | 172 base::RunLoop().RunUntilIdle(); |
| 174 } | 173 } |
| 175 | 174 |
| 176 void Decode() { | 175 void Decode() { |
| 177 AVPacket packet; | 176 AVPacket packet; |
| 178 ASSERT_TRUE(reader_->ReadPacketForTesting(&packet)); | 177 ASSERT_TRUE(reader_->ReadPacketForTesting(&packet)); |
| 179 | 178 |
| 180 // Split out packet metadata before making a copy. | 179 // Split out packet metadata before making a copy. |
| 181 av_packet_split_side_data(&packet); | 180 av_packet_split_side_data(&packet); |
| (...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 396 kSampleFormatF32, | 395 kSampleFormatF32, |
| 397 CHANNEL_LAYOUT_STEREO, | 396 CHANNEL_LAYOUT_STEREO, |
| 398 48000, | 397 48000, |
| 399 kOpusExtraData, | 398 kOpusExtraData, |
| 400 arraysize(kOpusExtraData), | 399 arraysize(kOpusExtraData), |
| 401 false, | 400 false, |
| 402 false, | 401 false, |
| 403 base::TimeDelta::FromMilliseconds(80), | 402 base::TimeDelta::FromMilliseconds(80), |
| 404 // Use a different codec delay than in the extradata. | 403 // Use a different codec delay than in the extradata. |
| 405 100); | 404 100); |
| 406 InitializeDecoderWithStatus(decoder_config, DECODER_ERROR_NOT_SUPPORTED); | 405 InitializeDecoderWithResult(decoder_config, false); |
| 407 } | 406 } |
| 408 | 407 |
| 409 TEST_P(FFmpegAudioDecoderBehavioralTest, InitializeWithBadConfig) { | 408 TEST_P(FFmpegAudioDecoderBehavioralTest, InitializeWithBadConfig) { |
| 410 const AudioDecoderConfig decoder_config(kCodecVorbis, | 409 const AudioDecoderConfig decoder_config(kCodecVorbis, |
| 411 kSampleFormatF32, | 410 kSampleFormatF32, |
| 412 CHANNEL_LAYOUT_STEREO, | 411 CHANNEL_LAYOUT_STEREO, |
| 413 // Invalid sample rate of zero. | 412 // Invalid sample rate of zero. |
| 414 0, | 413 0, |
| 415 NULL, | 414 NULL, |
| 416 0, | 415 0, |
| 417 false); | 416 false); |
| 418 InitializeDecoderWithStatus(decoder_config, DECODER_ERROR_NOT_SUPPORTED); | 417 InitializeDecoderWithResult(decoder_config, false); |
| 419 } | 418 } |
| 420 | 419 |
| 421 const DecodedBufferExpectations kSfxOpusExpectations[] = { | 420 const DecodedBufferExpectations kSfxOpusExpectations[] = { |
| 422 {0, 13500, "-2.70,-1.41,-0.78,-1.27,-2.56,-3.73,"}, | 421 {0, 13500, "-2.70,-1.41,-0.78,-1.27,-2.56,-3.73,"}, |
| 423 {13500, 20000, "5.48,5.93,6.04,5.83,5.54,5.45,"}, | 422 {13500, 20000, "5.48,5.93,6.04,5.83,5.54,5.45,"}, |
| 424 {33500, 20000, "-3.45,-3.35,-3.57,-4.12,-4.74,-5.14,"}, | 423 {33500, 20000, "-3.45,-3.35,-3.57,-4.12,-4.74,-5.14,"}, |
| 425 }; | 424 }; |
| 426 | 425 |
| 427 const DecodedBufferExpectations kBearOpusExpectations[] = { | 426 const DecodedBufferExpectations kBearOpusExpectations[] = { |
| 428 {500, 3500, "-0.26,0.87,1.36,0.84,-0.30,-1.22,"}, | 427 {500, 3500, "-0.26,0.87,1.36,0.84,-0.30,-1.22,"}, |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 524 }; | 523 }; |
| 525 | 524 |
| 526 INSTANTIATE_TEST_CASE_P(FFmpegAudioDecoderTest, | 525 INSTANTIATE_TEST_CASE_P(FFmpegAudioDecoderTest, |
| 527 AudioDecoderTest, | 526 AudioDecoderTest, |
| 528 testing::ValuesIn(kFFmpegTests)); | 527 testing::ValuesIn(kFFmpegTests)); |
| 529 INSTANTIATE_TEST_CASE_P(FFmpegAudioDecoderBehavioralTest, | 528 INSTANTIATE_TEST_CASE_P(FFmpegAudioDecoderBehavioralTest, |
| 530 FFmpegAudioDecoderBehavioralTest, | 529 FFmpegAudioDecoderBehavioralTest, |
| 531 testing::ValuesIn(kFFmpegBehavioralTest)); | 530 testing::ValuesIn(kFFmpegBehavioralTest)); |
| 532 | 531 |
| 533 } // namespace media | 532 } // namespace media |
| OLD | NEW |