REOPENED 236884
[GStreamer] Switch media player to playbin3
https://bugs.webkit.org/show_bug.cgi?id=236884
Summary [GStreamer] Switch media player to playbin3
Philippe Normand
Reported 2022-02-19 09:05:13 PST
MSE and Mediastream require playbin3. Regular playback uses playbin3 if GStreamer >= 1.20 is detected, unless the WEBKIT_GST_USE_PLAYBIN2 environment variable is set to 1.
Attachments
Patch (5.54 KB, patch)
2022-02-19 09:12 PST, Philippe Normand
no flags
Patch (5.54 KB, patch)
2022-02-19 09:15 PST, Philippe Normand
no flags
Philippe Normand
Comment 1 2022-02-19 09:12:25 PST
Philippe Normand
Comment 2 2022-02-19 09:15:58 PST
EWS
Comment 3 2022-02-22 11:35:57 PST
Committed r290325 (247647@main): <https://commits.webkit.org/247647@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 452643 [details].
Radar WebKit Bug Importer
Comment 4 2022-02-22 11:36:19 PST
Philippe Normand
Comment 5 2022-02-27 09:46:10 PST
Comment on attachment 452643 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=452643&action=review > Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:2671 > + auto usePlaybin2 = usePlaybin2Override ? parseInteger<unsigned>(usePlaybin2Override) : 0; Clearly I didn't test this properly, nice auto footgun. This is actually an optional<unsigned>. > Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:2672 > + if ((usePlaybin2 || !webkitGstCheckVersion(1, 20, 0)) && !isMediaSource() && !url.protocolIs("mediastream")) so the usePlaybin2 test here always returns true. I'll follow-up in a new patch, there are layout test updates needed.
WebKit Commit Bot
Comment 6 2022-03-01 09:03:14 PST
Re-opened since this is blocked by bug 237326
Philippe Normand
Comment 7 2022-09-04 09:51:51 PDT
Philippe Normand
Comment 8 2022-11-10 08:35:01 PST
(In reply to Philippe Normand from comment #7) > Pull request: https://github.com/WebKit/WebKit/pull/4007 I've found a couple more playbin3 issues which make me think this is not production-ready yet, at least until 1.22: - https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1419 which was closed actually. Download buffering is not runtime toggle-able in playbin3 - https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1562 URI redirects are not supported yet - https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1418 some tests failing due to this one, though I think it's a wpt-specific corner case... So I think we shouldn't flip the switch yet, it's too early.
Philippe Normand
Comment 9 2023-05-29 04:22:06 PDT
(In reply to Philippe Normand from comment #8) > (In reply to Philippe Normand from comment #7) > > Pull request: https://github.com/WebKit/WebKit/pull/4007 > > I've found a couple more playbin3 issues which make me think this is not > production-ready yet, at least until 1.22: > > - https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1419 which was > closed actually. Download buffering is not runtime toggle-able in playbin3 Nothing we can do about this. > - https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1562 URI > redirects are not supported yet Fixed upstream (scheduled to ship in 1.24). > - https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1418 some > tests failing due to this one, though I think it's a wpt-specific corner > case... > MR fixing this: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4725 > So I think we shouldn't flip the switch yet, it's too early. Playbin3 support for decoder/sinks is going to be another requirement.
Philippe Normand
Comment 10 2024-03-04 03:43:59 PST
AFAICT the last big blocker is https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4391 playbin3 in 1.24 is no longer advertised as experimental.
Philippe Normand
Comment 11 2024-03-04 09:58:58 PST
Xabier Rodríguez Calvar
Comment 12 2024-03-04 22:32:41 PST
(In reply to Philippe Normand from comment #10) > AFAICT the last big blocker is > https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4391 > > playbin3 in 1.24 is no longer advertised as experimental. That PR is not landing. I witnessed Edward's review in person and he is not accepting that. So we'll have to live with the current custom solutions for the corresponding platforms.
Philippe Normand
Comment 13 2024-03-05 00:51:53 PST
(In reply to Xabier Rodríguez Calvar from comment #12) > (In reply to Philippe Normand from comment #10) > > AFAICT the last big blocker is > > https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4391 > > > > playbin3 in 1.24 is no longer advertised as experimental. > > That PR is not landing. I witnessed Edward's review in person and he is not > accepting that. So we'll have to live with the current custom solutions for > the corresponding platforms. We could provide a playbin2 quirk for those :)
Note You need to log in before you can comment on or make changes to this bug.