Chromium Code Reviews| Index: media/filters/audio_file_reader_unittest.cc | 
| diff --git a/media/filters/audio_file_reader_unittest.cc b/media/filters/audio_file_reader_unittest.cc | 
| index 449934bcb19d80aa92877a1ea7dd3674d395f3f6..1f5a41fbd490f4afd1f5d14c6b56e5ce7814063f 100644 | 
| --- a/media/filters/audio_file_reader_unittest.cc | 
| +++ b/media/filters/audio_file_reader_unittest.cc | 
| @@ -35,9 +35,17 @@ class AudioFileReaderTest : public testing::Test { | 
| // Reads and the entire file provided to Initialize(). | 
| void ReadAndVerify(const char* expected_audio_hash, int expected_frames) { | 
| + std::vector<std::unique_ptr<AudioBus>> decodedAudioPackets; | 
| + int actual_frames = reader_->Read(decodedAudioPackets); | 
| std::unique_ptr<AudioBus> decoded_audio_data = | 
| - AudioBus::Create(reader_->channels(), reader_->GetNumberOfFrames()); | 
| - int actual_frames = reader_->Read(decoded_audio_data.get()); | 
| + AudioBus::Create(reader_->channels(), actual_frames); | 
| + int dest_start_frame = 0; | 
| + for (auto&& packet : decodedAudioPackets) { | 
| 
 
DaleCurtis
2017/02/09 18:47:36
no &&
 
Raymond Toy
2017/02/09 21:45:06
Done.
 
 | 
| + int frame_count = packet->frames(); | 
| + packet->CopyPartialFramesTo(0, frame_count, dest_start_frame, | 
| + decoded_audio_data.get()); | 
| + dest_start_frame += frame_count; | 
| + } | 
| ASSERT_LE(actual_frames, decoded_audio_data->frames()); | 
| ASSERT_EQ(expected_frames, actual_frames); | 
| @@ -89,17 +97,21 @@ class AudioFileReaderTest : public testing::Test { | 
| int sample_rate, | 
| base::TimeDelta duration, | 
| int frames, | 
| - int trimmed_frames) { | 
| + int expected_frames) { | 
| Initialize(fn); | 
| ASSERT_TRUE(reader_->Open()); | 
| EXPECT_EQ(channels, reader_->channels()); | 
| EXPECT_EQ(sample_rate, reader_->sample_rate()); | 
| - EXPECT_EQ(duration.InMicroseconds(), | 
| - reader_->GetDuration().InMicroseconds()); | 
| - EXPECT_EQ(frames, reader_->GetNumberOfFrames()); | 
| + if (frames >= 0) { | 
| + EXPECT_EQ(duration.InMicroseconds(), | 
| + reader_->GetDuration().InMicroseconds()); | 
| + EXPECT_EQ(frames, reader_->GetNumberOfFrames()); | 
| + } else { | 
| + EXPECT_EQ(reader_->HasKnownDuration(), false); | 
| 
 
DaleCurtis
2017/02/09 18:47:36
If this is only used for testing now rename it as
 
Raymond Toy
2017/02/09 19:56:05
It's used in audio_decoder.cc in a DVLOG. I'm deba
 
Raymond Toy
2017/02/09 21:45:06
Renamed to HasKnownDurationForTesting.  Still used
 
DaleCurtis
2017/02/09 22:42:20
Yeah either drop from DVLOG or rename back to what
 
Raymond Toy
2017/02/09 23:09:28
Renamed.
 
 | 
| + } | 
| if (!packet_verification_disabled_) | 
| ASSERT_NO_FATAL_FAILURE(VerifyPackets()); | 
| - ReadAndVerify(hash, trimmed_frames); | 
| + ReadAndVerify(hash, expected_frames); | 
| } | 
| void RunTestFailingDemux(const char* fn) { | 
| @@ -110,9 +122,8 @@ class AudioFileReaderTest : public testing::Test { | 
| void RunTestFailingDecode(const char* fn) { | 
| Initialize(fn); | 
| EXPECT_TRUE(reader_->Open()); | 
| - std::unique_ptr<AudioBus> decoded_audio_data = | 
| - AudioBus::Create(reader_->channels(), reader_->GetNumberOfFrames()); | 
| - EXPECT_EQ(reader_->Read(decoded_audio_data.get()), 0); | 
| + std::vector<std::unique_ptr<AudioBus>> decodedAudioPackets; | 
| + EXPECT_EQ(reader_->Read(decodedAudioPackets), 0); | 
| } | 
| void disable_packet_verification() { | 
| @@ -136,28 +147,34 @@ TEST_F(AudioFileReaderTest, InvalidFile) { | 
| RunTestFailingDemux("ten_byte_file"); | 
| } | 
| -TEST_F(AudioFileReaderTest, InfiniteDuration) { | 
| - RunTestFailingDemux("bear-320x240-live.webm"); | 
| +TEST_F(AudioFileReaderTest, UnknownDuration) { | 
| + RunTest("bear-320x240-live.webm", | 
| 
 
Raymond Toy
2017/02/09 21:45:07
Presubmit keeps telling me I need to reformat this
 
DaleCurtis
2017/02/09 22:42:20
Just run git cl format.
 
Raymond Toy
2017/02/09 23:09:28
Done.
 
 | 
| + "-3.59,-2.06,-0.43,2.15,0.77,-0.95,", | 
| + 2, | 
| + 44100, | 
| + base::TimeDelta::FromMicroseconds(-1), | 
| + -1, | 
| + 121024); | 
| } | 
| TEST_F(AudioFileReaderTest, WithVideo) { | 
| RunTest("bear.ogv", | 
| - "-2.49,-0.75,0.38,1.60,0.70,-1.22,", | 
| + "-0.73,0.92,0.48,-0.07,-0.92,-0.88,", | 
| 2, | 
| 44100, | 
| base::TimeDelta::FromMicroseconds(1011520), | 
| 44609, | 
| - 44609); | 
| + 45632); | 
| } | 
| TEST_F(AudioFileReaderTest, Vorbis) { | 
| RunTest("sfx.ogg", | 
| - "4.36,4.81,4.84,4.45,4.61,4.63,", | 
| + "2.17,3.31,5.15,6.33,5.97,4.35,", | 
| 1, | 
| 44100, | 
| base::TimeDelta::FromMicroseconds(350001), | 
| 15436, | 
| - 15436); | 
| + 15936); | 
| } | 
| TEST_F(AudioFileReaderTest, WaveU8) { |