| Index: ppapi/shared_impl/ppb_audio_input_shared.cc
|
| diff --git a/ppapi/shared_impl/ppb_audio_input_shared.cc b/ppapi/shared_impl/ppb_audio_input_shared.cc
|
| index 30288947158be23bd0bb31c28d73b812e7bb3ee0..63da16a6a858a469b7f95d29e05cb9cbfaf97ff1 100644
|
| --- a/ppapi/shared_impl/ppb_audio_input_shared.cc
|
| +++ b/ppapi/shared_impl/ppb_audio_input_shared.cc
|
| @@ -91,17 +91,30 @@ PP_Bool PPB_AudioInput_Shared::StartCapture() {
|
| if (capturing_)
|
| return PP_TRUE;
|
|
|
| + // If the audio input device hasn't been opened, set |capturing_| to true and
|
| + // return directly. Capturing will be started once the open operation is
|
| + // completed.
|
| + if (open_state_ == BEFORE_OPEN) {
|
| + capturing_ = true;
|
| + return PP_TRUE;
|
| + }
|
| +
|
| return InternalStartCapture();
|
| }
|
|
|
| PP_Bool PPB_AudioInput_Shared::StopCapture() {
|
| - if (open_state_ == CLOSED || (open_state_ == BEFORE_OPEN &&
|
| - !TrackedCallback::IsPending(open_callback_))) {
|
| + if (open_state_ == CLOSED)
|
| return PP_FALSE;
|
| - }
|
| if (!capturing_)
|
| return PP_TRUE;
|
|
|
| + // If the audio input device hasn't been opened, set |capturing_| to false and
|
| + // return directly.
|
| + if (open_state_ == BEFORE_OPEN) {
|
| + capturing_ = false;
|
| + return PP_TRUE;
|
| + }
|
| +
|
| return InternalStopCapture();
|
| }
|
|
|
| @@ -150,6 +163,7 @@ void PPB_AudioInput_Shared::OnOpenComplete(
|
| // Clean up the handles.
|
| base::SyncSocket temp_socket(socket_handle);
|
| base::SharedMemory temp_mem(shared_memory_handle, false);
|
| + capturing_ = false;
|
| }
|
|
|
| // The callback may have been aborted by Close().
|
|
|