Index: content/renderer/media/android/webmediaplayer_android.cc |
diff --git a/content/renderer/media/android/webmediaplayer_android.cc b/content/renderer/media/android/webmediaplayer_android.cc |
index 4ff222bb92624a82e49a3f8f7f3314900c5bbc4b..5187d3f81d6358f24b0d326fbd2a8fca54d73c2e 100644 |
--- a/content/renderer/media/android/webmediaplayer_android.cc |
+++ b/content/renderer/media/android/webmediaplayer_android.cc |
@@ -72,6 +72,8 @@ using blink::WebSize; |
using blink::WebString; |
using blink::WebURL; |
using gpu::gles2::GLES2Interface; |
+using media::LogHelper; |
+using media::MediaLog; |
using media::MediaPlayerAndroid; |
using media::VideoFrame; |
@@ -426,13 +428,12 @@ void WebMediaPlayerAndroid::seek(double seconds) { |
if (seeking_) { |
if (new_seek_time == seek_time_) { |
if (media_source_delegate_) { |
- if (!pending_seek_) { |
- // If using media source demuxer, only suppress redundant seeks if |
- // there is no pending seek. This enforces that any pending seek that |
- // results in a demuxer seek is preceded by matching |
- // CancelPendingSeek() and StartWaitingForSeek() calls. |
- return; |
- } |
+ // Don't suppress any redundant in-progress MSE seek. There could have |
+ // been changes to the underlying buffers after seeking the demuxer and |
+ // before receiving OnSeekComplete() for the currently in-progress seek. |
+ MEDIA_LOG(DEBUG, media_log_) |
+ << "Detected MediaSource seek to same time as in-progress seek to " |
+ << seek_time_ << "."; |
} else { |
// Suppress all redundant seeks if unrestricted by media source |
// demuxer API. |