[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