Commit 3b2979e
[GStreamer][MSE] Push STREAM_COLLECTION event after flushing
https://bugs.webkit.org/show_bug.cgi?id=262193
Reviewed by Alicia Boya Garcia <aboya@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: #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@main1 parent 674ac36 commit 3b2979e
1 file changed
Lines changed: 12 additions & 0 deletions
Lines changed: 12 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
660 | 660 | | |
661 | 661 | | |
662 | 662 | | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
663 | 675 | | |
664 | 676 | | |
665 | 677 | | |
| |||
0 commit comments