Bug 56145

Summary: [Qt] Seeking videos using the timeline bar does not work properly and stop the video playback.
Product: WebKit Reporter: Alexis Menard (darktears) <menard>
Component: MediaAssignee: Alexis Menard (darktears) <menard>
Status: RESOLVED FIXED    
Severity: Blocker CC: commit-queue, hausmann, kling, vestbo
Priority: P1 Keywords: Qt, QtTriaged
Version: 528+ (Nightly build)   
Hardware: PC   
OS: Linux   
Attachments:
Description Flags
Patch to fix the issue
vestbo: review-
V2 with comments taken into account.
vestbo: review-, vestbo: commit-queue-
V3 without the play.
none
V4 with up-to-date changelog none

Alexis Menard (darktears)
Reported 2011-03-10 14:18:57 PST
- Go to tiny.cc/wkmedia and start playback of one of the video. - Try to seek somewhere. On Linux the seeking is really strange sometimes going back to the value we were before the seek. On Mac for instance the playback stops.
Attachments
Patch to fix the issue (5.60 KB, patch)
2011-03-10 14:29 PST, Alexis Menard (darktears)
vestbo: review-
V2 with comments taken into account. (5.81 KB, patch)
2011-03-14 07:47 PDT, Alexis Menard (darktears)
vestbo: review-
vestbo: commit-queue-
V3 without the play. (5.56 KB, patch)
2011-03-14 12:22 PDT, Alexis Menard (darktears)
no flags
V4 with up-to-date changelog (5.41 KB, patch)
2011-03-14 12:34 PDT, Alexis Menard (darktears)
no flags
Alexis Menard (darktears)
Comment 1 2011-03-10 14:29:04 PST
Created attachment 85390 [details] Patch to fix the issue We do not need seekTimeout and queuedSeekTimeout anymore. setPosition on QMediaPlayer is good enough. positionChanged() will be emitted when the data is buffered. On Linux the signal was not emitted because of a bug in QtMultimedia. Also we need to resume the playback after receiving positionChanged() because beginScrubbing() actually paused the mediaplayer previously. A patch has been send to the Qt Multimedia team for review.
Tor Arne Vestbø
Comment 2 2011-03-14 06:26:42 PDT
Comment on attachment 85390 [details] Patch to fix the issue as discussed on irc we need to exit early on state-change when seeking so that play/pause changes are not reflected as DOM events
Alexis Menard (darktears)
Comment 3 2011-03-14 07:47:00 PDT
Created attachment 85673 [details] V2 with comments taken into account.
Tor Arne Vestbø
Comment 4 2011-03-14 07:52:43 PDT
Comment on attachment 85673 [details] V2 with comments taken into account. View in context: https://bugs.webkit.org/attachment.cgi?id=85673&action=review r=me with comment > Source/WebCore/platform/graphics/qt/MediaPlayerPrivateQt.cpp:448 > + if (m_mediaPlayer->state() != QMediaPlayer::PlayingState) { This needs to check the webcorePlayer state
Tor Arne Vestbø
Comment 5 2011-03-14 08:05:46 PDT
Comment on attachment 85673 [details] V2 with comments taken into account. r-, there's logic in HTMLMEdiaElement that should take care of the play() for us
Alexis Menard (darktears)
Comment 6 2011-03-14 12:22:45 PDT
Created attachment 85700 [details] V3 without the play. Resuming the playback should be handled a layer up so I removed the play() call. It's a separate patch that I will upload after on a separate bug report. This commit then still fix the seeking but the video keep being paused after a successful seek.
Alexis Menard (darktears)
Comment 7 2011-03-14 12:34:13 PDT
Created attachment 85702 [details] V4 with up-to-date changelog
WebKit Commit Bot
Comment 8 2011-03-14 22:59:34 PDT
Comment on attachment 85702 [details] V4 with up-to-date changelog Clearing flags on attachment: 85702 Committed r81114: <http://trac.webkit.org/changeset/81114>
WebKit Commit Bot
Comment 9 2011-03-14 22:59:40 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.