[webkit-changes] [WebKit/WebKit] 4c9c58: [GStreamer][MSE] Push STREAM_COLLECTION event afte...

Enrique Ocaña González noreply at github.com
Thu Sep 28 06:54:57 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 4c9c583641452ecb3807a9fa58103629431710cf
      https://github.com/WebKit/WebKit/commit/4c9c583641452ecb3807a9fa58103629431710cf
  Author: Enrique Ocaña González <eocanha at igalia.com>
  Date:   2023-09-28 (Thu, 28 Sep 2023)

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

  Log Message:
  -----------
  [GStreamer][MSE] Push STREAM_COLLECTION event after flushing
https://bugs.webkit.org/show_bug.cgi?id=262193

Reviewed by Alicia Boya Garcia <aboya at igalia.com>.

Flushing the playback pipeline when very first buffers are being pushed downstream causes
STREAM_COLLECTION event to be dropped before reaching decodebin3. As a result playback never
starts after flush (buffer push return not-linked). This happens on initial seek sometimes,
when it is triggered at the same time that first buffers push.

STREAM_COLLECTION is dropped by GstBaseParse element specificaly that is caching events and
sending them with first frame. Unfortunately flushing will drop all pending events if first
frame is not ready yet.

Original author: Andrzej Surdej (https://github.com/asurdej-comcast)

See: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/1197

* Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:
(webKitMediaSrcStreamFlush): Reset hasPushedStreamCollectionEvent at the end of the flush to force sending of the STREAM_COLLECTION event after that. Only for GStreamer versions that don't have a proper fix yet.

Canonical link: https://commits.webkit.org/268582@main




More information about the webkit-changes mailing list