Skip to content

[GStreamer][EME] imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted-segmented.https.html is failing #47230

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

philn
Copy link
Member

@philn philn commented Jun 26, 2025

b7bcaae

[GStreamer][EME] imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted-segmented.https.html is failing
https://bugs.webkit.org/show_bug.cgi?id=211375

Reviewed by NOBODY (OOPS!).

Wrap the decryptor in a new bin along with parsebin. This should allow seamless switching between
encrypted and clear content processing. As this new parser is auto-plugged by parsebin in
urisourcebin we have to be cautious regarding the infinite auto-plugging outcome by removing our new
parser from the autoplug-factories passed to the inner parsebin element.

Test: media/encrypted-media/encrypted-media-append-clear-encrypted.html

b7bcaae

Misc iOS, visionOS, tvOS & watchOS macOS Linux Windows
✅ 🧪 style ✅ 🛠 ios ✅ 🛠 mac ✅ 🛠 wpe ✅ 🛠 win
✅ 🧪 bindings ✅ 🛠 ios-sim ✅ 🛠 mac-AS-debug ❌ 🧪 wpe-wk2 ⏳ 🧪 win-tests
✅ 🧪 webkitperl ✅ 🧪 ios-wk2 ✅ 🧪 api-mac ✅ 🧪 api-wpe
✅ 🧪 webkitpy ✅ 🧪 ios-wk2-wpt ❌ 🧪 mac-wk1 ✅ 🛠 wpe-cairo
❌ 🧪 api-ios ❌ 🧪 mac-wk2 ✅ 🛠 gtk
✅ 🛠 vision ❌ 🧪 mac-AS-debug-wk2 ❌ 🧪 gtk-wk2
✅ 🛠 vision-sim ❌ 🧪 mac-wk2-stress ✅ 🧪 api-gtk
✅ 🧪 vision-wk2 ❌ 🧪 mac-intel-wk2 ✅ 🛠 playstation
✅ 🛠 tv ✅ 🛠 mac-safer-cpp
✅ 🛠 tv-sim
✅ 🛠 watch
✅ 🛠 watch-sim

@philn philn self-assigned this Jun 26, 2025
@philn philn added the WebKitGTK Bugs related to the Gtk API layer. label Jun 26, 2025
@philn
Copy link
Member Author

philn commented Jun 26, 2025

The pad probe in msesrc triggers asserts:

STDERR: ASSERTION FAILED: self->priv->cdmProxy
STDERR: /app/webkit/Source/WebCore/platform/graphics/gstreamer/eme/WebKitThunderDecryptorGStreamer.cpp(138) : const char* protectionSystemId(WebKitMediaCommonEncryptionDecrypt*)
STDERR: 1   0x7f5b9f48bf8c protectionSystemId(_WebKitMediaCommonEncryptionDecrypt*)
STDERR: 2   0x7f5b9f48e446 transformCaps(_GstBaseTransform*, GstPadDirection, _GstCaps*, _GstCaps*)
STDERR: 3   0x7f5b90e6afe8 gst_base_transform_transform_caps
STDERR: 4   0x7f5b90e6e02a gst_base_transform_default_query
STDERR: 5   0x7f5b94031ccb gst_pad_query
STDERR: 6   0x7f5b9407d27e gst_pad_query_caps
STDERR: 7   0x7f5b9402dd49 gst_pad_link_prepare
STDERR: 8   0x7f5b9402e133 gst_pad_link_full
STDERR: 9   0x7f5b9f4a8d19 onWebKitMediaSourcePadEvent(_GstPad*, _GstPadProbeInfo*, void*)
STDERR: 10  0x7f5b9402f88f probe_hook_marshal
STDERR: 11  0x7f5b94204a07 g_hook_list_marshal
STDERR: 12  0x7f5b9402ff18 do_probe_callbacks
STDERR: 13  0x7f5b94034cf1 gst_pad_push_event_unchecked
STDERR: 14  0x7f5b940353c6 push_sticky
STDERR: 15  0x7f5b94029915 events_foreach.lto_priv.0
STDERR: 16  0x7f5b940358bf check_sticky
STDERR: 17  0x7f5b9403858b gst_pad_push_event
STDERR: 18  0x7f5b9f4b2aed webKitMediaSrcLoop(void*)
STDERR: 19  0x7f5b9406fa44 gst_task_func
STDERR: 20  0x7f5b942574f2 g_thread_pool_thread_proxy.lto_priv.0
STDERR: 21  0x7f5b94254862 g_thread_proxy
STDERR: 22  0x7f5b93a7ce39 start_thread
STDERR: 23  0x7f5b93b048c4 clone

…rkey-mp4-playback-temporary-clear-encrypted-segmented.https.html is failing

https://bugs.webkit.org/show_bug.cgi?id=211375

Reviewed by NOBODY (OOPS!).

Wrap the decryptor in a new bin along with parsebin. This should allow seamless switching between
encrypted and clear content processing. As this new parser is auto-plugged by parsebin in
urisourcebin we have to be cautious regarding the infinite auto-plugging outcome by removing our new
parser from the autoplug-factories passed to the inner parsebin element.

Test: media/encrypted-media/encrypted-media-append-clear-encrypted.html
@philn philn removed the merging-blocked Applied to prevent a change from being merged label Jun 30, 2025
@webkit-ews-buildbot webkit-ews-buildbot added the merging-blocked Applied to prevent a change from being merged label Jun 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
merging-blocked Applied to prevent a change from being merged WebKitGTK Bugs related to the Gtk API layer.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants