| 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();
|
|
|