| Index: media/audio/pulse/audio_manager_pulse.cc
|
| diff --git a/media/audio/pulse/audio_manager_pulse.cc b/media/audio/pulse/audio_manager_pulse.cc
|
| index f448fcea59d22d041f75af5d87d56d4a9598cb37..f95308de7e278ff18a2872e1ca8950ab10e92cca 100644
|
| --- a/media/audio/pulse/audio_manager_pulse.cc
|
| +++ b/media/audio/pulse/audio_manager_pulse.cc
|
| @@ -11,12 +11,13 @@
|
| #include "base/nix/xdg_util.h"
|
| #include "base/process_util.h"
|
| #include "base/stl_util.h"
|
| -#include "media/audio/audio_util.h"
|
| +#include "media/audio/audio_parameters.h"
|
| #include "media/audio/linux/audio_manager_linux.h"
|
| #include "media/audio/pulse/pulse_input.h"
|
| #include "media/audio/pulse/pulse_output.h"
|
| #include "media/audio/pulse/pulse_stubs.h"
|
| #include "media/audio/pulse/pulse_util.h"
|
| +#include "media/base/channel_layout.h"
|
|
|
| using media_audio_pulse::kModulePulse;
|
| using media_audio_pulse::InitializeStubs;
|
| @@ -90,6 +91,35 @@ void AudioManagerPulse::GetAudioInputDeviceNames(
|
| }
|
| }
|
|
|
| +AudioParameters AudioManagerPulse::GetDefaultOutputStreamParameters(
|
| + const AudioParameters& input_params) {
|
| + static const int kDefaultOutputBufferSize = 512;
|
| +
|
| + ChannelLayout channel_layout = CHANNEL_LAYOUT_STEREO;
|
| + int buffer_size = kDefaultOutputBufferSize;
|
| + int bits_per_sample = 16;
|
| + int input_channels = 0;
|
| + if (input_params.IsValid()) {
|
| + bits_per_sample = input_params.bits_per_sample();
|
| + channel_layout = input_params.channel_layout();
|
| + input_channels = input_params.input_channels();
|
| + buffer_size = std::min(buffer_size, input_params.frames_per_buffer());
|
| + }
|
| + return AudioParameters(
|
| + AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout, input_channels,
|
| + GetNativeSampleRate(), bits_per_sample, buffer_size);
|
| +}
|
| +
|
| +AudioParameters AudioManagerPulse::GetInputStreamParameters(
|
| + const std::string& device_id) {
|
| + static const int kDefaultInputBufferSize = 1024;
|
| +
|
| + // TODO(xians): add support for querying native channel layout for pulse.
|
| + return AudioParameters(
|
| + AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO,
|
| + GetNativeSampleRate(), 16, kDefaultInputBufferSize);
|
| +}
|
| +
|
| AudioOutputStream* AudioManagerPulse::MakeLinearOutputStream(
|
| const AudioParameters& params) {
|
| DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format());
|
| @@ -125,20 +155,6 @@ AudioInputStream* AudioManagerPulse::MakeInputStream(
|
| input_mainloop_, input_context_);
|
| }
|
|
|
| -AudioParameters AudioManagerPulse::GetPreferredLowLatencyOutputStreamParameters(
|
| - const AudioParameters& input_params) {
|
| - // TODO(xians): figure out the optimized buffer size for the Pulse IO.
|
| - int buffer_size = GetAudioHardwareBufferSize();
|
| - if (input_params.frames_per_buffer() < buffer_size)
|
| - buffer_size = input_params.frames_per_buffer();
|
| -
|
| - // TODO(dalecurtis): This should include bits per channel and channel layout
|
| - // eventually.
|
| - return AudioParameters(
|
| - AudioParameters::AUDIO_PCM_LOW_LATENCY, input_params.channel_layout(),
|
| - input_params.sample_rate(), 16, buffer_size);
|
| -}
|
| -
|
| int AudioManagerPulse::GetNativeSampleRate() {
|
| DCHECK(input_mainloop_);
|
| DCHECK(input_context_);
|
|
|