That's an issue of the GStreamer oggdemux element not working very well in push mode.
This branch contains 2 patches fixing the issue: http://cgit.collabora.com/git/user/vincent/gst-plugins-base/?h=seeking See also this related bug: https://bugzilla.gnome.org/show_bug.cgi?id=621897 With that gst-plugins-base branch the videotag.html works as you'd expect :) Philippe On Thu, 2011-06-02 at 18:08 -0400, Christian Betz wrote: > Hi. > > I am working on a webkit-gtk based project that makes use of the > <video> element. It works great for the most part, but I have found > that the video does not loop if the loop attribute is used. (The loop > attribute works fine in chrome) Also, this seems to only affect some > videos: > > http://sicom.com/~cbetz/videotag.html -- does not loop using an > official theora example video (http://wiki.xiph.org/TheoraTestsuite) > http://sicom.com/~cbetz/videotag_works.html -- does loop using > random video from wikipedia > > I'm not sure yet if this is a webcore, webkit gtk, or gstreamer issue, > but I'm interested in fixing it. This my first foray into webkit > development. Can anyone point me in the right direction? > > I determined that the loop attribute *is* at least getting picked up > in Source/WebCore/html/HTMLMediaElement.cpp. The problem *appears* to > be with the seeking back to the beginning that should occur after the > first run of the video has played. Here is the debug output starting > when the browser first loads the page with the video tag. > > (I am using WebKit-r87124. With WEBKIT_DEBUG set to "Media") > > HTMLMediaElement::HTMLMediaElement > HTMLMediaElement::scheduleLoad > HTMLMediaElement::prepareForLoad > HTMLMediaElement::cancelPendingEventsAndCallbacks > HTMLMediaElement::setPlaybackRate(1.000000) > HTMLMediaElement::setShouldDelayLoadEvent(true) > HTMLMediaElement::removedFromDocument > HTMLMediaElement::selectMediaResource > HTMLMediaElement::loadResource(http://cbetz.staff/projects/dmb/thor.ogv, ) > HTMLMediaElement::loadResource - m_currentSrc -> > http://cbetz.staff/projects/dmb/thor.ogv > HTMLMediaElement::mediaPlayerEngineUpdated > HTMLMediaElement::selectMediaResource, 'src' not used > HTMLMediaElement::mediaPlayerEngineUpdated > HTMLMediaElement::mediaPlayerEngineUpdated > HTMLMediaElement::setNetworkState(2) - current state is 2 > HTMLMediaElement::setReadyState(2) - current state is 0, > HTMLMediaElement::setShouldDelayLoadEvent(false) > HTMLMediaElement::updatePlayState - shouldBePlaying = false, playerPaused = > true > HTMLMediaElement::setReadyState(4) - current state is 2, > HTMLMediaElement::invalidateCachedTime > HTMLMediaElement::updatePlayState - shouldBePlaying = true, playerPaused = > true > HTMLMediaElement::invalidateCachedTime > HTMLMediaElement::mediaPlayerMuteChanged > HTMLMediaElement::setMuted(false) > HTMLMediaElement::setNetworkState(3) - current state is 2 > > ... then the video stops playing .... > > HTMLMediaElement::mediaPlayerDurationChanged > HTMLMediaElement::mediaPlayerCharacteristicChanged > HTMLMediaElement::mediaPlayerTimeChanged > HTMLMediaElement::invalidateCachedTime > HTMLMediaElement::seek(0.000000) > HTMLMediaElement::addPlayedRange(0.000000, 13.000000) > HTMLMediaElement::currentTime - seeking, returning 0.000000 > HTMLMediaElement::currentTime - seeking, returning 0.000000 > HTMLMediaElement::updatePlayState - shouldBePlaying = true, playerPaused = > false > HTMLMediaElement::invalidateCachedTime > HTMLMediaElement::currentTime - seeking, returning 0.000000 > HTMLMediaElement::currentTime - seeking, returning 0.000000 > HTMLMediaElement::currentTime - seeking, returning 0.000000 > HTMLMediaElement::currentTime - seeking, returning 0.000000 > HTMLMediaElement::currentTime - seeking, returning 0.000000 > HTMLMediaElement::currentTime - seeking, returning 0.000000 > HTMLMediaElement::currentTime - seeking, returning 0.000000 > HTMLMediaElement::currentTime - seeking, returning 0.000000 > HTMLMediaElement::currentTime - seeking, returning 0.000000 > HTMLMediaElement::currentTime - seeking, returning 0.000000 > HTMLMediaElement::currentTime - seeking, returning 0.000000 > HTMLMediaElement::currentTime - seeking, returning 0.000000 > HTMLMediaElement::currentTime - seeking, returning 0.000000 > HTMLMediaElement::currentTime - seeking, returning 0.000000 > HTMLMediaElement::currentTime - seeking, returning 0.000000 > HTMLMediaElement::currentTime - seeking, returning 0.000000 > HTMLMediaElement::currentTime - seeking, returning 0.000000 > HTMLMediaElement::currentTime - seeking, returning 0.000000 > HTMLMediaElement::currentTime - seeking, returning 0.000000 > HTMLMediaElement::currentTime - seeking, returning 0.000000 > .. > > > The last message continues repeating ever second or so until the > browser is closed. > > If you made it this far, thanks for looking! > > Christian > _______________________________________________ > webkit-gtk mailing list > [email protected] > http://lists.webkit.org/mailman/listinfo.cgi/webkit-gtk > _______________________________________________ webkit-gtk mailing list [email protected] http://lists.webkit.org/mailman/listinfo.cgi/webkit-gtk
