| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 <string> | 5 #include <string> |
| 6 | 6 |
| 7 #include "base/callback.h" | 7 #include "base/callback.h" |
| 8 #include "base/stl_util-inl.h" | 8 #include "base/stl_util-inl.h" |
| 9 #include "base/threading/simple_thread.h" | 9 #include "base/threading/simple_thread.h" |
| 10 #include "media/base/pipeline_impl.h" | 10 #include "media/base/pipeline_impl.h" |
| (...skipping 16 matching lines...) Expand all Loading... |
| 27 | 27 |
| 28 namespace media { | 28 namespace media { |
| 29 | 29 |
| 30 // Total bytes of the data source. | 30 // Total bytes of the data source. |
| 31 static const int kTotalBytes = 1024; | 31 static const int kTotalBytes = 1024; |
| 32 | 32 |
| 33 // Buffered bytes of the data source. | 33 // Buffered bytes of the data source. |
| 34 static const int kBufferedBytes = 1024; | 34 static const int kBufferedBytes = 1024; |
| 35 | 35 |
| 36 // Test url for raw video pipeline. | 36 // Test url for raw video pipeline. |
| 37 static const std::string kUrlMedia = "media://raw_video_stream"; | 37 static const char kUrlRawVideo[] = "://raw_video_stream"; |
| 38 | 38 |
| 39 // Used for setting expectations on pipeline callbacks. Using a StrictMock | 39 // Used for setting expectations on pipeline callbacks. Using a StrictMock |
| 40 // also lets us test for missing callbacks. | 40 // also lets us test for missing callbacks. |
| 41 class CallbackHelper { | 41 class CallbackHelper { |
| 42 public: | 42 public: |
| 43 CallbackHelper() {} | 43 CallbackHelper() {} |
| 44 virtual ~CallbackHelper() {} | 44 virtual ~CallbackHelper() {} |
| 45 | 45 |
| 46 MOCK_METHOD1(OnStart, void(PipelineStatus)); | 46 MOCK_METHOD1(OnStart, void(PipelineStatus)); |
| 47 MOCK_METHOD1(OnSeek, void(PipelineStatus)); | 47 MOCK_METHOD1(OnSeek, void(PipelineStatus)); |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 199 InitializePipeline(build_status, start_status, ""); | 199 InitializePipeline(build_status, start_status, ""); |
| 200 } | 200 } |
| 201 | 201 |
| 202 void InitializePipeline(PipelineStatus build_status, | 202 void InitializePipeline(PipelineStatus build_status, |
| 203 PipelineStatus start_status, | 203 PipelineStatus start_status, |
| 204 const std::string& url) { | 204 const std::string& url) { |
| 205 // Expect an initialization callback. | 205 // Expect an initialization callback. |
| 206 EXPECT_CALL(callbacks_, OnStart(start_status)); | 206 EXPECT_CALL(callbacks_, OnStart(start_status)); |
| 207 | 207 |
| 208 bool run_build = true; | 208 bool run_build = true; |
| 209 if (url.compare(kUrlMedia) == 0) | 209 if (url.find(kRawMediaScheme) == 0) |
| 210 run_build = false; | 210 run_build = false; |
| 211 | 211 |
| 212 pipeline_->Start(mocks_->filter_collection(true, | 212 pipeline_->Start(mocks_->filter_collection(true, |
| 213 true, | 213 true, |
| 214 run_build, | 214 run_build, |
| 215 build_status), | 215 build_status), |
| 216 url, | 216 url, |
| 217 NewCallback(reinterpret_cast<CallbackHelper*>(&callbacks_), | 217 NewCallback(reinterpret_cast<CallbackHelper*>(&callbacks_), |
| 218 &CallbackHelper::OnStart)); | 218 &CallbackHelper::OnStart)); |
| 219 | 219 |
| 220 message_loop_.RunAllPending(); | 220 message_loop_.RunAllPending(); |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 423 InitializePipeline(PIPELINE_OK); | 423 InitializePipeline(PIPELINE_OK); |
| 424 EXPECT_TRUE(pipeline_->IsInitialized()); | 424 EXPECT_TRUE(pipeline_->IsInitialized()); |
| 425 EXPECT_FALSE(pipeline_->HasAudio()); | 425 EXPECT_FALSE(pipeline_->HasAudio()); |
| 426 EXPECT_TRUE(pipeline_->HasVideo()); | 426 EXPECT_TRUE(pipeline_->HasVideo()); |
| 427 } | 427 } |
| 428 | 428 |
| 429 TEST_F(PipelineImplTest, RawVideoStream) { | 429 TEST_F(PipelineImplTest, RawVideoStream) { |
| 430 InitializeVideoDecoder(NULL); | 430 InitializeVideoDecoder(NULL); |
| 431 InitializeVideoRenderer(); | 431 InitializeVideoRenderer(); |
| 432 | 432 |
| 433 InitializePipeline(PIPELINE_OK, PIPELINE_OK, kUrlMedia); | 433 InitializePipeline(PIPELINE_OK, PIPELINE_OK, |
| 434 std::string(kRawMediaScheme).append(kUrlRawVideo)); |
| 434 EXPECT_TRUE(pipeline_->IsInitialized()); | 435 EXPECT_TRUE(pipeline_->IsInitialized()); |
| 435 EXPECT_FALSE(pipeline_->HasAudio()); | 436 EXPECT_FALSE(pipeline_->HasAudio()); |
| 436 EXPECT_TRUE(pipeline_->HasVideo()); | 437 EXPECT_TRUE(pipeline_->HasVideo()); |
| 437 } | 438 } |
| 438 | 439 |
| 439 TEST_F(PipelineImplTest, AudioVideoStream) { | 440 TEST_F(PipelineImplTest, AudioVideoStream) { |
| 440 CreateAudioStream(); | 441 CreateAudioStream(); |
| 441 CreateVideoStream(); | 442 CreateVideoStream(); |
| 442 MockDemuxerStreamVector streams; | 443 MockDemuxerStreamVector streams; |
| 443 streams.push_back(audio_stream()); | 444 streams.push_back(audio_stream()); |
| (...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 892 TestPipelineStatusNotification(0); | 893 TestPipelineStatusNotification(0); |
| 893 } | 894 } |
| 894 | 895 |
| 895 // Test that different-thread, some-delay callback (the expected common case) | 896 // Test that different-thread, some-delay callback (the expected common case) |
| 896 // works correctly. | 897 // works correctly. |
| 897 TEST(PipelineStatusNotificationTest, DelayedCallback) { | 898 TEST(PipelineStatusNotificationTest, DelayedCallback) { |
| 898 TestPipelineStatusNotification(20); | 899 TestPipelineStatusNotification(20); |
| 899 } | 900 } |
| 900 | 901 |
| 901 } // namespace media | 902 } // namespace media |
| OLD | NEW |