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

Side by Side Diff: media/cast/receiver/audio_decoder_unittest.cc

Issue 1905763002: Convert //media/cast from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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
« no previous file with comments | « media/cast/receiver/audio_decoder.cc ('k') | media/cast/receiver/cast_receiver_impl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/bind_helpers.h" 9 #include "base/bind_helpers.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 75
76 total_audio_feed_in_ = base::TimeDelta(); 76 total_audio_feed_in_ = base::TimeDelta();
77 total_audio_decoded_ = base::TimeDelta(); 77 total_audio_decoded_ = base::TimeDelta();
78 } 78 }
79 79
80 // Called from the unit test thread to create another EncodedFrame and push it 80 // Called from the unit test thread to create another EncodedFrame and push it
81 // into the decoding pipeline. 81 // into the decoding pipeline.
82 void FeedMoreAudio(const base::TimeDelta& duration, 82 void FeedMoreAudio(const base::TimeDelta& duration,
83 int num_dropped_frames) { 83 int num_dropped_frames) {
84 // Prepare a simulated EncodedFrame to feed into the AudioDecoder. 84 // Prepare a simulated EncodedFrame to feed into the AudioDecoder.
85 scoped_ptr<EncodedFrame> encoded_frame( 85 std::unique_ptr<EncodedFrame> encoded_frame(new EncodedFrame());
86 new EncodedFrame());
87 encoded_frame->dependency = EncodedFrame::KEY; 86 encoded_frame->dependency = EncodedFrame::KEY;
88 encoded_frame->frame_id = last_frame_id_ + 1 + num_dropped_frames; 87 encoded_frame->frame_id = last_frame_id_ + 1 + num_dropped_frames;
89 encoded_frame->referenced_frame_id = encoded_frame->frame_id; 88 encoded_frame->referenced_frame_id = encoded_frame->frame_id;
90 last_frame_id_ = encoded_frame->frame_id; 89 last_frame_id_ = encoded_frame->frame_id;
91 90
92 const scoped_ptr<AudioBus> audio_bus( 91 const std::unique_ptr<AudioBus> audio_bus(
93 audio_bus_factory_->NextAudioBus(duration)); 92 audio_bus_factory_->NextAudioBus(duration));
94 93
95 // Encode |audio_bus| into |encoded_frame->data|. 94 // Encode |audio_bus| into |encoded_frame->data|.
96 const int num_elements = audio_bus->channels() * audio_bus->frames(); 95 const int num_elements = audio_bus->channels() * audio_bus->frames();
97 std::vector<int16_t> interleaved(num_elements); 96 std::vector<int16_t> interleaved(num_elements);
98 audio_bus->ToInterleaved(audio_bus->frames(), sizeof(int16_t), 97 audio_bus->ToInterleaved(audio_bus->frames(), sizeof(int16_t),
99 &interleaved.front()); 98 &interleaved.front());
100 if (GetParam().codec == CODEC_AUDIO_PCM16) { 99 if (GetParam().codec == CODEC_AUDIO_PCM16) {
101 encoded_frame->data.resize(num_elements * sizeof(int16_t)); 100 encoded_frame->data.resize(num_elements * sizeof(int16_t));
102 int16_t* const pcm_data = 101 int16_t* const pcm_data =
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 base::AutoLock auto_lock(lock_); 141 base::AutoLock auto_lock(lock_);
143 while (total_audio_decoded_ < total_audio_feed_in_) 142 while (total_audio_decoded_ < total_audio_feed_in_)
144 cond_.Wait(); 143 cond_.Wait();
145 EXPECT_EQ(total_audio_feed_in_.InMicroseconds(), 144 EXPECT_EQ(total_audio_feed_in_.InMicroseconds(),
146 total_audio_decoded_.InMicroseconds()); 145 total_audio_decoded_.InMicroseconds());
147 } 146 }
148 147
149 private: 148 private:
150 // Called by |audio_decoder_| to deliver each frame of decoded audio. 149 // Called by |audio_decoder_| to deliver each frame of decoded audio.
151 void OnDecodedFrame(bool should_be_continuous, 150 void OnDecodedFrame(bool should_be_continuous,
152 scoped_ptr<AudioBus> audio_bus, 151 std::unique_ptr<AudioBus> audio_bus,
153 bool is_continuous) { 152 bool is_continuous) {
154 DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN)); 153 DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN));
155 154
156 // A NULL |audio_bus| indicates a decode error, which we don't expect. 155 // A NULL |audio_bus| indicates a decode error, which we don't expect.
157 ASSERT_TRUE(audio_bus); 156 ASSERT_TRUE(audio_bus);
158 157
159 // Did the decoder detect whether frames were dropped? 158 // Did the decoder detect whether frames were dropped?
160 EXPECT_EQ(should_be_continuous, is_continuous); 159 EXPECT_EQ(should_be_continuous, is_continuous);
161 160
162 // Does the audio data seem to be intact? For Opus, we have to ignore the 161 // Does the audio data seem to be intact? For Opus, we have to ignore the
(...skipping 15 matching lines...) Expand all
178 } 177 }
179 178
180 // Signal the main test thread that more audio was decoded. 179 // Signal the main test thread that more audio was decoded.
181 base::AutoLock auto_lock(lock_); 180 base::AutoLock auto_lock(lock_);
182 total_audio_decoded_ += base::TimeDelta::FromSeconds(1) * 181 total_audio_decoded_ += base::TimeDelta::FromSeconds(1) *
183 audio_bus->frames() / GetParam().sampling_rate; 182 audio_bus->frames() / GetParam().sampling_rate;
184 cond_.Signal(); 183 cond_.Signal();
185 } 184 }
186 185
187 const scoped_refptr<StandaloneCastEnvironment> cast_environment_; 186 const scoped_refptr<StandaloneCastEnvironment> cast_environment_;
188 scoped_ptr<AudioDecoder> audio_decoder_; 187 std::unique_ptr<AudioDecoder> audio_decoder_;
189 scoped_ptr<TestAudioBusFactory> audio_bus_factory_; 188 std::unique_ptr<TestAudioBusFactory> audio_bus_factory_;
190 uint32_t last_frame_id_; 189 uint32_t last_frame_id_;
191 bool seen_a_decoded_frame_; 190 bool seen_a_decoded_frame_;
192 scoped_ptr<uint8_t[]> opus_encoder_memory_; 191 std::unique_ptr<uint8_t[]> opus_encoder_memory_;
193 192
194 base::Lock lock_; 193 base::Lock lock_;
195 base::ConditionVariable cond_; 194 base::ConditionVariable cond_;
196 base::TimeDelta total_audio_feed_in_; 195 base::TimeDelta total_audio_feed_in_;
197 base::TimeDelta total_audio_decoded_; 196 base::TimeDelta total_audio_decoded_;
198 197
199 DISALLOW_COPY_AND_ASSIGN(AudioDecoderTest); 198 DISALLOW_COPY_AND_ASSIGN(AudioDecoderTest);
200 }; 199 };
201 200
202 TEST_P(AudioDecoderTest, DecodesFramesWithSameDuration) { 201 TEST_P(AudioDecoderTest, DecodesFramesWithSameDuration) {
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 AudioDecoderTestScenarios, 241 AudioDecoderTestScenarios,
243 AudioDecoderTest, 242 AudioDecoderTest,
244 ::testing::Values( 243 ::testing::Values(
245 TestScenario(CODEC_AUDIO_PCM16, 1, 8000), 244 TestScenario(CODEC_AUDIO_PCM16, 1, 8000),
246 TestScenario(CODEC_AUDIO_PCM16, 2, 48000), 245 TestScenario(CODEC_AUDIO_PCM16, 2, 48000),
247 TestScenario(CODEC_AUDIO_OPUS, 1, 8000), 246 TestScenario(CODEC_AUDIO_OPUS, 1, 8000),
248 TestScenario(CODEC_AUDIO_OPUS, 2, 48000))); 247 TestScenario(CODEC_AUDIO_OPUS, 2, 48000)));
249 248
250 } // namespace cast 249 } // namespace cast
251 } // namespace media 250 } // namespace media
OLDNEW
« no previous file with comments | « media/cast/receiver/audio_decoder.cc ('k') | media/cast/receiver/cast_receiver_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698