Index: content/browser/renderer_host/media/audio_output_delegate_impl.cc |
diff --git a/content/browser/renderer_host/media/audio_output_delegate_impl.cc b/content/browser/renderer_host/media/audio_output_delegate_impl.cc |
index 3625fcbfefaaa18f1dabe65e3af7eabbc3175f99..ebe6826772ce6526d47a814311a2491dab5cac26 100644 |
--- a/content/browser/renderer_host/media/audio_output_delegate_impl.cc |
+++ b/content/browser/renderer_host/media/audio_output_delegate_impl.cc |
@@ -12,6 +12,7 @@ |
#include "content/browser/media/capture/audio_mirroring_manager.h" |
#include "content/browser/media/media_internals.h" |
#include "content/browser/renderer_host/media/audio_sync_reader.h" |
+#include "content/browser/renderer_host/media/media_stream_manager.h" |
#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/media_observer.h" |
#include "media/audio/audio_output_controller.h" |
@@ -34,12 +35,15 @@ class AudioOutputDelegateImpl::ControllerEventHandler |
void OnControllerPaused() override; |
void OnControllerError() override; |
+ void OnLog(const std::string& message) override; |
+ |
base::WeakPtr<AudioOutputDelegateImpl> delegate_; |
+ int stream_id_; // Retained separately for logging. |
}; |
AudioOutputDelegateImpl::ControllerEventHandler::ControllerEventHandler( |
base::WeakPtr<AudioOutputDelegateImpl> delegate) |
- : delegate_(std::move(delegate)) {} |
+ : delegate_(std::move(delegate)), stream_id_(delegate_->stream_id_) {} |
void AudioOutputDelegateImpl::ControllerEventHandler::OnControllerCreated() { |
BrowserThread::PostTask( |
@@ -68,6 +72,13 @@ void AudioOutputDelegateImpl::ControllerEventHandler::OnControllerError() { |
base::BindOnce(&AudioOutputDelegateImpl::OnError, delegate_)); |
} |
+void AudioOutputDelegateImpl::ControllerEventHandler::OnLog( |
+ const std::string& message) { |
+ BrowserThread::PostTask( |
+ BrowserThread::IO, FROM_HERE, |
+ base::Bind(&AudioOutputDelegateImpl::DoLog, stream_id_, message)); |
Max Morin
2017/05/29 14:25:44
I just realized this should be BindOnce, like in a
ossu-chromium
2017/05/29 14:35:48
I think I've been a bit hazy on the significance o
Max Morin
2017/05/29 14:44:44
Yes, it's a sort of documentation (with added effi
|
+} |
+ |
std::unique_ptr<media::AudioOutputDelegate> AudioOutputDelegateImpl::Create( |
EventHandler* handler, |
media::AudioManager* audio_manager, |
@@ -221,6 +232,15 @@ void AudioOutputDelegateImpl::OnError() { |
subscriber_->OnStreamError(stream_id_); |
} |
liberato (no reviews please)
2017/05/30 16:53:34
please add "// static".
ossu-chromium
2017/05/31 11:16:27
See comment in audio_output_delegate_impl.h.
|
+void AudioOutputDelegateImpl::DoLog(int stream_id, const std::string& msg) { |
+ DCHECK_CURRENTLY_ON(BrowserThread::IO); |
+ std::ostringstream oss; |
+ oss << "[stream_id=" << stream_id << "] " << msg; |
+ const std::string message = oss.str(); |
+ content::MediaStreamManager::SendMessageToNativeLog(message); |
+ DVLOG(1) << message; |
+} |
+ |
media::AudioOutputController* AudioOutputDelegateImpl::GetControllerForTesting() |
const { |
return controller_.get(); |