summaryrefslogtreecommitdiffstats
path: root/content/browser/speech/speech_recognizer_impl.cc
diff options
context:
space:
mode:
authorhenrika@chromium.org <henrika@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-19 12:38:56 +0000
committerhenrika@chromium.org <henrika@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-19 12:38:56 +0000
commitf361a0d7b773112b60b80028aeaa2f42385d8487 (patch)
tree5a303803a2f3c6c0995195efd6a4f417cbbe5783 /content/browser/speech/speech_recognizer_impl.cc
parent4903647573d5f2aad967f777532bedc734188d7c (diff)
downloadchromium_src-f361a0d7b773112b60b80028aeaa2f42385d8487.zip
chromium_src-f361a0d7b773112b60b80028aeaa2f42385d8487.tar.gz
chromium_src-f361a0d7b773112b60b80028aeaa2f42385d8487.tar.bz2
Modifies AudioInputCallback::OnData and use media::AudioBus instead of plain byte vector (Relanding).
Second attempt to land https://codereview.chromium.org/314713002/ which has been reverted. TBR=dalecurtis BUG=375155 TEST=WebRTC and WebSpeech demos Review URL: https://codereview.chromium.org/344583002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@278345 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/speech/speech_recognizer_impl.cc')
-rw-r--r--content/browser/speech/speech_recognizer_impl.cc18
1 files changed, 7 insertions, 11 deletions
diff --git a/content/browser/speech/speech_recognizer_impl.cc b/content/browser/speech/speech_recognizer_impl.cc
index 3ba1f08..e49d301 100644
--- a/content/browser/speech/speech_recognizer_impl.cc
+++ b/content/browser/speech/speech_recognizer_impl.cc
@@ -37,10 +37,10 @@ class SpeechRecognizerImpl::OnDataConverter
const AudioParameters& output_params);
virtual ~OnDataConverter();
- // Converts input |data| buffer into an AudioChunk where the input format
+ // Converts input audio |data| bus into an AudioChunk where the input format
// is given by |input_parameters_| and the output format by
// |output_parameters_|.
- scoped_refptr<AudioChunk> Convert(const uint8* data, size_t size);
+ scoped_refptr<AudioChunk> Convert(const AudioBus* data);
private:
// media::AudioConverter::InputCallback implementation.
@@ -132,11 +132,10 @@ SpeechRecognizerImpl::OnDataConverter::~OnDataConverter() {
}
scoped_refptr<AudioChunk> SpeechRecognizerImpl::OnDataConverter::Convert(
- const uint8* data, size_t size) {
- CHECK_EQ(size, static_cast<size_t>(input_parameters_.GetBytesPerBuffer()));
+ const AudioBus* data) {
+ CHECK_EQ(data->frames(), input_parameters_.frames_per_buffer());
- input_bus_->FromInterleaved(
- data, input_bus_->frames(), input_parameters_.bits_per_sample() / 8);
+ data->CopyTo(input_bus_.get());
waiting_for_input_ = true;
audio_converter_.Convert(output_bus_.get());
@@ -272,13 +271,10 @@ void SpeechRecognizerImpl::OnError(AudioInputController* controller,
}
void SpeechRecognizerImpl::OnData(AudioInputController* controller,
- const uint8* data, uint32 size) {
- if (size == 0) // This could happen when audio capture stops and is normal.
- return;
-
+ const AudioBus* data) {
// Convert audio from native format to fixed format used by WebSpeech.
FSMEventArgs event_args(EVENT_AUDIO_DATA);
- event_args.audio_data = audio_converter_->Convert(data, size);
+ event_args.audio_data = audio_converter_->Convert(data);
BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
base::Bind(&SpeechRecognizerImpl::DispatchEvent,