[webkit-changes] [WebKit/WebKit] 9bc4d3: [MSE][GStreamer] Missing support for aborts not fo...

Enrique Ocaña González noreply at github.com
Mon Mar 27 04:53:28 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9bc4d3cabf88ab50f1258bcd7bc3b07bbe5596b5
      https://github.com/WebKit/WebKit/commit/9bc4d3cabf88ab50f1258bcd7bc3b07bbe5596b5
  Author: Enrique Ocaña González <eocanha at igalia.com>
  Date:   2023-03-27 (Mon, 27 Mar 2023)

  Changed paths:
    M Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp

  Log Message:
  -----------
  [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
https://github.com/WebKit/WebKit/pull/11807 lands.

See: https://github.com/WebPlatformForEmbedded/WPEWebKit/issues/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




More information about the webkit-changes mailing list