| OLD | NEW |
| 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 "media/base/pipeline_impl.h" | 5 #include "media/base/pipeline_impl.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <memory> |
| 8 #include <utility> | 9 #include <utility> |
| 9 #include <vector> | 10 #include <vector> |
| 10 | 11 |
| 11 #include "base/bind.h" | 12 #include "base/bind.h" |
| 12 #include "base/macros.h" | 13 #include "base/macros.h" |
| 13 #include "base/message_loop/message_loop.h" | 14 #include "base/message_loop/message_loop.h" |
| 14 #include "base/stl_util.h" | 15 #include "base/stl_util.h" |
| 15 #include "base/test/simple_test_tick_clock.h" | 16 #include "base/test/simple_test_tick_clock.h" |
| 16 #include "base/threading/simple_thread.h" | 17 #include "base/threading/simple_thread.h" |
| 17 #include "base/time/clock.h" | 18 #include "base/time/clock.h" |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 EXPECT_CALL(*demuxer_, GetStream(stream->type())) | 159 EXPECT_CALL(*demuxer_, GetStream(stream->type())) |
| 159 .WillRepeatedly(Return(stream)); | 160 .WillRepeatedly(Return(stream)); |
| 160 } | 161 } |
| 161 } | 162 } |
| 162 | 163 |
| 163 void SetDemuxerExpectations(MockDemuxerStreamVector* streams) { | 164 void SetDemuxerExpectations(MockDemuxerStreamVector* streams) { |
| 164 // Initialize with a default non-zero duration. | 165 // Initialize with a default non-zero duration. |
| 165 SetDemuxerExpectations(streams, base::TimeDelta::FromSeconds(10)); | 166 SetDemuxerExpectations(streams, base::TimeDelta::FromSeconds(10)); |
| 166 } | 167 } |
| 167 | 168 |
| 168 scoped_ptr<StrictMock<MockDemuxerStream>> CreateStream( | 169 std::unique_ptr<StrictMock<MockDemuxerStream>> CreateStream( |
| 169 DemuxerStream::Type type) { | 170 DemuxerStream::Type type) { |
| 170 scoped_ptr<StrictMock<MockDemuxerStream>> stream( | 171 std::unique_ptr<StrictMock<MockDemuxerStream>> stream( |
| 171 new StrictMock<MockDemuxerStream>(type)); | 172 new StrictMock<MockDemuxerStream>(type)); |
| 172 return stream; | 173 return stream; |
| 173 } | 174 } |
| 174 | 175 |
| 175 // Sets up expectations to allow the video renderer to initialize. | 176 // Sets up expectations to allow the video renderer to initialize. |
| 176 void SetRendererExpectations() { | 177 void SetRendererExpectations() { |
| 177 EXPECT_CALL(*renderer_, Initialize(_, _, _, _, _, _, _)) | 178 EXPECT_CALL(*renderer_, Initialize(_, _, _, _, _, _, _)) |
| 178 .WillOnce(DoAll(SaveArg<2>(&statistics_cb_), | 179 .WillOnce(DoAll(SaveArg<2>(&statistics_cb_), |
| 179 SaveArg<3>(&buffering_state_cb_), | 180 SaveArg<3>(&buffering_state_cb_), |
| 180 SaveArg<4>(&ended_cb_), PostCallback<1>(PIPELINE_OK))); | 181 SaveArg<4>(&ended_cb_), PostCallback<1>(PIPELINE_OK))); |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 230 void CreateAudioStream() { | 231 void CreateAudioStream() { |
| 231 audio_stream_ = CreateStream(DemuxerStream::AUDIO); | 232 audio_stream_ = CreateStream(DemuxerStream::AUDIO); |
| 232 } | 233 } |
| 233 | 234 |
| 234 void CreateVideoStream() { | 235 void CreateVideoStream() { |
| 235 video_stream_ = CreateStream(DemuxerStream::VIDEO); | 236 video_stream_ = CreateStream(DemuxerStream::VIDEO); |
| 236 video_stream_->set_video_decoder_config(video_decoder_config_); | 237 video_stream_->set_video_decoder_config(video_decoder_config_); |
| 237 } | 238 } |
| 238 | 239 |
| 239 void CreateTextStream() { | 240 void CreateTextStream() { |
| 240 scoped_ptr<FakeTextTrackStream> text_stream(new FakeTextTrackStream()); | 241 std::unique_ptr<FakeTextTrackStream> text_stream(new FakeTextTrackStream()); |
| 241 EXPECT_CALL(*text_stream, OnRead()).Times(AnyNumber()); | 242 EXPECT_CALL(*text_stream, OnRead()).Times(AnyNumber()); |
| 242 text_stream_ = std::move(text_stream); | 243 text_stream_ = std::move(text_stream); |
| 243 } | 244 } |
| 244 | 245 |
| 245 MockDemuxerStream* audio_stream() { return audio_stream_.get(); } | 246 MockDemuxerStream* audio_stream() { return audio_stream_.get(); } |
| 246 | 247 |
| 247 MockDemuxerStream* video_stream() { return video_stream_.get(); } | 248 MockDemuxerStream* video_stream() { return video_stream_.get(); } |
| 248 | 249 |
| 249 FakeTextTrackStream* text_stream() { return text_stream_.get(); } | 250 FakeTextTrackStream* text_stream() { return text_stream_.get(); } |
| 250 | 251 |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 332 EXPECT_CALL(callbacks_, OnStop()) | 333 EXPECT_CALL(callbacks_, OnStop()) |
| 333 .WillOnce(Invoke(this, &PipelineImplTest::DestroyPipeline)); | 334 .WillOnce(Invoke(this, &PipelineImplTest::DestroyPipeline)); |
| 334 } | 335 } |
| 335 | 336 |
| 336 MOCK_METHOD2(OnAddTextTrack, | 337 MOCK_METHOD2(OnAddTextTrack, |
| 337 void(const TextTrackConfig&, const AddTextTrackDoneCB&)); | 338 void(const TextTrackConfig&, const AddTextTrackDoneCB&)); |
| 338 MOCK_METHOD0(OnWaitingForDecryptionKey, void(void)); | 339 MOCK_METHOD0(OnWaitingForDecryptionKey, void(void)); |
| 339 | 340 |
| 340 void DoOnAddTextTrack(const TextTrackConfig& config, | 341 void DoOnAddTextTrack(const TextTrackConfig& config, |
| 341 const AddTextTrackDoneCB& done_cb) { | 342 const AddTextTrackDoneCB& done_cb) { |
| 342 scoped_ptr<TextTrack> text_track(new MockTextTrack); | 343 std::unique_ptr<TextTrack> text_track(new MockTextTrack); |
| 343 done_cb.Run(std::move(text_track)); | 344 done_cb.Run(std::move(text_track)); |
| 344 } | 345 } |
| 345 | 346 |
| 346 void RunBufferedTimeRangesTest(const base::TimeDelta duration) { | 347 void RunBufferedTimeRangesTest(const base::TimeDelta duration) { |
| 347 EXPECT_EQ(0u, pipeline_->GetBufferedTimeRanges().size()); | 348 EXPECT_EQ(0u, pipeline_->GetBufferedTimeRanges().size()); |
| 348 EXPECT_FALSE(pipeline_->DidLoadingProgress()); | 349 EXPECT_FALSE(pipeline_->DidLoadingProgress()); |
| 349 Ranges<base::TimeDelta> ranges; | 350 Ranges<base::TimeDelta> ranges; |
| 350 ranges.Add(base::TimeDelta(), duration); | 351 ranges.Add(base::TimeDelta(), duration); |
| 351 pipeline_->OnBufferedTimeRangesChanged(ranges); | 352 pipeline_->OnBufferedTimeRangesChanged(ranges); |
| 352 EXPECT_TRUE(pipeline_->DidLoadingProgress()); | 353 EXPECT_TRUE(pipeline_->DidLoadingProgress()); |
| 353 EXPECT_FALSE(pipeline_->DidLoadingProgress()); | 354 EXPECT_FALSE(pipeline_->DidLoadingProgress()); |
| 354 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size()); | 355 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size()); |
| 355 EXPECT_EQ(base::TimeDelta(), pipeline_->GetBufferedTimeRanges().start(0)); | 356 EXPECT_EQ(base::TimeDelta(), pipeline_->GetBufferedTimeRanges().start(0)); |
| 356 EXPECT_EQ(duration, pipeline_->GetBufferedTimeRanges().end(0)); | 357 EXPECT_EQ(duration, pipeline_->GetBufferedTimeRanges().end(0)); |
| 357 } | 358 } |
| 358 | 359 |
| 359 // Fixture members. | 360 // Fixture members. |
| 360 StrictMock<CallbackHelper> callbacks_; | 361 StrictMock<CallbackHelper> callbacks_; |
| 361 base::SimpleTestTickClock test_tick_clock_; | 362 base::SimpleTestTickClock test_tick_clock_; |
| 362 base::MessageLoop message_loop_; | 363 base::MessageLoop message_loop_; |
| 363 scoped_ptr<PipelineImpl> pipeline_; | 364 std::unique_ptr<PipelineImpl> pipeline_; |
| 364 | 365 |
| 365 scoped_ptr<StrictMock<MockDemuxer>> demuxer_; | 366 std::unique_ptr<StrictMock<MockDemuxer>> demuxer_; |
| 366 scoped_ptr<StrictMock<MockRenderer>> scoped_renderer_; | 367 std::unique_ptr<StrictMock<MockRenderer>> scoped_renderer_; |
| 367 StrictMock<MockRenderer>* renderer_; | 368 StrictMock<MockRenderer>* renderer_; |
| 368 StrictMock<CallbackHelper> text_renderer_callbacks_; | 369 StrictMock<CallbackHelper> text_renderer_callbacks_; |
| 369 TextRenderer* text_renderer_; | 370 TextRenderer* text_renderer_; |
| 370 scoped_ptr<StrictMock<MockDemuxerStream>> audio_stream_; | 371 std::unique_ptr<StrictMock<MockDemuxerStream>> audio_stream_; |
| 371 scoped_ptr<StrictMock<MockDemuxerStream>> video_stream_; | 372 std::unique_ptr<StrictMock<MockDemuxerStream>> video_stream_; |
| 372 scoped_ptr<FakeTextTrackStream> text_stream_; | 373 std::unique_ptr<FakeTextTrackStream> text_stream_; |
| 373 BufferingStateCB buffering_state_cb_; | 374 BufferingStateCB buffering_state_cb_; |
| 374 base::Closure ended_cb_; | 375 base::Closure ended_cb_; |
| 375 StatisticsCB statistics_cb_; | 376 StatisticsCB statistics_cb_; |
| 376 VideoDecoderConfig video_decoder_config_; | 377 VideoDecoderConfig video_decoder_config_; |
| 377 PipelineMetadata metadata_; | 378 PipelineMetadata metadata_; |
| 378 base::TimeDelta start_time_; | 379 base::TimeDelta start_time_; |
| 379 | 380 |
| 380 private: | 381 private: |
| 381 DISALLOW_COPY_AND_ASSIGN(PipelineImplTest); | 382 DISALLOW_COPY_AND_ASSIGN(PipelineImplTest); |
| 382 }; | 383 }; |
| (...skipping 779 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1162 INSTANTIATE_TEARDOWN_TEST(Error, Seeking); | 1163 INSTANTIATE_TEARDOWN_TEST(Error, Seeking); |
| 1163 INSTANTIATE_TEARDOWN_TEST(Error, Playing); | 1164 INSTANTIATE_TEARDOWN_TEST(Error, Playing); |
| 1164 INSTANTIATE_TEARDOWN_TEST(Error, Suspending); | 1165 INSTANTIATE_TEARDOWN_TEST(Error, Suspending); |
| 1165 INSTANTIATE_TEARDOWN_TEST(Error, Suspended); | 1166 INSTANTIATE_TEARDOWN_TEST(Error, Suspended); |
| 1166 INSTANTIATE_TEARDOWN_TEST(Error, Resuming); | 1167 INSTANTIATE_TEARDOWN_TEST(Error, Resuming); |
| 1167 | 1168 |
| 1168 INSTANTIATE_TEARDOWN_TEST(ErrorAndStop, Playing); | 1169 INSTANTIATE_TEARDOWN_TEST(ErrorAndStop, Playing); |
| 1169 INSTANTIATE_TEARDOWN_TEST(ErrorAndStop, Suspended); | 1170 INSTANTIATE_TEARDOWN_TEST(ErrorAndStop, Suspended); |
| 1170 | 1171 |
| 1171 } // namespace media | 1172 } // namespace media |
| OLD | NEW |