Chromium Code Reviews| Index: media/audio/android/opensles_input.cc |
| =================================================================== |
| --- media/audio/android/opensles_input.cc (revision 189519) |
| +++ media/audio/android/opensles_input.cc (working copy) |
| @@ -84,9 +84,9 @@ |
| // Start the recording by setting the state to |SL_RECORDSTATE_RECORDING|. |
| err = (*recorder_)->SetRecordState(recorder_, SL_RECORDSTATE_RECORDING); |
| - DCHECK_EQ(SL_RESULT_SUCCESS, err); |
| - if (SL_RESULT_SUCCESS != err) |
| + if (SL_RESULT_SUCCESS != err) { |
|
Ami GONE FROM CHROMIUM
2013/03/22 16:24:41
I hope you can make a pass (in a different CL) cle
Ami GONE FROM CHROMIUM
2013/03/22 16:24:41
What's the deal with the removal of the DCHECKs ev
leozwang1
2013/03/22 21:37:09
sure I will.
leozwang1
2013/03/22 21:37:09
Both Tommi and Qinmin suggested to remove DCHECK a
leozwang1
2013/03/23 07:00:39
Done.
leozwang1
2013/03/23 07:00:39
Done.
|
| HandleError(err); |
| + } |
|
Ami GONE FROM CHROMIUM
2013/03/22 16:24:41
FYI braces are optional in the C++ style guide for
|
| } |
| void OpenSLESInputStream::Stop() { |
| @@ -160,23 +160,26 @@ |
| 0, |
| NULL, |
| NULL); |
| - DCHECK_EQ(SL_RESULT_SUCCESS, err); |
| - if (SL_RESULT_SUCCESS != err) |
| + if (SL_RESULT_SUCCESS != err) { |
| + DLOG(ERROR) << "CreateAudioRecorder slCreateEngine: " << err; |
| return false; |
| + } |
| // Realize the SL engine object in synchronous mode. |
| err = engine_object_->Realize(engine_object_.Get(), SL_BOOLEAN_FALSE); |
| - DCHECK_EQ(SL_RESULT_SUCCESS, err); |
| - if (SL_RESULT_SUCCESS != err) |
| + if (SL_RESULT_SUCCESS != err) { |
| + DLOG(ERROR) << "CreateAudioRecorder Realize: " << err; |
| return false; |
| + } |
| // Get the SL engine interface which is implicit. |
| SLEngineItf engine; |
| err = engine_object_->GetInterface( |
| engine_object_.Get(), SL_IID_ENGINE, &engine); |
| - DCHECK_EQ(SL_RESULT_SUCCESS, err); |
| - if (SL_RESULT_SUCCESS != err) |
| + if (SL_RESULT_SUCCESS != err) { |
| + DLOG(ERROR) << "GetInterface(SL_IID_ENGINE): " << err; |
| return false; |
| + } |
| // Audio source configuration. |
| SLDataLocator_IODevice mic_locator = { |
| @@ -193,11 +196,13 @@ |
| SLDataSink audio_sink = { &buffer_queue, &format_ }; |
| // Create an audio recorder. |
| - const SLuint32 number_of_interfaces = 1; |
| - const SLInterfaceID interface_id[number_of_interfaces] = { |
| - SL_IID_ANDROIDSIMPLEBUFFERQUEUE |
| + const SLInterfaceID interface_id[] = { |
| + SL_IID_ANDROIDSIMPLEBUFFERQUEUE, |
| + SL_IID_ANDROIDCONFIGURATION |
| }; |
| + const SLuint32 number_of_interfaces = arraysize(interface_id); |
|
Ami GONE FROM CHROMIUM
2013/03/22 16:24:41
can inline into the CreateAudioRecorder call.
leozwang1
2013/03/22 21:37:09
Done.
|
| const SLboolean interface_required[number_of_interfaces] = { |
|
Ami GONE FROM CHROMIUM
2013/03/22 16:24:41
number_of_interface is unnecessary.
leozwang1
2013/03/22 21:37:09
Done.
|
| + SL_BOOLEAN_TRUE, |
| SL_BOOLEAN_TRUE |
| }; |
| err = (*engine)->CreateAudioRecorder(engine, |
| @@ -207,15 +212,35 @@ |
| number_of_interfaces, |
| interface_id, |
| interface_required); |
| - DCHECK_EQ(SL_RESULT_SUCCESS, err); |
| if (SL_RESULT_SUCCESS != err) { |
| DLOG(ERROR) << "CreateAudioRecorder failed with error code " << err; |
| return false; |
| } |
| + // Create AudioRecorder and specify SL_IID_ANDROIDCONFIGURATION. |
|
Ami GONE FROM CHROMIUM
2013/03/22 16:24:41
"Create AudioRecorder" comment is a bit late here,
leozwang1
2013/03/22 21:37:09
Done.
|
| + SLAndroidConfigurationItf recorder_config; |
| + err = recorder_object_->GetInterface(recorder_object_.Get(), |
| + SL_IID_ANDROIDCONFIGURATION, |
| + &recorder_config); |
| + if (SL_RESULT_SUCCESS != err) { |
| + DLOG(ERROR) << "GetInterface(SL_IID_ANDROIDCONFIGURATION): " << err; |
| + return false; |
| + } |
| + |
| + SLint32 stream_type = SL_ANDROID_RECORDING_PRESET_VOICE_COMMUNICATION; |
|
Ami GONE FROM CHROMIUM
2013/03/22 16:24:41
this variable is obscuring what the call below act
|
| + err = (*recorder_config)->SetConfiguration( |
| + recorder_config, |
| + SL_ANDROID_KEY_RECORDING_PRESET, |
| + &stream_type, sizeof(SLint32)); |
| + if (SL_RESULT_SUCCESS != err) { |
| + DLOG(ERROR) |
| + << "SetConfiguration(SL_ANDROID_RECORDING_PRESET_VOICE_COMMUNICATION): " |
| + << err; |
| + return false; |
| + } |
| + |
| // Realize the recorder object in synchronous mode. |
| err = recorder_object_->Realize(recorder_object_.Get(), SL_BOOLEAN_FALSE); |
| - DCHECK_EQ(SL_RESULT_SUCCESS, err); |
| if (SL_RESULT_SUCCESS != err) { |
| DLOG(ERROR) << "Recprder Realize() failed with error code " << err; |
| return false; |
| @@ -225,26 +250,31 @@ |
| err = recorder_object_->GetInterface(recorder_object_.Get(), |
| SL_IID_RECORD, |
| &recorder_); |
| - DCHECK_EQ(SL_RESULT_SUCCESS, err); |
| - if (SL_RESULT_SUCCESS != err) |
| + if (SL_RESULT_SUCCESS != err) { |
| + DLOG(ERROR) << "GetInterface(SL_IID_RECORD): " << err; |
| return false; |
| + } |
| // Get the simple buffer queue interface. |
| err = recorder_object_->GetInterface(recorder_object_.Get(), |
| SL_IID_ANDROIDSIMPLEBUFFERQUEUE, |
| &simple_buffer_queue_); |
| - DCHECK_EQ(SL_RESULT_SUCCESS, err); |
| - if (SL_RESULT_SUCCESS != err) |
| + if (SL_RESULT_SUCCESS != err) { |
| + DLOG(ERROR) << "GetInterface(SL_IID_ANDROIDSIMPLEBUFFERQUEUE): " << err; |
| return false; |
| + } |
| // Register the input callback for the simple buffer queue. |
| // This callback will be called when receiving new data from the device. |
| err = (*simple_buffer_queue_)->RegisterCallback(simple_buffer_queue_, |
| SimpleBufferQueueCallback, |
| this); |
| - DCHECK_EQ(SL_RESULT_SUCCESS, err); |
| + if (SL_RESULT_SUCCESS != err) { |
| + DLOG(ERROR) << "AudioRecorder RegisterCallback: " << err; |
| + return false; |
| + } |
| - return (SL_RESULT_SUCCESS == err); |
| + return true; |
| } |
| void OpenSLESInputStream::SimpleBufferQueueCallback( |