Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1211)

Unified Diff: content/renderer/media/webrtc_audio_device_unittest.cc

Issue 11880009: Introduce AudioHardwareConfig for renderer side audio device info. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Plumb. Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..e98db7f91050780fb50062259c4e379982923d1a 100644
--- a/content/renderer/media/webrtc_audio_device_unittest.cc
+++ b/content/renderer/media/webrtc_audio_device_unittest.cc
@@ -4,12 +4,13 @@
#include "base/environment.h"
#include "base/test/test_timeouts.h"
-#include "content/renderer/media/audio_hardware.h"
+#include "content/renderer/media/renderer_audio_hardware_config.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 "testing/gmock/include/gmock/gmock.h"
#include "third_party/webrtc/voice_engine/include/voe_audio_processing.h"
@@ -30,51 +31,31 @@ namespace {
const int kRenderViewId = 1;
-class AudioUtil : public AudioUtilInterface {
+class RealAudioHardwareConfig : public media::AudioHardwareConfig {
public:
- AudioUtil() {}
+ RealAudioHardwareConfig() {}
+ virtual ~RealAudioHardwareConfig() {}
- 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);
+ virtual int GetOutputBufferSize() OVERRIDE {
+ return media::GetAudioHardwareBufferSize();
}
- 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 GetOutputSampleRate() OVERRIDE {
+ return media::GetAudioHardwareSampleRate();
}
- virtual int GetAudioHardwareSampleRate() OVERRIDE {
- return output_rate_;
- }
- virtual int GetAudioInputHardwareSampleRate(
- const std::string& device_id) OVERRIDE {
- return input_rate_;
+ virtual int GetInputSampleRate() OVERRIDE {
+ return media::GetAudioInputHardwareSampleRate(
+ media::AudioManagerBase::kDefaultDeviceId);
}
- virtual media::ChannelLayout GetAudioInputHardwareChannelLayout(
- const std::string& device_id) OVERRIDE {
- return input_channel_layout_;
+
+ virtual media::ChannelLayout GetInputChannelLayout() OVERRIDE {
+ return media::GetAudioInputHardwareChannelLayout(
+ media::AudioManagerBase::kDefaultDeviceId);
}
private:
- int output_rate_;
- int input_rate_;
- media::ChannelLayout input_channel_layout_;
- DISALLOW_COPY_AND_ASSIGN(AudioUtilNoHardware);
+ DISALLOW_COPY_AND_ASSIGN(RealAudioHardwareConfig);
};
// Return true if at least one element in the array matches |value|.
@@ -95,8 +76,11 @@ bool HardwareSampleRatesAreValid() {
int valid_input_rates[] = {16000, 32000, 44100, 48000, 96000};
int valid_output_rates[] = {44100, 48000, 96000};
+ RendererAudioHardwareConfig* hardware_config =
miu 2013/01/29 04:55:43 Possible root cause of crash on Mac: If GetAudioHa
DaleCurtis 2013/01/30 01:31:06 Crash is in Chrome not tests, may be related to ht
+ 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 +89,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 +108,14 @@ bool InitializeCapturer(WebRtcAudioDeviceImpl* webrtc_audio_device) {
if (!capturer)
return false;
+ RendererAudioHardwareConfig* 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 +234,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);
+ RendererAudioHardwareConfig audio_config(
+ 480, 48000, 48000, media::CHANNEL_LAYOUT_MONO);
+ SetAudioHardwareConfig(&audio_config);
scoped_refptr<WebRtcAudioDeviceImpl> webrtc_audio_device(
new WebRtcAudioDeviceImpl());
@@ -279,8 +268,8 @@ TEST_F(WebRTCAudioDeviceTest, DISABLED_StartPlayout) {
return;
}
- AudioUtil audio_util;
- SetAudioUtilCallback(&audio_util);
+ RealAudioHardwareConfig audio_config;
+ SetAudioHardwareConfig(&audio_config);
if (!HardwareSampleRatesAreValid())
return;
@@ -357,8 +346,8 @@ TEST_F(WebRTCAudioDeviceTest, StartRecording) {
return;
}
- AudioUtil audio_util;
- SetAudioUtilCallback(&audio_util);
+ RealAudioHardwareConfig audio_config;
+ SetAudioHardwareConfig(&audio_config);
if (!HardwareSampleRatesAreValid())
return;
@@ -430,8 +419,8 @@ TEST_F(WebRTCAudioDeviceTest, DISABLED_PlayLocalFile) {
std::string file_path(
GetTestDataPath(FILE_PATH_LITERAL("speechmusic_mono_16kHz.pcm")));
- AudioUtil audio_util;
- SetAudioUtilCallback(&audio_util);
+ RealAudioHardwareConfig audio_config;
+ SetAudioHardwareConfig(&audio_config);
if (!HardwareSampleRatesAreValid())
return;
@@ -501,8 +490,8 @@ TEST_F(WebRTCAudioDeviceTest, FullDuplexAudioWithAGC) {
return;
}
- AudioUtil audio_util;
- SetAudioUtilCallback(&audio_util);
+ RealAudioHardwareConfig audio_config;
+ SetAudioHardwareConfig(&audio_config);
if (!HardwareSampleRatesAreValid())
return;

Powered by Google App Engine
This is Rietveld 408576698