| 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 1b3eeb53c61cf476456ab0bace584891145ec45d..1169f685b5a81ec6885ef39e92a8cb96195c0301 100644
|
| --- a/content/renderer/media/render_media_log.cc
|
| +++ b/content/renderer/media/render_media_log.cc
|
| @@ -72,6 +72,12 @@ void RenderMediaLog::AddEvent(std::unique_ptr<media::MediaLogEvent> event) {
|
| // kind, if any, prior to sending the event batch.
|
| break;
|
|
|
| + case media::MediaLogEvent::DURATION_SET:
|
| + // Similar to the extents changed message, this may fire many times for
|
| + // badly muxed media. Suppress within our rate limits here.
|
| + last_duration_changed_event_.swap(event);
|
| + break;
|
| +
|
| // Hold onto the most recent PIPELINE_ERROR and MEDIA_LOG_ERROR_ENTRY for
|
| // use in GetLastErrorMessage().
|
| case media::MediaLogEvent::PIPELINE_ERROR:
|
| @@ -153,6 +159,11 @@ void RenderMediaLog::SendQueuedMediaEvents() {
|
| last_buffered_extents_changed_event_.reset();
|
| }
|
|
|
| + if (last_duration_changed_event_) {
|
| + queued_media_events_.push_back(*last_duration_changed_event_);
|
| + last_duration_changed_event_.reset();
|
| + }
|
| +
|
| queued_media_events_.swap(events_to_send);
|
| last_ipc_send_time_ = tick_clock_->NowTicks();
|
| }
|
|
|