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

Unified Diff: media/audio/mac/audio_manager_mac.cc

Issue 12316131: Moved AudioUtil static functions to AudioManager interfaces (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 10 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: media/audio/mac/audio_manager_mac.cc
diff --git a/media/audio/mac/audio_manager_mac.cc b/media/audio/mac/audio_manager_mac.cc
index 4030a23a60bcdbc0d5585f405e44efed055428d0..a329278564abe42c7bd05ffcff5d3cbe1957c428 100644
--- a/media/audio/mac/audio_manager_mac.cc
+++ b/media/audio/mac/audio_manager_mac.cc
@@ -12,7 +12,7 @@
#include "base/mac/mac_logging.h"
#include "base/mac/scoped_cftyperef.h"
#include "base/sys_string_conversions.h"
-#include "media/audio/audio_util.h"
+#include "media/audio/audio_parameters.h"
#include "media/audio/mac/audio_input_mac.h"
#include "media/audio/mac/audio_low_latency_input_mac.h"
#include "media/audio/mac/audio_low_latency_output_mac.h"
@@ -20,6 +20,7 @@
#include "media/audio/mac/audio_synchronized_mac.h"
#include "media/audio/mac/audio_unified_mac.h"
#include "media/base/bind_to_loop.h"
+#include "media/base/channel_layout.h"
#include "media/base/limits.h"
#include "media/base/media_switches.h"
@@ -28,6 +29,9 @@ namespace media {
// Maximum number of output streams that can be open simultaneously.
static const int kMaxOutputStreams = 50;
+// Default buffer size in samples for low-latency input and output streams.
+static const int kDefaultLowLatencyBufferSize = 128;
+
static bool HasAudioHardware(AudioObjectPropertySelector selector) {
AudioDeviceID output_device_id = kAudioObjectUnknown;
const AudioObjectPropertyAddress property_address = {
@@ -273,6 +277,22 @@ void AudioManagerMac::GetAudioInputDeviceNames(
}
}
+AudioParameters AudioManagerMac::GetDefaultOutputStreamParameters() {
+ return AudioParameters(
+ AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO,
+ AUAudioOutputStream::HardwareSampleRate(), 16,
+ kDefaultLowLatencyBufferSize);
+}
+
+AudioParameters AudioManagerMac::GetDefaultInputStreamParameters(
+ const std::string& device_id) {
+ // TODO(xians): query the native channel layout for the specific device.
+ return AudioParameters(
+ AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO,
+ AUAudioInputStream::HardwareSampleRate(), 16,
+ kDefaultLowLatencyBufferSize);
+}
+
AudioOutputStream* AudioManagerMac::MakeLinearOutputStream(
const AudioParameters& params) {
DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format());
@@ -329,10 +349,11 @@ AudioParameters AudioManagerMac::GetPreferredLowLatencyOutputStreamParameters(
// back-ends used with kEnableWebAudioInput, we hard-code to stereo.
// Specifically, this is a limitation of AudioSynchronizedStream which
// can be removed as part of the work to consolidate these back-ends.
+ AudioParameters default_params = GetDefaultOutputStreamParameters();
return AudioParameters(
AudioParameters::AUDIO_PCM_LOW_LATENCY,
CHANNEL_LAYOUT_STEREO, input_params.input_channels(),
- GetAudioHardwareSampleRate(), 16, GetAudioHardwareBufferSize());
+ default_params.sample_rate(), 16, default_params.frames_per_buffer());
}
return AudioManagerBase::GetPreferredLowLatencyOutputStreamParameters(

Powered by Google App Engine
This is Rietveld 408576698