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

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

Issue 132773002: Fix chromeos=1 so Pulse is preferred when use_cras=0. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove alsa_util.h dependency. Created 6 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 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/cras_unified.h" 5 #include "media/audio/cras/cras_unified.h"
6 6
7 #include <cras_client.h>
8
9 #include "base/command_line.h"
10 #include "base/logging.h" 7 #include "base/logging.h"
11 #include "media/audio/alsa/alsa_util.h"
12 #include "media/audio/cras/audio_manager_cras.h" 8 #include "media/audio/cras/audio_manager_cras.h"
13 9
14 namespace media { 10 namespace media {
15 11
16 // Overview of operation: 12 // Overview of operation:
17 // 1) An object of CrasUnifiedStream is created by the AudioManager 13 // 1) An object of CrasUnifiedStream is created by the AudioManager
18 // factory: audio_man->MakeAudioStream(). 14 // factory: audio_man->MakeAudioStream().
19 // 2) Next some thread will call Open(), at that point a client is created and 15 // 2) Next some thread will call Open(), at that point a client is created and
20 // configured for the correct format and sample rate. 16 // configured for the correct format and sample rate.
21 // 3) Then Start(source) is called and a stream is added to the CRAS client 17 // 3) Then Start(source) is called and a stream is added to the CRAS client
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 DCHECK(!is_playing_); 105 DCHECK(!is_playing_);
110 } 106 }
111 107
112 bool CrasUnifiedStream::Open() { 108 bool CrasUnifiedStream::Open() {
113 // Sanity check input values. 109 // Sanity check input values.
114 if (params_.sample_rate() <= 0) { 110 if (params_.sample_rate() <= 0) {
115 LOG(WARNING) << "Unsupported audio frequency."; 111 LOG(WARNING) << "Unsupported audio frequency.";
116 return false; 112 return false;
117 } 113 }
118 114
119 if (alsa_util::BitsToFormat(params_.bits_per_sample()) == 115 if (AudioManagerCras::BitsToFormat(params_.bits_per_sample()) ==
120 SND_PCM_FORMAT_UNKNOWN) { 116 SND_PCM_FORMAT_UNKNOWN) {
121 LOG(WARNING) << "Unsupported pcm format"; 117 LOG(WARNING) << "Unsupported pcm format";
122 return false; 118 return false;
123 } 119 }
124 120
125 // Create the client and connect to the CRAS server. 121 // Create the client and connect to the CRAS server.
126 if (cras_client_create(&client_)) { 122 if (cras_client_create(&client_)) {
127 LOG(WARNING) << "Couldn't create CRAS client.\n"; 123 LOG(WARNING) << "Couldn't create CRAS client.\n";
128 client_ = NULL; 124 client_ = NULL;
129 return false; 125 return false;
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 176
181 source_callback_ = callback; 177 source_callback_ = callback;
182 178
183 // Only start if we can enter the playing state. 179 // Only start if we can enter the playing state.
184 if (is_playing_) 180 if (is_playing_)
185 return; 181 return;
186 182
187 // Prepare |audio_format| and |stream_params| for the stream we 183 // Prepare |audio_format| and |stream_params| for the stream we
188 // will create. 184 // will create.
189 cras_audio_format* audio_format = cras_audio_format_create( 185 cras_audio_format* audio_format = cras_audio_format_create(
190 alsa_util::BitsToFormat(params_.bits_per_sample()), 186 AudioManagerCras::BitsToFormat(params_.bits_per_sample()),
191 params_.sample_rate(), 187 params_.sample_rate(),
192 params_.channels()); 188 params_.channels());
193 if (!audio_format) { 189 if (!audio_format) {
194 LOG(WARNING) << "Error setting up audio parameters."; 190 LOG(WARNING) << "Error setting up audio parameters.";
195 callback->OnError(this); 191 callback->OnError(this);
196 return; 192 return;
197 } 193 }
198 194
199 // Initialize channel layout to all -1 to indicate that none of 195 // Initialize channel layout to all -1 to indicate that none of
200 // the channels is set in the layout. 196 // the channels is set in the layout.
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 return frames_filled; 387 return frames_filled;
392 } 388 }
393 389
394 void CrasUnifiedStream::NotifyStreamError(int err) { 390 void CrasUnifiedStream::NotifyStreamError(int err) {
395 // This will remove the stream from the client. 391 // This will remove the stream from the client.
396 if (source_callback_) 392 if (source_callback_)
397 source_callback_->OnError(this); 393 source_callback_->OnError(this);
398 } 394 }
399 395
400 } // namespace media 396 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698