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

Side by Side Diff: trunk/src/media/base/pipeline_unittest.cc

Issue 14320005: Revert 194993 "Remove reference counting from media::VideoDecode..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 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 | Annotate | Revision Log
« no previous file with comments | « trunk/src/media/base/pipeline.cc ('k') | trunk/src/media/base/video_decoder.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 (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 <vector> 5 #include <vector>
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "base/stl_util.h" 9 #include "base/stl_util.h"
10 #include "base/test/simple_test_clock.h" 10 #include "base/test/simple_test_clock.h"
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 // initialization is moved to a separate thread this test will become flaky. 80 // initialization is moved to a separate thread this test will become flaky.
81 class PipelineTest : public ::testing::Test { 81 class PipelineTest : public ::testing::Test {
82 public: 82 public:
83 PipelineTest() 83 PipelineTest()
84 : pipeline_(new Pipeline(message_loop_.message_loop_proxy(), 84 : pipeline_(new Pipeline(message_loop_.message_loop_proxy(),
85 new MediaLog())), 85 new MediaLog())),
86 filter_collection_(new FilterCollection()) { 86 filter_collection_(new FilterCollection()) {
87 demuxer_ = new MockDemuxer(); 87 demuxer_ = new MockDemuxer();
88 filter_collection_->SetDemuxer(demuxer_); 88 filter_collection_->SetDemuxer(demuxer_);
89 89
90 video_decoder_ = new MockVideoDecoder();
91 filter_collection_->GetVideoDecoders()->push_back(video_decoder_);
92
90 video_renderer_ = new MockVideoRenderer(); 93 video_renderer_ = new MockVideoRenderer();
91 scoped_ptr<VideoRenderer> video_renderer(video_renderer_); 94 scoped_ptr<VideoRenderer> video_renderer(video_renderer_);
92 filter_collection_->SetVideoRenderer(video_renderer.Pass()); 95 filter_collection_->SetVideoRenderer(video_renderer.Pass());
93 96
94 audio_renderer_ = new MockAudioRenderer(); 97 audio_renderer_ = new MockAudioRenderer();
95 scoped_ptr<AudioRenderer> audio_renderer(audio_renderer_); 98 scoped_ptr<AudioRenderer> audio_renderer(audio_renderer_);
96 filter_collection_->SetAudioRenderer(audio_renderer.Pass()); 99 filter_collection_->SetAudioRenderer(audio_renderer.Pass());
97 100
98 // InitializeDemuxer() adds overriding expectations for expected non-NULL 101 // InitializeDemuxer() adds overriding expectations for expected non-NULL
99 // streams. 102 // streams.
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 StrictMock<MockDemuxerStream>* CreateStream(DemuxerStream::Type type) { 159 StrictMock<MockDemuxerStream>* CreateStream(DemuxerStream::Type type) {
157 StrictMock<MockDemuxerStream>* stream = 160 StrictMock<MockDemuxerStream>* stream =
158 new StrictMock<MockDemuxerStream>(); 161 new StrictMock<MockDemuxerStream>();
159 EXPECT_CALL(*stream, type()) 162 EXPECT_CALL(*stream, type())
160 .WillRepeatedly(Return(type)); 163 .WillRepeatedly(Return(type));
161 return stream; 164 return stream;
162 } 165 }
163 166
164 // Sets up expectations to allow the video renderer to initialize. 167 // Sets up expectations to allow the video renderer to initialize.
165 void InitializeVideoRenderer(const scoped_refptr<DemuxerStream>& stream) { 168 void InitializeVideoRenderer(const scoped_refptr<DemuxerStream>& stream) {
166 EXPECT_CALL(*video_renderer_, Initialize(stream, _, _, _, _, _, _, _, _)) 169 EXPECT_CALL(*video_renderer_,
167 .WillOnce(RunCallback<1>(PIPELINE_OK)); 170 Initialize(stream, _, _, _, _, _, _, _, _, _))
171 .WillOnce(RunCallback<2>(PIPELINE_OK));
168 EXPECT_CALL(*video_renderer_, SetPlaybackRate(0.0f)); 172 EXPECT_CALL(*video_renderer_, SetPlaybackRate(0.0f));
169 173
170 // Startup sequence. 174 // Startup sequence.
171 EXPECT_CALL(*video_renderer_, Preroll(demuxer_->GetStartTime(), _)) 175 EXPECT_CALL(*video_renderer_,
176 Preroll(demuxer_->GetStartTime(), _))
172 .WillOnce(RunCallback<1>(PIPELINE_OK)); 177 .WillOnce(RunCallback<1>(PIPELINE_OK));
173 EXPECT_CALL(*video_renderer_, Play(_)) 178 EXPECT_CALL(*video_renderer_, Play(_))
174 .WillOnce(RunClosure<0>()); 179 .WillOnce(RunClosure<0>());
175 } 180 }
176 181
177 // Sets up expectations to allow the audio renderer to initialize. 182 // Sets up expectations to allow the audio renderer to initialize.
178 void InitializeAudioRenderer(const scoped_refptr<DemuxerStream>& stream, 183 void InitializeAudioRenderer(const scoped_refptr<DemuxerStream>& stream,
179 bool disable_after_init_cb) { 184 bool disable_after_init_cb) {
180 if (disable_after_init_cb) { 185 if (disable_after_init_cb) {
181 EXPECT_CALL(*audio_renderer_, Initialize(stream, _, _, _, _, _, _, _)) 186 EXPECT_CALL(*audio_renderer_, Initialize(stream, _, _, _, _, _, _, _))
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 } 294 }
290 295
291 // Fixture members. 296 // Fixture members.
292 StrictMock<CallbackHelper> callbacks_; 297 StrictMock<CallbackHelper> callbacks_;
293 base::SimpleTestClock test_clock_; 298 base::SimpleTestClock test_clock_;
294 MessageLoop message_loop_; 299 MessageLoop message_loop_;
295 scoped_refptr<Pipeline> pipeline_; 300 scoped_refptr<Pipeline> pipeline_;
296 301
297 scoped_ptr<FilterCollection> filter_collection_; 302 scoped_ptr<FilterCollection> filter_collection_;
298 scoped_refptr<MockDemuxer> demuxer_; 303 scoped_refptr<MockDemuxer> demuxer_;
304 scoped_refptr<MockVideoDecoder> video_decoder_;
299 MockVideoRenderer* video_renderer_; 305 MockVideoRenderer* video_renderer_;
300 MockAudioRenderer* audio_renderer_; 306 MockAudioRenderer* audio_renderer_;
301 scoped_refptr<StrictMock<MockDemuxerStream> > audio_stream_; 307 scoped_refptr<StrictMock<MockDemuxerStream> > audio_stream_;
302 scoped_refptr<StrictMock<MockDemuxerStream> > video_stream_; 308 scoped_refptr<StrictMock<MockDemuxerStream> > video_stream_;
303 AudioRenderer::TimeCB audio_time_cb_; 309 AudioRenderer::TimeCB audio_time_cb_;
304 VideoDecoderConfig video_decoder_config_; 310 VideoDecoderConfig video_decoder_config_;
305 311
306 private: 312 private:
307 DISALLOW_COPY_AND_ASSIGN(PipelineTest); 313 DISALLOW_COPY_AND_ASSIGN(PipelineTest);
308 }; 314 };
(...skipping 694 matching lines...) Expand 10 before | Expand all | Expand 10 after
1003 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>()); 1009 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>());
1004 EXPECT_CALL(*audio_renderer_, Stop(_)).WillOnce(RunClosure<0>()); 1010 EXPECT_CALL(*audio_renderer_, Stop(_)).WillOnce(RunClosure<0>());
1005 return status; 1011 return status;
1006 } 1012 }
1007 1013
1008 EXPECT_CALL(*audio_renderer_, Initialize(_, _, _, _, _, _, _, _)) 1014 EXPECT_CALL(*audio_renderer_, Initialize(_, _, _, _, _, _, _, _))
1009 .WillOnce(RunCallback<1>(PIPELINE_OK)); 1015 .WillOnce(RunCallback<1>(PIPELINE_OK));
1010 1016
1011 if (state == kInitVideoRenderer) { 1017 if (state == kInitVideoRenderer) {
1012 if (stop_or_error == kStop) { 1018 if (stop_or_error == kStop) {
1013 EXPECT_CALL(*video_renderer_, Initialize(_, _, _, _, _, _, _, _, _)) 1019 EXPECT_CALL(*video_renderer_,
1020 Initialize(_, _, _, _, _, _, _, _, _, _))
1014 .WillOnce(DoAll(Stop(pipeline_, stop_cb), 1021 .WillOnce(DoAll(Stop(pipeline_, stop_cb),
1015 RunCallback<1>(PIPELINE_OK))); 1022 RunCallback<2>(PIPELINE_OK)));
1016 EXPECT_CALL(callbacks_, OnStop()); 1023 EXPECT_CALL(callbacks_, OnStop());
1017 } else { 1024 } else {
1018 status = PIPELINE_ERROR_INITIALIZATION_FAILED; 1025 status = PIPELINE_ERROR_INITIALIZATION_FAILED;
1019 EXPECT_CALL(*video_renderer_, Initialize(_, _, _, _, _, _, _, _, _)) 1026 EXPECT_CALL(*video_renderer_,
1020 .WillOnce(RunCallback<1>(status)); 1027 Initialize(_, _, _, _, _, _, _, _, _, _))
1028 .WillOnce(RunCallback<2>(status));
1021 } 1029 }
1022 1030
1023 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>()); 1031 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>());
1024 EXPECT_CALL(*audio_renderer_, Stop(_)).WillOnce(RunClosure<0>()); 1032 EXPECT_CALL(*audio_renderer_, Stop(_)).WillOnce(RunClosure<0>());
1025 EXPECT_CALL(*video_renderer_, Stop(_)).WillOnce(RunClosure<0>()); 1033 EXPECT_CALL(*video_renderer_, Stop(_)).WillOnce(RunClosure<0>());
1026 return status; 1034 return status;
1027 } 1035 }
1028 1036
1029 EXPECT_CALL(*video_renderer_, Initialize(_, _, _, _, _, _, _, _, _)) 1037 EXPECT_CALL(*video_renderer_,
1030 .WillOnce(RunCallback<1>(PIPELINE_OK)); 1038 Initialize(_, _, _, _, _, _, _, _, _, _))
1039 .WillOnce(RunCallback<2>(PIPELINE_OK));
1031 1040
1032 EXPECT_CALL(callbacks_, OnBufferingState(Pipeline::kHaveMetadata)); 1041 EXPECT_CALL(callbacks_, OnBufferingState(Pipeline::kHaveMetadata));
1033 1042
1034 // If we get here it's a successful initialization. 1043 // If we get here it's a successful initialization.
1035 EXPECT_CALL(*audio_renderer_, Preroll(base::TimeDelta(), _)) 1044 EXPECT_CALL(*audio_renderer_, Preroll(base::TimeDelta(), _))
1036 .WillOnce(RunCallback<1>(PIPELINE_OK)); 1045 .WillOnce(RunCallback<1>(PIPELINE_OK));
1037 EXPECT_CALL(*video_renderer_, Preroll(base::TimeDelta(), _)) 1046 EXPECT_CALL(*video_renderer_, Preroll(base::TimeDelta(), _))
1038 .WillOnce(RunCallback<1>(PIPELINE_OK)); 1047 .WillOnce(RunCallback<1>(PIPELINE_OK));
1039 1048
1040 EXPECT_CALL(*demuxer_, SetPlaybackRate(0.0f)); 1049 EXPECT_CALL(*demuxer_, SetPlaybackRate(0.0f));
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
1208 INSTANTIATE_TEARDOWN_TEST(Error, InitAudioRenderer); 1217 INSTANTIATE_TEARDOWN_TEST(Error, InitAudioRenderer);
1209 INSTANTIATE_TEARDOWN_TEST(Error, InitVideoRenderer); 1218 INSTANTIATE_TEARDOWN_TEST(Error, InitVideoRenderer);
1210 INSTANTIATE_TEARDOWN_TEST(Error, Pausing); 1219 INSTANTIATE_TEARDOWN_TEST(Error, Pausing);
1211 INSTANTIATE_TEARDOWN_TEST(Error, Flushing); 1220 INSTANTIATE_TEARDOWN_TEST(Error, Flushing);
1212 INSTANTIATE_TEARDOWN_TEST(Error, Seeking); 1221 INSTANTIATE_TEARDOWN_TEST(Error, Seeking);
1213 INSTANTIATE_TEARDOWN_TEST(Error, Prerolling); 1222 INSTANTIATE_TEARDOWN_TEST(Error, Prerolling);
1214 INSTANTIATE_TEARDOWN_TEST(Error, Starting); 1223 INSTANTIATE_TEARDOWN_TEST(Error, Starting);
1215 INSTANTIATE_TEARDOWN_TEST(Error, Playing); 1224 INSTANTIATE_TEARDOWN_TEST(Error, Playing);
1216 1225
1217 } // namespace media 1226 } // namespace media
OLDNEW
« no previous file with comments | « trunk/src/media/base/pipeline.cc ('k') | trunk/src/media/base/video_decoder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698