OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "media/base/audio_buffer.h" | 5 #include "media/base/audio_buffer.h" |
6 #include "media/base/audio_bus.h" | 6 #include "media/base/audio_bus.h" |
7 #include "media/base/test_helpers.h" | 7 #include "media/base/test_helpers.h" |
8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
9 | 9 |
10 namespace media { | 10 namespace media { |
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
444 } | 444 } |
445 | 445 |
446 TEST(AudioBufferTest, TrimRangePlanar) { | 446 TEST(AudioBufferTest, TrimRangePlanar) { |
447 TrimRangeTest(kSampleFormatPlanarF32); | 447 TrimRangeTest(kSampleFormatPlanarF32); |
448 } | 448 } |
449 | 449 |
450 TEST(AudioBufferTest, TrimRangeInterleaved) { | 450 TEST(AudioBufferTest, TrimRangeInterleaved) { |
451 TrimRangeTest(kSampleFormatF32); | 451 TrimRangeTest(kSampleFormatF32); |
452 } | 452 } |
453 | 453 |
454 static scoped_refptr<AudioBuffer> MakeReadFramesInterleavedTestBuffer( | |
455 SampleFormat sample_format, | |
456 int sample_rate, | |
457 ChannelLayout channel_layout, | |
458 int channel_count, | |
459 int frames) { | |
460 switch (sample_format) { | |
461 case kSampleFormatS16: | |
462 case kSampleFormatPlanarS16: | |
463 return MakeAudioBuffer<int16>(sample_format, | |
464 channel_layout, | |
465 channel_count, | |
466 sample_rate, | |
467 0, | |
468 1, | |
469 frames, | |
470 base::TimeDelta::FromSeconds(0)); | |
471 case kSampleFormatS32: | |
472 return MakeAudioBuffer<int32>(kSampleFormatS32, | |
473 channel_layout, | |
474 channel_count, | |
475 sample_rate, | |
476 0, | |
477 65536, | |
478 frames, | |
479 base::TimeDelta::FromSeconds(0)); | |
480 case kSampleFormatF32: | |
481 case kSampleFormatPlanarF32: | |
482 return MakeAudioBuffer<float>( | |
483 sample_format, | |
484 channel_layout, | |
485 channel_count, | |
486 sample_rate, | |
487 0.0f, | |
488 65536.0f / std::numeric_limits<int32>::max(), | |
489 frames, | |
490 base::TimeDelta::FromSeconds(0)); | |
491 case kSampleFormatU8: | |
492 case kUnknownSampleFormat: | |
493 EXPECT_FALSE(true); | |
494 break; | |
495 } | |
496 return AudioBuffer::CreateEOSBuffer(); | |
497 } | |
498 | |
499 static void ReadFramesInterleavedS32Test(SampleFormat sample_format) { | |
500 const ChannelLayout channel_layout = CHANNEL_LAYOUT_4_0; | |
501 const int channels = ChannelLayoutToChannelCount(channel_layout); | |
502 const int frames = kSampleRate / 10; | |
DaleCurtis
2014/09/29 23:01:33
Use / 100 here, no need for 4800 frames.
pwestin(chromium)
2014/09/30 00:15:17
Done.
| |
503 const base::TimeDelta duration = base::TimeDelta::FromMilliseconds(100); | |
504 scoped_refptr<AudioBuffer> buffer = MakeReadFramesInterleavedTestBuffer( | |
505 sample_format, kSampleRate, channel_layout, channels, frames); | |
506 EXPECT_EQ(frames, buffer->frame_count()); | |
507 EXPECT_EQ(duration, buffer->duration()); | |
508 | |
509 int32* dest = new int32[frames * channels]; | |
510 buffer->ReadFramesInterleavedS32(frames, dest); | |
511 | |
512 int count = 0; | |
513 for (int i = 0; i < frames; ++i) { | |
514 for (int ch = 0; ch < channels; ++ch) { | |
515 EXPECT_EQ(dest[count++], (frames * ch + i) << 16); | |
516 } | |
517 } | |
518 delete[] dest; | |
519 } | |
520 | |
521 TEST(AudioBufferTest, ReadFramesInterleavedS32FromS16) { | |
522 ReadFramesInterleavedS32Test(kSampleFormatS16); | |
523 } | |
524 | |
525 TEST(AudioBufferTest, ReadFramesInterleavedS32FromS32) { | |
526 ReadFramesInterleavedS32Test(kSampleFormatS32); | |
527 } | |
528 | |
529 TEST(AudioBufferTest, ReadFramesInterleavedS32FromF32) { | |
530 ReadFramesInterleavedS32Test(kSampleFormatF32); | |
531 } | |
532 | |
533 TEST(AudioBufferTest, ReadFramesInterleavedS32FromPlanarS16) { | |
534 ReadFramesInterleavedS32Test(kSampleFormatPlanarS16); | |
535 } | |
536 | |
537 TEST(AudioBufferTest, ReadFramesInterleavedS32FromPlanarF32) { | |
538 ReadFramesInterleavedS32Test(kSampleFormatPlanarF32); | |
539 } | |
540 | |
454 } // namespace media | 541 } // namespace media |
OLD | NEW |