Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(352)

Unified Diff: media/audio/audio_manager_base.cc

Issue 11416350: Tab Audio Mirroring: WebContentsAudioInputStream is a new implementation which represents the lifet… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Destructors hate ASSERT() in unit tests. Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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.";

Powered by Google App Engine
This is Rietveld 408576698