Chromium Code Reviews| 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..9805fc57b229a1f9d6457e892b5b3bfa550829fc 100644 |
| --- a/content/browser/renderer_host/media/audio_renderer_host.cc |
| +++ b/content/browser/renderer_host/media/audio_renderer_host.cc |
| @@ -651,11 +651,32 @@ 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. |
|
DaleCurtis
2015/06/29 22:44:23
Comment doesn't add much value, explain why instea
sebsg
2015/07/02 12:58:08
Done.
|
| + 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))); |
|
gab
2015/06/30 13:41:40
base::Unretained() here is incorrect because there
DaleCurtis
2015/06/30 16:34:35
Oops, thanks for catching this. The last method is
sebsg
2015/07/02 12:58:08
Done.
sebsg
2015/07/02 12:58:08
Done.
|
| + } |
| } 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. |
|
DaleCurtis
2015/06/29 22:44:23
Ditto.
sebsg
2015/07/02 12:58:08
Done.
|
| + if (!base::AtomicRefCountDec(&num_playing_streams_)) { |
| + 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()) { |