A seek is used by MediaPlayerPrivateGStreamer to update the playback rate used in the pipeline. There's a special case when the rate is 0.0. This actually means "paused" and, when set, the pipeline is changed to PAUSED and no updatePlaybackRate() call is made because of an early return (and therefore, no seek). When the rate is restored to a non-zero value, the pipeline is set again to PLAYING, but an unconditional call to updatePlaybackRate() is done, leading to a seek.
It should be possible to call updatePlaybackRate() only if the non-zero rate changed with respect to the original one, instead of always doing it. This would avoid unneeded seeks, which are complex operations that can trigger collateral issues such as the one addressed in https://bugs.webkit.org/show_bug.cgi?id=223742.
Created attachment 425284 [details]
Comment on attachment 425284 [details]
View in context: https://bugs.webkit.org/attachment.cgi?id=425284&action=review
> + m_lastPlaybackRate = m_playbackRate;
Add a documentation comment in the header file explaining this means the last playback rate sent through a GStreamer seek.
Created attachment 425288 [details]
Committed r275596: <https://commits.webkit.org/r275596>
All reviewed patches have been landed. Closing bug and clearing flags on attachment 425288 [details].