Bug 249865 - [GStreamer][1.22] MSE: Playback broken
Summary: [GStreamer][1.22] MSE: Playback broken
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Platform (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-12-24 06:13 PST by Philippe Normand
Modified: 2022-12-30 02:33 PST (History)
1 user (show)

See Also:


Attachments
gst log (352.39 KB, text/plain)
2022-12-24 07:40 PST, Philippe Normand
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Philippe Normand 2022-12-24 06:13:51 PST
With GStreamer 1.21 (1.22 due very soon now), MSE is broken, the MR that broken it for us is:

https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3601

In our pipeline urisourcebin creates one parsebin per stream, because the source element pads have no caps configured yet. After this MR was merged urisourcebin now lets the first stream setup correctly, but for the second, it emits an error "Adaptive demuxer is not streams-aware, check your installation" which arguably in our pipeline is a bit weird, the adaptive demuxer in this case is the second parsebin, which hasn't had the chance to receive a stream collection yet.

When our MSE src exposes its pads the caps are already known, but we push the CAPS events too late, after exposing the pads, so they're not stick'ed on the pads yet at the moment urisourcebin calls get_pad_get_current_caps() in order to decide whether or not it should create a parsebin for the new stream...
Comment 1 Philippe Normand 2022-12-24 07:26:12 PST
Tracking issue for GStreamer: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1675
Comment 2 Philippe Normand 2022-12-24 07:40:53 PST
Created attachment 464192 [details]
gst log
Comment 3 Philippe Normand 2022-12-30 02:33:09 PST
Workaround proposed -> https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3658