Index: content/renderer/media/render_media_log.cc |
diff --git a/content/renderer/media/render_media_log.cc b/content/renderer/media/render_media_log.cc |
index eae60c006a92522b9569c479210cf03a9a919f5b..e45764fe3be94e04be3935299447e847c5c1a6aa 100644 |
--- a/content/renderer/media/render_media_log.cc |
+++ b/content/renderer/media/render_media_log.cc |
@@ -55,14 +55,19 @@ void RenderMediaLog::AddEventInternal(scoped_ptr<media::MediaLogEvent> event) { |
// If there is an event waiting to be sent, there must be a send task pending. |
const bool delayed_ipc_send_pending = |
- !queued_media_events_.empty() || last_buffered_extents_changed_event_; |
+ !queued_media_events_.empty() || last_buffered_extents_changed_event_ || |
+ last_buffered_audio_splice_stats_changed_event_; |
// Keep track of the latest buffered extents properties to avoid sending |
// thousands of events over IPC. See http://crbug.com/352585 for details. |
- if (event->type == media::MediaLogEvent::BUFFERED_EXTENTS_CHANGED) |
+ if (event->type == media::MediaLogEvent::BUFFERED_EXTENTS_CHANGED) { |
last_buffered_extents_changed_event_.swap(event); |
- else |
+ } else if (event->type == |
+ media::MediaLogEvent::BUFFERED_AUDIO_SPLICE_STATISTICS_CHANGED) { |
+ last_buffered_audio_splice_stats_changed_event_.swap(event); |
+ } else { |
queued_media_events_.push_back(*event); |
+ } |
if (delayed_ipc_send_pending) |
return; |
@@ -90,6 +95,12 @@ void RenderMediaLog::SendQueuedMediaEvents() { |
last_buffered_extents_changed_event_.reset(); |
} |
+ if (last_buffered_audio_splice_stats_changed_event_) { |
+ queued_media_events_.push_back( |
+ *last_buffered_audio_splice_stats_changed_event_); |
+ last_buffered_audio_splice_stats_changed_event_.reset(); |
+ } |
+ |
RenderThread::Get()->Send( |
new ViewHostMsg_MediaLogEvents(queued_media_events_)); |
queued_media_events_.clear(); |