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 // MSVC++ requires this to be set before any other includes to get M_PI. | 5 // MSVC++ requires this to be set before any other includes to get M_PI. |
6 #define _USE_MATH_DEFINES | 6 #define _USE_MATH_DEFINES |
7 | 7 |
8 #include "media/base/audio_renderer_mixer.h" | 8 #include "media/base/audio_renderer_mixer.h" |
9 | 9 |
10 #include <stddef.h> | 10 #include <stddef.h> |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
67 | 67 |
68 // Create output parameters based on test parameters. | 68 // Create output parameters based on test parameters. |
69 output_parameters_ = AudioParameters( | 69 output_parameters_ = AudioParameters( |
70 AudioParameters::AUDIO_PCM_LOW_LATENCY, kChannelLayout, | 70 AudioParameters::AUDIO_PCM_LOW_LATENCY, kChannelLayout, |
71 std::tr1::get<2>(GetParam()), 16, kLowLatencyBufferSize); | 71 std::tr1::get<2>(GetParam()), 16, kLowLatencyBufferSize); |
72 | 72 |
73 sink_ = new MockAudioRendererSink(); | 73 sink_ = new MockAudioRendererSink(); |
74 EXPECT_CALL(*sink_.get(), Start()); | 74 EXPECT_CALL(*sink_.get(), Start()); |
75 EXPECT_CALL(*sink_.get(), Stop()); | 75 EXPECT_CALL(*sink_.get(), Stop()); |
76 | 76 |
77 mixer_.reset(new AudioRendererMixer(output_parameters_, sink_)); | 77 mixer_.reset( |
| 78 new AudioRendererMixer(output_parameters_, sink_, std::string())); |
78 mixer_callback_ = sink_->callback(); | 79 mixer_callback_ = sink_->callback(); |
79 | 80 |
80 audio_bus_ = AudioBus::Create(output_parameters_); | 81 audio_bus_ = AudioBus::Create(output_parameters_); |
81 expected_audio_bus_ = AudioBus::Create(output_parameters_); | 82 expected_audio_bus_ = AudioBus::Create(output_parameters_); |
82 | 83 |
83 // Allocate one callback for generating expected results. | 84 // Allocate one callback for generating expected results. |
84 double step = kSineCycles / static_cast<double>( | 85 double step = kSineCycles / static_cast<double>( |
85 output_parameters_.frames_per_buffer()); | 86 output_parameters_.frames_per_buffer()); |
86 expected_callback_.reset(new FakeAudioRenderCallback(step)); | 87 expected_callback_.reset(new FakeAudioRenderCallback(step)); |
87 } | 88 } |
88 | 89 |
89 AudioRendererMixer* GetMixer(int owner_id, | 90 AudioRendererMixer* GetMixer(int owner_id, |
90 const AudioParameters& params, | 91 const AudioParameters& params, |
| 92 AudioLatency::LatencyType latency, |
91 const std::string& device_id, | 93 const std::string& device_id, |
92 const url::Origin& security_origin, | 94 const url::Origin& security_origin, |
93 OutputDeviceStatus* device_status) final { | 95 OutputDeviceStatus* device_status) final { |
94 return mixer_.get(); | 96 return mixer_.get(); |
95 }; | 97 }; |
96 | 98 |
97 MOCK_METHOD4(ReturnMixer, | 99 MOCK_METHOD1(ReturnMixer, void(const AudioRendererMixer*)); |
98 void(int, | |
99 const AudioParameters&, | |
100 const std::string&, | |
101 const url::Origin&)); | |
102 | 100 |
103 MOCK_METHOD4( | 101 MOCK_METHOD4( |
104 GetOutputDeviceInfo, | 102 GetOutputDeviceInfo, |
105 OutputDeviceInfo(int, int, const std::string&, const url::Origin&)); | 103 OutputDeviceInfo(int, int, const std::string&, const url::Origin&)); |
106 | 104 |
107 void InitializeInputs(int inputs_per_sample_rate) { | 105 void InitializeInputs(int inputs_per_sample_rate) { |
108 mixer_inputs_.reserve(inputs_per_sample_rate * input_parameters_.size()); | 106 mixer_inputs_.reserve(inputs_per_sample_rate * input_parameters_.size()); |
109 fake_callbacks_.reserve(inputs_per_sample_rate * input_parameters_.size()); | 107 fake_callbacks_.reserve(inputs_per_sample_rate * input_parameters_.size()); |
110 | 108 |
111 for (size_t i = 0, input = 0; i < input_parameters_.size(); ++i) { | 109 for (size_t i = 0, input = 0; i < input_parameters_.size(); ++i) { |
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
326 std::max(1.f, static_cast<float>(floor(mixer_inputs_.size() / 2.f))))); | 324 std::max(1.f, static_cast<float>(floor(mixer_inputs_.size() / 2.f))))); |
327 | 325 |
328 for (size_t i = 1; i < mixer_inputs_.size(); i += 2) | 326 for (size_t i = 1; i < mixer_inputs_.size(); i += 2) |
329 mixer_inputs_[i]->Stop(); | 327 mixer_inputs_[i]->Stop(); |
330 } | 328 } |
331 | 329 |
332 scoped_refptr<AudioRendererMixerInput> CreateMixerInput() { | 330 scoped_refptr<AudioRendererMixerInput> CreateMixerInput() { |
333 return new AudioRendererMixerInput( | 331 return new AudioRendererMixerInput( |
334 this, | 332 this, |
335 // Zero frame id, default device ID and security origin. | 333 // Zero frame id, default device ID and security origin. |
336 0, std::string(), url::Origin()); | 334 0, std::string(), url::Origin(), AudioLatency::LATENCY_PLAYBACK); |
337 } | 335 } |
338 | 336 |
339 protected: | 337 protected: |
340 virtual ~AudioRendererMixerTest() {} | 338 virtual ~AudioRendererMixerTest() {} |
341 | 339 |
342 scoped_refptr<MockAudioRendererSink> sink_; | 340 scoped_refptr<MockAudioRendererSink> sink_; |
343 std::unique_ptr<AudioRendererMixer> mixer_; | 341 std::unique_ptr<AudioRendererMixer> mixer_; |
344 AudioRendererSink::RenderCallback* mixer_callback_; | 342 AudioRendererSink::RenderCallback* mixer_callback_; |
345 std::vector<AudioParameters> input_parameters_; | 343 std::vector<AudioParameters> input_parameters_; |
346 AudioParameters output_parameters_; | 344 AudioParameters output_parameters_; |
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
547 INSTANTIATE_TEST_CASE_P( | 545 INSTANTIATE_TEST_CASE_P( |
548 AudioRendererMixerBehavioralTest, | 546 AudioRendererMixerBehavioralTest, |
549 AudioRendererMixerBehavioralTest, | 547 AudioRendererMixerBehavioralTest, |
550 testing::ValuesIn(std::vector<AudioRendererMixerTestData>( | 548 testing::ValuesIn(std::vector<AudioRendererMixerTestData>( |
551 1, | 549 1, |
552 std::tr1::make_tuple(&kTestInputLower, | 550 std::tr1::make_tuple(&kTestInputLower, |
553 1, | 551 1, |
554 kTestInputLower, | 552 kTestInputLower, |
555 0.00000048)))); | 553 0.00000048)))); |
556 } // namespace media | 554 } // namespace media |
OLD | NEW |