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

Side by Side Diff: media/base/audio_buffer_unittest.cc

Issue 600143002: Adding new function ReadFrames() that returns the audio frame in planar (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Actually include the template function Created 6 years, 2 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 unified diff | Download patch
« media/base/audio_buffer.cc ('K') | « media/base/audio_buffer.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
OLDNEW
« media/base/audio_buffer.cc ('K') | « media/base/audio_buffer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698