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

Unified Diff: content/browser/renderer_host/media/audio_renderer_host.cc

Issue 478543003: Use AudioStreamMonitor to control power save blocking. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Move it! 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
Index: content/browser/renderer_host/media/audio_renderer_host.cc
diff --git a/content/browser/renderer_host/media/audio_renderer_host.cc b/content/browser/renderer_host/media/audio_renderer_host.cc
index 91cea8365224cc79a0625c6c0793c778f053d59b..bd4e0f11e10c6ecdcf4f305d7ac32d71e515d014 100644
--- a/content/browser/renderer_host/media/audio_renderer_host.cc
+++ b/content/browser/renderer_host/media/audio_renderer_host.cc
@@ -23,6 +23,13 @@
#include "media/base/audio_bus.h"
#include "media/base/limits.h"
+// Only do audio stream monitoring for platforms that use it for the tab media
+// indicator UI or the OOM killer.
+#if !defined(OS_ANDROID) && !defined(OS_IOS)
+#define AUDIO_STREAM_MONITORING
DaleCurtis 2014/08/29 23:56:47 It's unfortunate to define this everywhere. I'm op
+#include "content/browser/media/audio_stream_monitor.h"
+#endif
+
using media::AudioBus;
using media::AudioManager;
@@ -272,28 +279,29 @@ void AudioRendererHost::DoNotifyStreamStateChanged(int stream_id,
is_playing ? media::AudioOutputIPCDelegate::kPlaying
: media::AudioOutputIPCDelegate::kPaused));
- MediaObserver* const media_observer =
- GetContentClient()->browser()->GetMediaObserver();
- if (media_observer) {
- if (is_playing) {
- media_observer->OnAudioStreamPlaying(
- render_process_id_,
- entry->render_frame_id(),
- entry->stream_id(),
- base::Bind(&media::AudioOutputController::ReadCurrentPowerAndClip,
- entry->controller()));
- if (!entry->playing()) {
- entry->set_playing(true);
- base::AtomicRefCountInc(&num_playing_streams_);
- }
- } else {
- media_observer->OnAudioStreamStopped(render_process_id_,
- entry->render_frame_id(),
- entry->stream_id());
- if (entry->playing()) {
- entry->set_playing(false);
- base::AtomicRefCountDec(&num_playing_streams_);
- }
+ if (is_playing) {
+#if defined(AUDIO_STREAM_MONITORING)
+ AudioStreamMonitor::StartMonitoringStream(
+ render_process_id_,
+ entry->render_frame_id(),
+ entry->stream_id(),
+ base::Bind(&media::AudioOutputController::ReadCurrentPowerAndClip,
+ entry->controller()));
+#endif
+ // TODO(dalecurtis): See about using AudioStreamMonitor instead.
+ if (!entry->playing()) {
+ entry->set_playing(true);
+ base::AtomicRefCountInc(&num_playing_streams_);
+ }
+ } else {
+#if defined(AUDIO_STREAM_MONITORING)
+ AudioStreamMonitor::StopMonitoringStream(
+ render_process_id_, entry->render_frame_id(), entry->stream_id());
+#endif
+ // TODO(dalecurtis): See about using AudioStreamMonitor instead.
+ if (entry->playing()) {
+ entry->set_playing(false);
+ base::AtomicRefCountDec(&num_playing_streams_);
}
}
}
@@ -463,17 +471,12 @@ void AudioRendererHost::OnCloseStream(int stream_id) {
void AudioRendererHost::DeleteEntry(scoped_ptr<AudioEntry> entry) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
-
- // At this point, make the final "say" in audio playback state.
- MediaObserver* const media_observer =
- GetContentClient()->browser()->GetMediaObserver();
- if (media_observer) {
- media_observer->OnAudioStreamStopped(render_process_id_,
- entry->render_frame_id(),
- entry->stream_id());
- if (entry->playing())
- base::AtomicRefCountDec(&num_playing_streams_);
- }
+#if defined(AUDIO_STREAM_MONITORING)
+ AudioStreamMonitor::StopMonitoringStream(
+ render_process_id_, entry->render_frame_id(), entry->stream_id());
+#endif
+ if (entry->playing())
+ base::AtomicRefCountDec(&num_playing_streams_);
}
void AudioRendererHost::ReportErrorAndClose(int stream_id) {

Powered by Google App Engine
This is Rietveld 408576698