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

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

Issue 551823005: [Hotword] Adding audio parameters to handle audio coming from the DSP. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: actually remove test Created 6 years, 1 month 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
« no previous file with comments | « media/audio/audio_parameters.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_input.h" 5 #include "media/audio/cras/cras_input.h"
6 6
7 #include <math.h> 7 #include <math.h>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "base/time/time.h" 11 #include "base/time/time.h"
12 #include "media/audio/audio_manager.h" 12 #include "media/audio/audio_manager.h"
13 #include "media/audio/cras/audio_manager_cras.h" 13 #include "media/audio/cras/audio_manager_cras.h"
14 14
15 namespace media { 15 namespace media {
16 16
17 // Flag to indicate hotword stream.
18 static const uint32_t kHotwordParam = 1;
dgreid 2014/12/10 00:23:35 This will be 0x03. or even better HOTWORD_STREAM f
rpetterson 2014/12/10 00:37:43 Cool. When do you think that will land?
dgreid 2014/12/10 00:54:50 hopefully soon. I need to get a build without it a
rpetterson 2014/12/13 01:04:00 I've updated the way I think you mean. Let me know
19
17 CrasInputStream::CrasInputStream(const AudioParameters& params, 20 CrasInputStream::CrasInputStream(const AudioParameters& params,
18 AudioManagerCras* manager, 21 AudioManagerCras* manager,
19 const std::string& device_id) 22 const std::string& device_id)
20 : audio_manager_(manager), 23 : audio_manager_(manager),
21 bytes_per_frame_(0), 24 bytes_per_frame_(0),
22 callback_(NULL), 25 callback_(NULL),
23 client_(NULL), 26 client_(NULL),
24 params_(params), 27 params_(params),
25 started_(false), 28 started_(false),
26 stream_id_(0), 29 stream_id_(0),
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 for (size_t i = 0; i < arraysize(kChannelMap); ++i) { 155 for (size_t i = 0; i < arraysize(kChannelMap); ++i) {
153 layout[kChannelMap[i]] = ChannelOrder(params_.channel_layout(), 156 layout[kChannelMap[i]] = ChannelOrder(params_.channel_layout(),
154 static_cast<Channels>(i)); 157 static_cast<Channels>(i));
155 } 158 }
156 if (cras_audio_format_set_channel_layout(audio_format, layout) != 0) { 159 if (cras_audio_format_set_channel_layout(audio_format, layout) != 0) {
157 DLOG(WARNING) << "Error setting channel layout."; 160 DLOG(WARNING) << "Error setting channel layout.";
158 callback->OnError(this); 161 callback->OnError(this);
159 return; 162 return;
160 } 163 }
161 164
165 uint32_t flags = 0;
166 if (params_.effects() & AudioParameters::PlatformEffectsMask::HOTWORD)
167 flags = kHotwordParam;
168
162 unsigned int frames_per_packet = params_.frames_per_buffer(); 169 unsigned int frames_per_packet = params_.frames_per_buffer();
163 cras_stream_params* stream_params = cras_client_stream_params_create( 170 cras_stream_params* stream_params = cras_client_stream_params_create(
164 stream_direction_, 171 stream_direction_,
165 frames_per_packet, // Total latency. 172 frames_per_packet, // Total latency.
166 frames_per_packet, // Call back when this many ready. 173 frames_per_packet, // Call back when this many ready.
167 frames_per_packet, // Minimum Callback level ignored for capture streams. 174 frames_per_packet, // Minimum Callback level ignored for capture streams.
168 CRAS_STREAM_TYPE_DEFAULT, 175 CRAS_STREAM_TYPE_DEFAULT,
169 0, // Unused flags. 176 flags,
170 this, 177 this,
171 CrasInputStream::SamplesReady, 178 CrasInputStream::SamplesReady,
172 CrasInputStream::StreamError, 179 CrasInputStream::StreamError,
173 audio_format); 180 audio_format);
174 if (!stream_params) { 181 if (!stream_params) {
175 DLOG(WARNING) << "Error setting up stream parameters."; 182 DLOG(WARNING) << "Error setting up stream parameters.";
176 callback_->OnError(this); 183 callback_->OnError(this);
177 callback_ = NULL; 184 callback_ = NULL;
178 cras_audio_format_destroy(audio_format); 185 cras_audio_format_destroy(audio_format);
179 return; 186 return;
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 310
304 double CrasInputStream::GetVolumeRatioFromDecibels(double dB) const { 311 double CrasInputStream::GetVolumeRatioFromDecibels(double dB) const {
305 return pow(10, dB / 20.0); 312 return pow(10, dB / 20.0);
306 } 313 }
307 314
308 double CrasInputStream::GetDecibelsFromVolumeRatio(double volume_ratio) const { 315 double CrasInputStream::GetDecibelsFromVolumeRatio(double volume_ratio) const {
309 return 20 * log10(volume_ratio); 316 return 20 * log10(volume_ratio);
310 } 317 }
311 318
312 } // namespace media 319 } // namespace media
OLDNEW
« no previous file with comments | « media/audio/audio_parameters.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698