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

Unified Diff: media/audio/audio_manager_base.cc

Issue 495983002: Improve logging related to start/stop and failure of audio input streams in Chrome (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Experimental version of AudioManagerBase logging Created 6 years, 4 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
« media/audio/audio_manager_base.h ('K') | « media/audio/audio_manager_base.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/audio/audio_manager_base.cc
diff --git a/media/audio/audio_manager_base.cc b/media/audio/audio_manager_base.cc
index 3b36b106fa681659dc78b6e894a1965a7d93cae4..4a6e4ac9231007632eb2c833c773a46f78841eb2 100644
--- a/media/audio/audio_manager_base.cc
+++ b/media/audio/audio_manager_base.cc
@@ -8,6 +8,7 @@
#include "base/bind_helpers.h"
#include "base/command_line.h"
#include "base/strings/string_number_conversions.h"
+#include "base/strings/stringprintf.h"
#include "build/build_config.h"
#include "media/audio/audio_output_dispatcher_impl.h"
#include "media/audio/audio_output_proxy.h"
@@ -80,6 +81,7 @@ AudioManagerBase::AudioManagerBase(AudioLogFactory* audio_log_factory)
// block the UI thread when swapping devices.
output_listeners_(
ObserverList<AudioDeviceListener>::NOTIFY_EXISTING_ONLY),
+ state_listeners_(ObserverList<StateChangeListener>::NOTIFY_EXISTING_ONLY),
audio_thread_("AudioThread"),
audio_log_factory_(audio_log_factory) {
#if defined(OS_WIN)
@@ -185,6 +187,10 @@ AudioInputStream* AudioManagerBase::MakeAudioInputStream(
// this method on the audio thread, then uncomment the following:
// DCHECK(task_runner_->BelongsToCurrentThread());
+ std::string log_string = base::StringPrintf(
+ "MakeAudioInputStream(device_id=%s)", device_id.c_str());
Henrik Grunell 2014/08/22 16:14:43 Is this id something that can identify someone?
no longer working on chromium 2014/08/25 08:20:05 as I pointed out, we can't log the device_id due t
henrika (OOO until Aug 14) 2014/08/25 12:47:45 Removed. But Shijing, we do log it at other place
+ NotifyAllStateChangeListeners(log_string);
+
if (!params.IsValid() || (params.channels() > kMaxInputChannels) ||
device_id.empty()) {
DLOG(ERROR) << "Audio parameters are invalid for device " << device_id;
@@ -216,6 +222,9 @@ AudioInputStream* AudioManagerBase::MakeAudioInputStream(
if (stream) {
++num_input_streams_;
+ log_string = base::StringPrintf(
+ "MakeAudioInputStream => num_input_streams = %d", num_input_streams_);
Henrik Grunell 2014/08/22 16:14:43 Do we need the above if we have this? What about t
henrika (OOO until Aug 14) 2014/08/25 12:47:45 Thanks. Improved.
+ NotifyAllStateChangeListeners(log_string);
}
return stream;
@@ -315,6 +324,10 @@ void AudioManagerBase::ReleaseInputStream(AudioInputStream* stream) {
DCHECK(stream);
// TODO(xians) : Have a clearer destruction path for the AudioInputStream.
--num_input_streams_;
+ std::string log_string = base::StringPrintf(
+ "ReleaseInputStream => num_input_streams = %d",
+ num_input_streams_);
+ NotifyAllStateChangeListeners(log_string);
delete stream;
}
@@ -358,6 +371,25 @@ void AudioManagerBase::NotifyAllOutputDeviceChangeListeners() {
FOR_EACH_OBSERVER(AudioDeviceListener, output_listeners_, OnDeviceChange());
}
+void AudioManagerBase::AddStateChangeListener(StateChangeListener* listener) {
+ DCHECK(task_runner_->BelongsToCurrentThread());
+ state_listeners_.AddObserver(listener);
+}
+
+void AudioManagerBase::RemoveStateChangeListener(
+ StateChangeListener* listener) {
+ DCHECK(task_runner_->BelongsToCurrentThread());
+ state_listeners_.RemoveObserver(listener);
+}
+
+void AudioManagerBase::NotifyAllStateChangeListeners(const std::string& msg) {
+ DCHECK(task_runner_->BelongsToCurrentThread());
+ std::string log_string("AMB::");
+ log_string += msg;
+ FOR_EACH_OBSERVER(
+ StateChangeListener, state_listeners_, OnStateChange(log_string));
+}
+
AudioParameters AudioManagerBase::GetDefaultOutputStreamParameters() {
return GetPreferredOutputStreamParameters(GetDefaultOutputDeviceID(),
AudioParameters());
« media/audio/audio_manager_base.h ('K') | « media/audio/audio_manager_base.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698