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

Side by Side Diff: media/filters/audio_renderer_impl_unittest.cc

Issue 11275087: Move OnDecoderInitDone() from decoder to pipeline thread. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comments. Created 8 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "base/bind.h" 5 #include "base/bind.h"
6 #include "base/callback_helpers.h" 6 #include "base/callback_helpers.h"
7 #include "base/gtest_prod_util.h" 7 #include "base/gtest_prod_util.h"
8 #include "base/message_loop.h"
8 #include "base/stl_util.h" 9 #include "base/stl_util.h"
9 #include "media/base/data_buffer.h" 10 #include "media/base/data_buffer.h"
10 #include "media/base/mock_audio_renderer_sink.h" 11 #include "media/base/mock_audio_renderer_sink.h"
11 #include "media/base/mock_callback.h" 12 #include "media/base/mock_callback.h"
12 #include "media/base/mock_filters.h" 13 #include "media/base/mock_filters.h"
13 #include "media/filters/audio_renderer_impl.h" 14 #include "media/filters/audio_renderer_impl.h"
14 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
15 16
16 using ::testing::_; 17 using ::testing::_;
17 using ::testing::AnyNumber; 18 using ::testing::AnyNumber;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 .Times(AnyNumber()); 52 .Times(AnyNumber());
52 EXPECT_CALL(*decoder_, channel_layout()) 53 EXPECT_CALL(*decoder_, channel_layout())
53 .Times(AnyNumber()); 54 .Times(AnyNumber());
54 EXPECT_CALL(*decoder_, samples_per_second()) 55 EXPECT_CALL(*decoder_, samples_per_second())
55 .Times(AnyNumber()); 56 .Times(AnyNumber());
56 57
57 decoders_.push_back(decoder_); 58 decoders_.push_back(decoder_);
58 } 59 }
59 60
60 virtual ~AudioRendererImplTest() { 61 virtual ~AudioRendererImplTest() {
62 message_loop_.RunAllPending();
61 renderer_->Stop(NewExpectedClosure()); 63 renderer_->Stop(NewExpectedClosure());
62 } 64 }
63 65
64 void SetSupportedAudioDecoderProperties() { 66 void SetSupportedAudioDecoderProperties() {
65 ON_CALL(*decoder_, bits_per_channel()) 67 ON_CALL(*decoder_, bits_per_channel())
66 .WillByDefault(Return(16)); 68 .WillByDefault(Return(16));
67 ON_CALL(*decoder_, channel_layout()) 69 ON_CALL(*decoder_, channel_layout())
68 .WillByDefault(Return(CHANNEL_LAYOUT_MONO)); 70 .WillByDefault(Return(CHANNEL_LAYOUT_MONO));
69 ON_CALL(*decoder_, samples_per_second()) 71 ON_CALL(*decoder_, samples_per_second())
70 .WillByDefault(Return(44100)); 72 .WillByDefault(Return(44100));
(...skipping 23 matching lines...) Expand all
94 void OnAudioTimeCallback( 96 void OnAudioTimeCallback(
95 base::TimeDelta current_time, base::TimeDelta max_time) { 97 base::TimeDelta current_time, base::TimeDelta max_time) {
96 CHECK(current_time <= max_time); 98 CHECK(current_time <= max_time);
97 } 99 }
98 100
99 void Initialize() { 101 void Initialize() {
100 EXPECT_CALL(*decoder_, Initialize(_, _, _)) 102 EXPECT_CALL(*decoder_, Initialize(_, _, _))
101 .WillOnce(RunPipelineStatusCB1(PIPELINE_OK)); 103 .WillOnce(RunPipelineStatusCB1(PIPELINE_OK));
102 104
103 InitializeWithStatus(PIPELINE_OK); 105 InitializeWithStatus(PIPELINE_OK);
106 message_loop_.RunAllPending();
104 } 107 }
105 108
106 void InitializeWithStatus(PipelineStatus expected) { 109 void InitializeWithStatus(PipelineStatus expected) {
107 renderer_->Initialize( 110 renderer_->Initialize(
108 demuxer_stream_, 111 demuxer_stream_,
109 decoders_, 112 decoders_,
110 NewExpectedStatusCB(expected), 113 NewExpectedStatusCB(expected),
111 base::Bind(&AudioRendererImplTest::OnStatistics, 114 base::Bind(&AudioRendererImplTest::OnStatistics,
112 base::Unretained(this)), 115 base::Unretained(this)),
113 base::Bind(&AudioRendererImplTest::OnUnderflow, 116 base::Bind(&AudioRendererImplTest::OnUnderflow,
114 base::Unretained(this)), 117 base::Unretained(this)),
115 base::Bind(&AudioRendererImplTest::OnAudioTimeCallback, 118 base::Bind(&AudioRendererImplTest::OnAudioTimeCallback,
116 base::Unretained(this)), 119 base::Unretained(this)),
117 base::Bind(&AudioRendererImplTest::OnEnded, 120 base::Bind(&AudioRendererImplTest::OnEnded,
118 base::Unretained(this)), 121 base::Unretained(this)),
119 base::Bind(&AudioRendererImplTest::OnDisabled, 122 base::Bind(&AudioRendererImplTest::OnDisabled,
120 base::Unretained(this)), 123 base::Unretained(this)),
121 base::Bind(&AudioRendererImplTest::OnError, 124 base::Bind(&AudioRendererImplTest::OnError,
122 base::Unretained(this))); 125 base::Unretained(this)));
123 } 126 }
124 127
125 void Preroll() { 128 void Preroll() {
126 // Fill entire buffer to complete prerolling. 129 // Fill entire buffer to complete prerolling.
127 EXPECT_CALL(*decoder_, Read(_)); 130 EXPECT_CALL(*decoder_, Read(_));
128 renderer_->Preroll(base::TimeDelta(), NewPrerollCB()); 131 renderer_->Preroll(base::TimeDelta(), NewPrerollCB());
129 EXPECT_CALL(*this, OnPrerollComplete(PIPELINE_OK)); 132 EXPECT_CALL(*this, OnPrerollComplete(PIPELINE_OK));
133 message_loop_.RunAllPending();
130 DeliverRemainingAudio(); 134 DeliverRemainingAudio();
131 } 135 }
132 136
133 void Play() { 137 void Play() {
134 renderer_->Play(NewExpectedClosure()); 138 renderer_->Play(NewExpectedClosure());
135 renderer_->SetPlaybackRate(1.0f); 139 renderer_->SetPlaybackRate(1.0f);
136 } 140 }
137 141
138 void Preroll(base::TimeDelta preroll_time) { 142 void Preroll(base::TimeDelta preroll_time) {
139 next_timestamp_ = preroll_time; 143 next_timestamp_ = preroll_time;
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 renderer_->ResumeAfterUnderflow(false); 226 renderer_->ResumeAfterUnderflow(false);
223 } 227 }
224 228
225 // Fixture members. 229 // Fixture members.
226 scoped_refptr<AudioRendererImpl> renderer_; 230 scoped_refptr<AudioRendererImpl> renderer_;
227 scoped_refptr<MockDemuxerStream> demuxer_stream_; 231 scoped_refptr<MockDemuxerStream> demuxer_stream_;
228 scoped_refptr<MockAudioDecoder> decoder_; 232 scoped_refptr<MockAudioDecoder> decoder_;
229 AudioRendererImpl::AudioDecoderList decoders_; 233 AudioRendererImpl::AudioDecoderList decoders_;
230 AudioDecoder::ReadCB read_cb_; 234 AudioDecoder::ReadCB read_cb_;
231 base::TimeDelta next_timestamp_; 235 base::TimeDelta next_timestamp_;
236 MessageLoop message_loop_;
232 237
233 private: 238 private:
234 void SaveReadCallback(const AudioDecoder::ReadCB& callback) { 239 void SaveReadCallback(const AudioDecoder::ReadCB& callback) {
235 CHECK(read_cb_.is_null()) << "Overlapping reads are not permitted"; 240 CHECK(read_cb_.is_null()) << "Overlapping reads are not permitted";
236 read_cb_ = callback; 241 read_cb_ = callback;
237 } 242 }
238 243
239 DISALLOW_COPY_AND_ASSIGN(AudioRendererImplTest); 244 DISALLOW_COPY_AND_ASSIGN(AudioRendererImplTest);
240 }; 245 };
241 246
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 EXPECT_TRUE(ConsumeBufferedData(bytes_buffered() / 2, NULL)); 456 EXPECT_TRUE(ConsumeBufferedData(bytes_buffered() / 2, NULL));
452 457
453 renderer_->Pause(NewExpectedClosure()); 458 renderer_->Pause(NewExpectedClosure());
454 459
455 AbortPendingRead(); 460 AbortPendingRead();
456 461
457 Preroll(base::TimeDelta::FromSeconds(1)); 462 Preroll(base::TimeDelta::FromSeconds(1));
458 } 463 }
459 464
460 } // namespace media 465 } // namespace media
OLDNEW
« media/filters/audio_renderer_impl.cc ('K') | « media/filters/audio_renderer_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698