Index: media/audio/audio_manager_base.cc |
diff --git a/media/audio/audio_manager_base.cc b/media/audio/audio_manager_base.cc |
index 458e53b214f371a955c89ca1c42be0b5ae114dda..892fda1411de8551f6c7fac1ad6f8ba4ad5bf294 100644 |
--- a/media/audio/audio_manager_base.cc |
+++ b/media/audio/audio_manager_base.cc |
@@ -5,6 +5,7 @@ |
#include "media/audio/audio_manager_base.h" |
#include "base/bind.h" |
+#include "base/bind_helpers.h" |
#include "base/command_line.h" |
#include "base/message_loop_proxy.h" |
#include "base/threading/thread.h" |
@@ -115,8 +116,12 @@ AudioOutputStream* AudioManagerBase::MakeAudioOutputStream( |
NOTIMPLEMENTED(); |
return NULL; |
#else |
- stream = VirtualAudioOutputStream::MakeStream(this, params, message_loop_, |
- virtual_audio_input_stream_); |
+ VirtualAudioOutputStream* const vaos = |
+ new VirtualAudioOutputStream( |
+ params, message_loop_, virtual_audio_input_stream_); |
+ vaos->RunOnceClosed(base::Bind( |
DaleCurtis
2013/01/15 22:02:18
Why not make this callback required for constructi
miu
2013/01/16 03:22:18
Done.
|
+ &AudioManagerBase::ReleaseOutputStream, base::Unretained(this), vaos)); |
+ stream = vaos; |
#endif |
} else if (audio_output_disabled) { |
stream = FakeAudioOutputStream::MakeFakeStream(this, params); |
@@ -162,7 +167,10 @@ AudioInputStream* AudioManagerBase::MakeAudioInputStream( |
// request. Subsequent requests will not get audio. |
if (!virtual_audio_input_stream_) { |
virtual_audio_input_stream_ = |
- VirtualAudioInputStream::MakeStream(this, params, message_loop_); |
+ new VirtualAudioInputStream(params, message_loop_); |
+ virtual_audio_input_stream_->RunOnceClosed(base::Bind( |
+ &AudioManagerBase::ReleaseInputStream, base::Unretained(this), |
+ virtual_audio_input_stream_)); |
stream = virtual_audio_input_stream_; |
DVLOG(1) << "Virtual audio input stream created."; |