Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Cherry-pick 262144@main (9bc4d3c). https://bugs.webkit.org/show_bug.c…
…gi?id=228820 [MSE][GStreamer] Missing support for aborts not followed by an initialization segment https://bugs.webkit.org/show_bug.cgi?id=228820 This patch performs a flush on the AppendPipeline on SourceBuffer::abort(). Such action drains the AppendPipeline but leaves the demuxer still configured with the context provided by the last init segment. This is in compliance with the spec, which mandates that there's no need to append an init segment after an abort, because the last one should be reused. For this patch to work, the following GStreamer merge requests, scheduled to be landed on 1.23.1, must be present: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4101. https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4199. If the GStreamer version is lower than the required one, the old reset technique, consisting of setting the pipeline to READY and then PLAYING, is applied. In the current circumstances, the layout tests still don't pass, so this patch isn't unskipping them yet. media-mp4-h264-partial-abort.html should be unskipped when we start using a GStreamer version that includes the MRs. media-webm-opus-partial-abort.html should be unskipped when #11807 lands. See: WebPlatformForEmbedded/WPEWebKit#1016 Reviewed by Alicia Boya Garcia. * Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp: (WebCore::AppendPipeline::resetParserState): If supported by GStreamer, perform a flush instead of setting the pipeline state to READY and then again to PLAYING. Canonical link: https://commits.webkit.org/262144@main
- Loading branch information