Chromium Code Reviews| Index: media/base/audio_buffer_unittest.cc |
| diff --git a/media/base/audio_buffer_unittest.cc b/media/base/audio_buffer_unittest.cc |
| index c40c076bd5e8ee73c224df4db6b972f0c00fea84..09da83e5fa45973c2ab8da63f6c60b2ee31c3068 100644 |
| --- a/media/base/audio_buffer_unittest.cc |
| +++ b/media/base/audio_buffer_unittest.cc |
| @@ -358,4 +358,49 @@ TEST(AudioBufferTest, Trim) { |
| EXPECT_EQ(buffer->duration(), base::TimeDelta::FromSeconds(0)); |
| } |
| +TEST(AudioBufferTest, TrimRange) { |
| + const ChannelLayout channel_layout = CHANNEL_LAYOUT_4_0; |
| + const int channels = ChannelLayoutToChannelCount(channel_layout); |
| + const int frames = 100; |
| + const base::TimeDelta start_time; |
| + const base::TimeDelta duration = base::TimeDelta::FromSeconds(frames); |
|
wolenetz
2014/04/29 19:18:08
Do you really intend duration to be 100 seconds, e
DaleCurtis
2014/04/30 22:04:04
Fixed here https://codereview.chromium.org/2615330
|
| + const float step = 1.0f; |
| + scoped_refptr<AudioBuffer> buffer = |
| + MakeAudioBuffer<float>(kSampleFormatPlanarF32, |
|
wolenetz
2014/04/29 19:18:08
TrimRange does fancy mem ops depending on planar v
DaleCurtis
2014/04/30 22:04:04
Done.
|
| + channel_layout, |
| + channels, |
| + kSampleRate, |
| + 0, |
| + step, |
| + frames, |
| + start_time, |
| + duration); |
| + EXPECT_EQ(frames, buffer->frame_count()); |
| + EXPECT_EQ(start_time, buffer->timestamp()); |
| + EXPECT_EQ(frames, buffer->duration().InSeconds()); |
| + |
| + scoped_ptr<AudioBus> bus = AudioBus::Create(channels, frames); |
| + |
| + const int trim_start = 25; |
| + const int trim_length = 50; |
| + |
| + // Verify the first 25 frames before trimming. |
| + buffer->ReadFrames(trim_start, 0, 0, bus.get()); |
| + VerifyResult(bus->channel(0), trim_start, 0, step); |
|
wolenetz
2014/04/29 19:18:08
TrimRange's fancy mem ops could use additional ver
DaleCurtis
2014/04/30 22:04:04
Done.
|
| + |
| + // Trim frames from the middle of the buffer. |
| + buffer->TrimRange(trim_start, trim_start + trim_length); |
| + EXPECT_EQ(buffer->frame_count(), frames - trim_length); |
| + EXPECT_EQ(buffer->timestamp(), start_time); |
| + EXPECT_EQ(buffer->duration(), base::TimeDelta::FromSeconds(50)); |
|
wolenetz
2014/04/29 19:18:08
I don't understand why an AudioBuffer could be giv
DaleCurtis
2014/04/29 20:46:35
Generally the duration will only be off by a micro
DaleCurtis
2014/04/30 22:04:04
Fixed here: https://codereview.chromium.org/261533
|
| + |
| + // Verify the first 25 frames. |
| + buffer->ReadFrames(trim_start, 0, 0, bus.get()); |
| + VerifyResult(bus->channel(0), trim_start, 0, step); |
|
wolenetz
2014/04/29 19:18:08
ditto: verify all channels
DaleCurtis
2014/04/30 22:04:04
Done.
|
| + |
| + // Verify the next 25 frames. |
| + buffer->ReadFrames(trim_start, trim_start, 0, bus.get()); |
| + VerifyResult(bus->channel(0), trim_start, trim_start + trim_length, step); |
|
wolenetz
2014/04/29 19:18:08
ditto
DaleCurtis
2014/04/30 22:04:04
Done.
|
| +} |
| + |
| } // namespace media |