Summary: | REGRESSION(r270612) [GStreamer][MSE] Some play/seek related failures | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Lauro Moura <lmoura> | ||||
Component: | Media | Assignee: | Philippe Normand <pnormand> | ||||
Status: | RESOLVED FIXED | ||||||
Severity: | Normal | CC: | aboya, bugs-noreply, calvaris, cgarcia, eocanha, ews-watchlist, gustavo, menard, peng.liu6, pnormand, vjaquez, webkit-bug-importer | ||||
Priority: | P2 | Keywords: | InRadar | ||||
Version: | WebKit Nightly Build | ||||||
Hardware: | Unspecified | ||||||
OS: | Unspecified | ||||||
See Also: |
https://bugs.webkit.org/show_bug.cgi?id=219565 https://bugs.webkit.org/show_bug.cgi?id=220055 |
||||||
Attachments: |
|
Description
Lauro Moura
2020-12-11 21:43:12 PST
Adding MSE experts in CC... I had a quick look, the append pipeline sink receives no sample and that triggers a typefind error down the line during seeks... The biggest issue is that allSamplesInTrackEnqueued() is now called too early and signals EOS even before the pipeline had a chance to preroll. This regression was introduced in r270612. I'm preparing a patch... Another issue is that the SourceBufferPrivateGStreamer doesn't call appendComplete(), so the parent class doesn't correctly synchronize the TrackBuffer buffered ranges. (In reply to Philippe Normand from comment #2) > The biggest issue is that allSamplesInTrackEnqueued() is now called too > early and signals EOS even before the pipeline had a chance to preroll. This > regression was introduced in r270612. > > I'm preparing a patch... I'm also working on this. Created attachment 416660 [details]
Patch
Comment on attachment 416660 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=416660&action=review r+ conditional to what Alicia thinks of this > Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:196 > + SourceBufferPrivate::appendCompleted(true, m_mediaSource ? m_mediaSource->isEnded() : true); Is it necessary to prepend the superclass name? Method is protected and should be available in the subclass, right? > Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:201 > + SourceBufferPrivate::appendCompleted(false, m_mediaSource ? m_mediaSource->isEnded() : true); Ditto. Comment on attachment 416660 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=416660&action=review LGTM >> Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:196 >> + SourceBufferPrivate::appendCompleted(true, m_mediaSource ? m_mediaSource->isEnded() : true); > > Is it necessary to prepend the superclass name? Method is protected and should be available in the subclass, right? It's not necessary, but I appreciate it, since it shows explicitly that we're jumping to the multiplatform code. The refactor mushed together SourceBufferPrivateGStreamer and SourceBufferPrivate and has since made noticing this difference harder. Committed r271056: <https://trac.webkit.org/changeset/271056> All reviewed patches have been landed. Closing bug and clearing flags on attachment 416660 [details]. |