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

Side by Side Diff: media/audio/cras/audio_manager_cras.cc

Issue 12316131: Moved AudioUtil static functions to AudioManager interfaces (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: merged GetPreferredLowLatencyOutputStreamParameters to GetDefaultOutputStreamParameters Created 7 years, 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #include "media/audio/cras/audio_manager_cras.h" 5 #include "media/audio/cras/audio_manager_cras.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/environment.h" 8 #include "base/environment.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/nix/xdg_util.h" 10 #include "base/nix/xdg_util.h"
11 #include "base/process_util.h" 11 #include "base/process_util.h"
12 #include "base/stl_util.h" 12 #include "base/stl_util.h"
13 #include "media/audio/audio_util.h"
14 #include "media/audio/cras/cras_input.h" 13 #include "media/audio/cras/cras_input.h"
15 #include "media/audio/cras/cras_output.h" 14 #include "media/audio/cras/cras_output.h"
15 #include "media/base/channel_layout.h"
16 16
17 namespace media { 17 namespace media {
18 18
19 // Maximum number of output streams that can be open simultaneously. 19 // Maximum number of output streams that can be open simultaneously.
20 static const int kMaxOutputStreams = 50; 20 static const int kMaxOutputStreams = 50;
21 21
22 // Default sample rate for input and output streams.
23 static const int kDefaultSampleRate = 48000;
24
22 static const char kCrasAutomaticDeviceName[] = "Automatic"; 25 static const char kCrasAutomaticDeviceName[] = "Automatic";
23 static const char kCrasAutomaticDeviceId[] = "automatic"; 26 static const char kCrasAutomaticDeviceId[] = "automatic";
24 27
25 bool AudioManagerCras::HasAudioOutputDevices() { 28 bool AudioManagerCras::HasAudioOutputDevices() {
26 return true; 29 return true;
27 } 30 }
28 31
29 bool AudioManagerCras::HasAudioInputDevices() { 32 bool AudioManagerCras::HasAudioInputDevices() {
30 return true; 33 return true;
31 } 34 }
(...skipping 10 matching lines...) Expand all
42 NOTIMPLEMENTED(); 45 NOTIMPLEMENTED();
43 } 46 }
44 47
45 void AudioManagerCras::GetAudioInputDeviceNames( 48 void AudioManagerCras::GetAudioInputDeviceNames(
46 media::AudioDeviceNames* device_names) { 49 media::AudioDeviceNames* device_names) {
47 DCHECK(device_names->empty()); 50 DCHECK(device_names->empty());
48 GetCrasAudioInputDevices(device_names); 51 GetCrasAudioInputDevices(device_names);
49 return; 52 return;
50 } 53 }
51 54
55 AudioParameters AudioManagerCras::GetDefaultOutputStreamParameters(
56 const AudioParameters& input_params) {
57 static const int kDefaultOutputBufferSize = 512;
58
59 ChannelLayout channel_layout = CHANNEL_LAYOUT_STEREO;
60 int sample_rate = kDefaultSampleRate;
61 int buffer_size = kDefaultOutputBufferSize;
62 int bits_per_sample = 16;
63 int input_channels = 0;
64 if (input_params.IsValid()) {
65 sample_rate = input_params.sample_rate();
66 bits_per_sample = input_params.bits_per_sample();
67 channel_layout = input_params.channel_layout();
68 input_channels = input_params.input_channels();
69 buffer_size = input_params.frames_per_buffer();
70 }
71
72 return AudioParameters(
73 AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout,
74 sample_rate, bits_per_sample, buffer_size, input_channels);
75 }
76
77 AudioParameters AudioManagerCras::GetInputStreamParameters(
78 const std::string& device_id) {
79 static const int kDefaultInputBufferSize = 1024;
80
81 return AudioParameters(
82 AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO,
83 kDefaultSampleRate, 16, kDefaultInputBufferSize);
84 }
85
52 void AudioManagerCras::GetCrasAudioInputDevices( 86 void AudioManagerCras::GetCrasAudioInputDevices(
53 media::AudioDeviceNames* device_names) { 87 media::AudioDeviceNames* device_names) {
54 // Cras will route audio from a proper physical device automatically. 88 // Cras will route audio from a proper physical device automatically.
55 device_names->push_back(media::AudioDeviceName( 89 device_names->push_back(media::AudioDeviceName(
56 kCrasAutomaticDeviceName, kCrasAutomaticDeviceId)); 90 kCrasAutomaticDeviceName, kCrasAutomaticDeviceId));
57 } 91 }
58 92
59 AudioOutputStream* AudioManagerCras::MakeLinearOutputStream( 93 AudioOutputStream* AudioManagerCras::MakeLinearOutputStream(
60 const AudioParameters& params) { 94 const AudioParameters& params) {
61 DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format()); 95 DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format());
(...skipping 21 matching lines...) Expand all
83 AudioOutputStream* AudioManagerCras::MakeOutputStream( 117 AudioOutputStream* AudioManagerCras::MakeOutputStream(
84 const AudioParameters& params) { 118 const AudioParameters& params) {
85 return new CrasOutputStream(params, this); 119 return new CrasOutputStream(params, this);
86 } 120 }
87 121
88 AudioInputStream* AudioManagerCras::MakeInputStream( 122 AudioInputStream* AudioManagerCras::MakeInputStream(
89 const AudioParameters& params, const std::string& device_id) { 123 const AudioParameters& params, const std::string& device_id) {
90 return new CrasInputStream(params, this); 124 return new CrasInputStream(params, this);
91 } 125 }
92 126
93 AudioParameters AudioManagerCras::GetPreferredLowLatencyOutputStreamParameters(
94 const AudioParameters& input_params) {
95 // TODO(dalecurtis): This should include bits per channel and channel layout
96 // eventually.
97 return AudioParameters(
98 AudioParameters::AUDIO_PCM_LOW_LATENCY, input_params.channel_layout(),
99 input_params.sample_rate(), 16, input_params.frames_per_buffer());
100 }
101
102 } // namespace media 127 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698