Index: media/remoting/remote_renderer_impl.cc |
diff --git a/media/remoting/remote_renderer_impl.cc b/media/remoting/remote_renderer_impl.cc |
index f90ed1858ebad0b4b0b17b322a8648b9ad77ca95..07103c4d2212c612d923c58fd69f9900cea334c9 100644 |
--- a/media/remoting/remote_renderer_impl.cc |
+++ b/media/remoting/remote_renderer_impl.cc |
@@ -590,6 +590,13 @@ void RemoteRendererImpl::OnBufferingStateChange( |
message->rendererclient_onbufferingstatechange_rpc().state()); |
if (!state.has_value()) |
return; |
+ if (state == BufferingState::BUFFERING_HAVE_NOTHING) { |
+ is_waiting_for_buffering_ = true; |
+ } else if (is_waiting_for_buffering_) { |
+ is_waiting_for_buffering_ = false; |
+ ResetMeasurements(); |
+ } |
+ |
client_->OnBufferingStateChange(state.value()); |
} |
@@ -727,6 +734,8 @@ void RemoteRendererImpl::OnMediaTimeUpdated() { |
DCHECK(media_task_runner_->BelongsToCurrentThread()); |
if (!flush_cb_.is_null()) |
return; // Don't manage and check the queue when Flush() is on-going. |
+ if (is_waiting_for_buffering_) |
+ return; // Don't manage and check the queue when buffering is on-going. |
base::TimeTicks current_time = base::TimeTicks::Now(); |
if (current_time < ignore_updates_until_time_) |