Index: media/audio/mac/audio_input_mac.cc |
=================================================================== |
--- media/audio/mac/audio_input_mac.cc (revision 114391) |
+++ media/audio/mac/audio_input_mac.cc (working copy) |
@@ -21,7 +21,8 @@ |
: manager_(manager), |
callback_(NULL), |
audio_queue_(NULL), |
- buffer_size_bytes_(0) { |
+ buffer_size_bytes_(0), |
+ started_(false) { |
// We must have a manager. |
DCHECK(manager_); |
// A frame is one sample across all channels. In interleaved audio the per |
@@ -68,15 +69,18 @@ |
return; |
callback_ = callback; |
OSStatus err = AudioQueueStart(audio_queue_, NULL); |
- if (err != noErr) |
+ if (err != noErr) { |
HandleError(err); |
- else |
+ } else { |
+ started_ = true; |
manager_->IncreaseActiveInputStreamCount(); |
+ } |
} |
void PCMQueueInAudioInputStream::Stop() { |
- if (!audio_queue_) |
+ if (!audio_queue_ || !started_) |
return; |
+ |
// Stop is always called before Close. In case of error, this will be |
// also called when closing the input controller. |
manager_->DecreaseActiveInputStreamCount(); |
@@ -86,6 +90,8 @@ |
OSStatus err = AudioQueueStop(audio_queue_, true); |
if (err != noErr) |
HandleError(err); |
+ |
+ started_ = false; |
} |
void PCMQueueInAudioInputStream::Close() { |