Index: media/blink/webmediaplayer_impl.cc |
diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc |
index b1744bd1c3d4893f8ed38aa8933ab804430bea90..e0873422a839df297ee6f83c9b676d08e211381e 100644 |
--- a/media/blink/webmediaplayer_impl.cc |
+++ b/media/blink/webmediaplayer_impl.cc |
@@ -337,8 +337,20 @@ void WebMediaPlayerImpl::seek(double seconds) { |
media_log_->AddEvent(media_log_->CreateSeekEvent(seconds)); |
// Update our paused time. |
- if (paused_) |
- paused_time_ = seek_time; |
+ // In paused state ignore the seek operations to current time and generate |
+ // buffer state change event to eventually fire seeking and seeked events |
+ if (paused_) { |
+ if (paused_time_ != seek_time) { |
+ paused_time_ = seek_time; |
+ } else { |
+ main_task_runner_->PostTask( |
+ FROM_HERE, |
+ base::Bind(&WebMediaPlayerImpl::OnPipelineBufferingStateChanged, |
+ AsWeakPtr(), |
+ BUFFERING_HAVE_ENOUGH)); |
+ return; |
+ } |
+ } |
seeking_ = true; |