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 <[email protected]>
  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 <[email protected]>.

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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to