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 dddeee21626a31f30aff5b4f749c396fcd5024b8..12fee35c93cf144117701e414d1c6afb999ed7b2 100644 |
--- a/content/browser/renderer_host/media/audio_renderer_host.cc |
+++ b/content/browser/renderer_host/media/audio_renderer_host.cc |
@@ -651,11 +651,33 @@ void AudioRendererHost::UpdateNumPlayingStreams(AudioEntry* entry, |
!RenderFrameHasActiveAudio(entry->render_frame_id()); |
entry->set_playing(true); |
base::AtomicRefCountInc(&num_playing_streams_); |
+ |
+ // If it's the first audio stream to start for this renderer. |
+ if (base::AtomicRefCountIsOne(&num_playing_streams_)) { |
+ RenderProcessHost* render_process_host = |
+ RenderProcessHost::FromID(render_process_id_); |
+ |
+ BrowserThread::PostTask( |
+ BrowserThread::UI, FROM_HERE, |
+ base::Bind(&RenderProcessHost::AudioStarted, |
+ base::Unretained(render_process_host))); |
+ } |
} else { |
entry->set_playing(false); |
should_alert_resource_scheduler = |
!RenderFrameHasActiveAudio(entry->render_frame_id()); |
base::AtomicRefCountDec(&num_playing_streams_); |
+ |
+ // If it was the last audio stream playing for this renderer. |
+ if (base::AtomicRefCountIsZero(&num_playing_streams_)) { |
DaleCurtis
2015/06/29 22:21:40
You can use the result of AtomicRefCountDec instea
sebsg
2015/06/29 22:35:00
Done.
|
+ RenderProcessHost* render_process_host = |
+ RenderProcessHost::FromID(render_process_id_); |
+ |
+ BrowserThread::PostTask( |
+ BrowserThread::UI, FROM_HERE, |
+ base::Bind(&RenderProcessHost::AudioStopped, |
+ base::Unretained(render_process_host))); |
+ } |
} |
if (should_alert_resource_scheduler && ResourceDispatcherHostImpl::Get()) { |