| Index: content/renderer/media/webrtc_audio_device_unittest.cc
|
| diff --git a/content/renderer/media/webrtc_audio_device_unittest.cc b/content/renderer/media/webrtc_audio_device_unittest.cc
|
| index 30157b0c0b7235644b10b9e3a46bb5c648e2b0fc..e988aa281e1c02773b777112852e3c1bb73a32e9 100644
|
| --- a/content/renderer/media/webrtc_audio_device_unittest.cc
|
| +++ b/content/renderer/media/webrtc_audio_device_unittest.cc
|
| @@ -4,13 +4,14 @@
|
|
|
| #include "base/environment.h"
|
| #include "base/test/test_timeouts.h"
|
| -#include "content/renderer/media/audio_hardware.h"
|
| #include "content/renderer/media/webrtc_audio_capturer.h"
|
| #include "content/renderer/media/webrtc_audio_device_impl.h"
|
| #include "content/renderer/media/webrtc_audio_renderer.h"
|
| +#include "content/renderer/render_thread_impl.h"
|
| #include "content/test/webrtc_audio_device_test.h"
|
| -#include "media/audio/audio_manager.h"
|
| +#include "media/audio/audio_manager_base.h"
|
| #include "media/audio/audio_util.h"
|
| +#include "media/base/audio_hardware_config.h"
|
| #include "testing/gmock/include/gmock/gmock.h"
|
| #include "third_party/webrtc/voice_engine/include/voe_audio_processing.h"
|
| #include "third_party/webrtc/voice_engine/include/voe_base.h"
|
| @@ -30,52 +31,14 @@ namespace {
|
|
|
| const int kRenderViewId = 1;
|
|
|
| -class AudioUtil : public AudioUtilInterface {
|
| - public:
|
| - AudioUtil() {}
|
| -
|
| - virtual int GetAudioHardwareSampleRate() OVERRIDE {
|
| - return media::GetAudioHardwareSampleRate();
|
| - }
|
| - virtual int GetAudioInputHardwareSampleRate(
|
| - const std::string& device_id) OVERRIDE {
|
| - return media::GetAudioInputHardwareSampleRate(device_id);
|
| - }
|
| - virtual media::ChannelLayout GetAudioInputHardwareChannelLayout(
|
| - const std::string& device_id) OVERRIDE {
|
| - return media::GetAudioInputHardwareChannelLayout(device_id);
|
| - }
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(AudioUtil);
|
| -};
|
| -
|
| -class AudioUtilNoHardware : public AudioUtilInterface {
|
| - public:
|
| - AudioUtilNoHardware(int output_rate, int input_rate,
|
| - media::ChannelLayout input_channel_layout)
|
| - : output_rate_(output_rate),
|
| - input_rate_(input_rate),
|
| - input_channel_layout_(input_channel_layout) {
|
| - }
|
| -
|
| - virtual int GetAudioHardwareSampleRate() OVERRIDE {
|
| - return output_rate_;
|
| - }
|
| - virtual int GetAudioInputHardwareSampleRate(
|
| - const std::string& device_id) OVERRIDE {
|
| - return input_rate_;
|
| - }
|
| - virtual media::ChannelLayout GetAudioInputHardwareChannelLayout(
|
| - const std::string& device_id) OVERRIDE {
|
| - return input_channel_layout_;
|
| - }
|
| -
|
| - private:
|
| - int output_rate_;
|
| - int input_rate_;
|
| - media::ChannelLayout input_channel_layout_;
|
| - DISALLOW_COPY_AND_ASSIGN(AudioUtilNoHardware);
|
| -};
|
| +scoped_ptr<media::AudioHardwareConfig> CreateRealHardwareConfig() {
|
| + return make_scoped_ptr(new media::AudioHardwareConfig(
|
| + media::GetAudioHardwareBufferSize(), media::GetAudioHardwareSampleRate(),
|
| + media::GetAudioInputHardwareSampleRate(
|
| + media::AudioManagerBase::kDefaultDeviceId),
|
| + media::GetAudioInputHardwareChannelLayout(
|
| + media::AudioManagerBase::kDefaultDeviceId)));
|
| +}
|
|
|
| // Return true if at least one element in the array matches |value|.
|
| bool FindElementInArray(int* array, int size, int value) {
|
| @@ -95,8 +58,11 @@ bool HardwareSampleRatesAreValid() {
|
| int valid_input_rates[] = {16000, 32000, 44100, 48000, 96000};
|
| int valid_output_rates[] = {44100, 48000, 96000};
|
|
|
| + media::AudioHardwareConfig* hardware_config =
|
| + RenderThreadImpl::current()->GetAudioHardwareConfig();
|
| +
|
| // Verify the input sample rate.
|
| - int input_sample_rate = GetAudioInputSampleRate();
|
| + int input_sample_rate = hardware_config->GetInputSampleRate();
|
|
|
| if (!FindElementInArray(valid_input_rates, arraysize(valid_input_rates),
|
| input_sample_rate)) {
|
| @@ -105,7 +71,7 @@ bool HardwareSampleRatesAreValid() {
|
| }
|
|
|
| // Given that the input rate was OK, verify the output rate as well.
|
| - int output_sample_rate = GetAudioOutputSampleRate();
|
| + int output_sample_rate = hardware_config->GetOutputSampleRate();
|
| if (!FindElementInArray(valid_output_rates, arraysize(valid_output_rates),
|
| output_sample_rate)) {
|
| LOG(WARNING) << "Non-supported output sample rate detected.";
|
| @@ -124,10 +90,14 @@ bool InitializeCapturer(WebRtcAudioDeviceImpl* webrtc_audio_device) {
|
| if (!capturer)
|
| return false;
|
|
|
| + media::AudioHardwareConfig* hardware_config =
|
| + RenderThreadImpl::current()->GetAudioHardwareConfig();
|
| +
|
| // Use native capture sample rate and channel configuration to get some
|
| // action in this test.
|
| - int sample_rate = GetAudioInputSampleRate();
|
| - media::ChannelLayout channel_layout = GetAudioInputChannelLayout();
|
| + int sample_rate = hardware_config->GetInputSampleRate();
|
| + media::ChannelLayout channel_layout =
|
| + hardware_config->GetInputChannelLayout();
|
| if (!capturer->Initialize(channel_layout, sample_rate))
|
| return false;
|
|
|
| @@ -246,8 +216,9 @@ TEST_F(WebRTCAudioDeviceTest, TestValidOutputRates) {
|
| // Basic test that instantiates and initializes an instance of
|
| // WebRtcAudioDeviceImpl.
|
| TEST_F(WebRTCAudioDeviceTest, Construct) {
|
| - AudioUtilNoHardware audio_util(48000, 48000, media::CHANNEL_LAYOUT_MONO);
|
| - SetAudioUtilCallback(&audio_util);
|
| + media::AudioHardwareConfig audio_config(
|
| + 480, 48000, 48000, media::CHANNEL_LAYOUT_MONO);
|
| + SetAudioHardwareConfig(&audio_config);
|
|
|
| scoped_refptr<WebRtcAudioDeviceImpl> webrtc_audio_device(
|
| new WebRtcAudioDeviceImpl());
|
| @@ -279,8 +250,8 @@ TEST_F(WebRTCAudioDeviceTest, DISABLED_StartPlayout) {
|
| return;
|
| }
|
|
|
| - AudioUtil audio_util;
|
| - SetAudioUtilCallback(&audio_util);
|
| + scoped_ptr<media::AudioHardwareConfig> config = CreateRealHardwareConfig();
|
| + SetAudioHardwareConfig(config.get());
|
|
|
| if (!HardwareSampleRatesAreValid())
|
| return;
|
| @@ -357,8 +328,8 @@ TEST_F(WebRTCAudioDeviceTest, StartRecording) {
|
| return;
|
| }
|
|
|
| - AudioUtil audio_util;
|
| - SetAudioUtilCallback(&audio_util);
|
| + scoped_ptr<media::AudioHardwareConfig> config = CreateRealHardwareConfig();
|
| + SetAudioHardwareConfig(config.get());
|
|
|
| if (!HardwareSampleRatesAreValid())
|
| return;
|
| @@ -430,8 +401,8 @@ TEST_F(WebRTCAudioDeviceTest, DISABLED_PlayLocalFile) {
|
| std::string file_path(
|
| GetTestDataPath(FILE_PATH_LITERAL("speechmusic_mono_16kHz.pcm")));
|
|
|
| - AudioUtil audio_util;
|
| - SetAudioUtilCallback(&audio_util);
|
| + scoped_ptr<media::AudioHardwareConfig> config = CreateRealHardwareConfig();
|
| + SetAudioHardwareConfig(config.get());
|
|
|
| if (!HardwareSampleRatesAreValid())
|
| return;
|
| @@ -501,8 +472,8 @@ TEST_F(WebRTCAudioDeviceTest, FullDuplexAudioWithAGC) {
|
| return;
|
| }
|
|
|
| - AudioUtil audio_util;
|
| - SetAudioUtilCallback(&audio_util);
|
| + scoped_ptr<media::AudioHardwareConfig> config = CreateRealHardwareConfig();
|
| + SetAudioHardwareConfig(config.get());
|
|
|
| if (!HardwareSampleRatesAreValid())
|
| return;
|
|
|