| 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 <stdint.h> | 5 #include <stdint.h> |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 44 namespace { | 44 namespace { |
| 45 | 45 |
| 46 static const int kTestCloseDelayMs = 10; | 46 static const int kTestCloseDelayMs = 10; |
| 47 | 47 |
| 48 // Delay between callbacks to AudioSourceCallback::OnMoreData. | 48 // Delay between callbacks to AudioSourceCallback::OnMoreData. |
| 49 static const int kOnMoreDataCallbackDelayMs = 10; | 49 static const int kOnMoreDataCallbackDelayMs = 10; |
| 50 | 50 |
| 51 // Let start run long enough for many OnMoreData callbacks to occur. | 51 // Let start run long enough for many OnMoreData callbacks to occur. |
| 52 static const int kStartRunTimeMs = kOnMoreDataCallbackDelayMs * 10; | 52 static const int kStartRunTimeMs = kOnMoreDataCallbackDelayMs * 10; |
| 53 | 53 |
| 54 // Dummy function. |
| 55 std::unique_ptr<media::AudioDebugRecorder> RegisterDebugRecording( |
| 56 const media::AudioParameters& params) { |
| 57 return nullptr; |
| 58 } |
| 59 |
| 54 class MockAudioOutputStream : public AudioOutputStream { | 60 class MockAudioOutputStream : public AudioOutputStream { |
| 55 public: | 61 public: |
| 56 MockAudioOutputStream(AudioManagerBase* manager, | 62 MockAudioOutputStream(AudioManagerBase* manager, |
| 57 const AudioParameters& params) | 63 const AudioParameters& params) |
| 58 : start_called_(false), | 64 : start_called_(false), |
| 59 stop_called_(false), | 65 stop_called_(false), |
| 60 params_(params), | 66 params_(params), |
| 61 fake_output_stream_( | 67 fake_output_stream_( |
| 62 FakeAudioOutputStream::MakeFakeStream(manager, params_)) { | 68 FakeAudioOutputStream::MakeFakeStream(manager, params_)) { |
| 63 } | 69 } |
| (...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 492 void TearDown() override { AudioOutputProxyTest::TearDown(); } | 498 void TearDown() override { AudioOutputProxyTest::TearDown(); } |
| 493 | 499 |
| 494 void InitDispatcher(base::TimeDelta close_delay) override { | 500 void InitDispatcher(base::TimeDelta close_delay) override { |
| 495 // Use a low sample rate and large buffer size when testing otherwise the | 501 // Use a low sample rate and large buffer size when testing otherwise the |
| 496 // FakeAudioOutputStream will keep the message loop busy indefinitely; i.e., | 502 // FakeAudioOutputStream will keep the message loop busy indefinitely; i.e., |
| 497 // RunUntilIdle() will never terminate. | 503 // RunUntilIdle() will never terminate. |
| 498 resampler_params_ = AudioParameters( | 504 resampler_params_ = AudioParameters( |
| 499 AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO, | 505 AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO, |
| 500 16000, 16, 1024); | 506 16000, 16, 1024); |
| 501 resampler_ = base::MakeUnique<AudioOutputResampler>( | 507 resampler_ = base::MakeUnique<AudioOutputResampler>( |
| 502 &manager(), params_, resampler_params_, std::string(), close_delay); | 508 &manager(), params_, resampler_params_, std::string(), close_delay, |
| 509 base::BindRepeating(&RegisterDebugRecording)); |
| 503 } | 510 } |
| 504 | 511 |
| 505 void OnStart() override { | 512 void OnStart() override { |
| 506 // Let Start() run for a bit. | 513 // Let Start() run for a bit. |
| 507 base::RunLoop run_loop; | 514 base::RunLoop run_loop; |
| 508 message_loop_.task_runner()->PostDelayedTask( | 515 message_loop_.task_runner()->PostDelayedTask( |
| 509 FROM_HERE, run_loop.QuitClosure(), | 516 FROM_HERE, run_loop.QuitClosure(), |
| 510 base::TimeDelta::FromMilliseconds(kStartRunTimeMs)); | 517 base::TimeDelta::FromMilliseconds(kStartRunTimeMs)); |
| 511 run_loop.Run(); | 518 run_loop.Run(); |
| 512 } | 519 } |
| (...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 833 .WillOnce(Return(&real_stream)); | 840 .WillOnce(Return(&real_stream)); |
| 834 | 841 |
| 835 // Stream1 should be able to successfully open and start. | 842 // Stream1 should be able to successfully open and start. |
| 836 EXPECT_CALL(real_stream, Open()).WillOnce(Return(true)); | 843 EXPECT_CALL(real_stream, Open()).WillOnce(Return(true)); |
| 837 proxy = resampler_->CreateStreamProxy(); | 844 proxy = resampler_->CreateStreamProxy(); |
| 838 EXPECT_TRUE(proxy->Open()); | 845 EXPECT_TRUE(proxy->Open()); |
| 839 CloseAndWaitForCloseTimer(proxy, &real_stream); | 846 CloseAndWaitForCloseTimer(proxy, &real_stream); |
| 840 } | 847 } |
| 841 | 848 |
| 842 } // namespace media | 849 } // namespace media |
| OLD | NEW |