RESOLVED FIXED 279439
[GStreamer][DMABuf] Renderer crash on imx6q
https://bugs.webkit.org/show_bug.cgi?id=279439
Summary [GStreamer][DMABuf] Renderer crash on imx6q
jre
Reported 2024-09-10 06:28:19 PDT
Created attachment 472514 [details] backtrace for a renderer crash when trying to play video using wpewebkit-2.44.3 on imx6q Commit e96233 enables the DMABufVideoSink for wpewebkit 2.41 onwards which breaks video playback on platforms not supporting GL_EXT_texture_rg (here: imx6q/GC2000 using etnaviv). The creation of the YUV textures for DMABufVideoSink fails on such platforms, leading under some circumstances to a renderer crash (see attached backtrace for wpewebkit-2.44.3) caused by an unsuccessfully created texture being passed into glEGLImageTargetTexture2DOES by TextureMapperPlatformLayerProxyDMABuf::DMABufLayer::createEGLImageData. In cases where the video playback attempt does not crash the renderer, videos show only as green rectangles. Enforcing the 2.40 series path of webkit-gl-video-appsink/GstGLColorConvertElement/GstGLUploadElement via the WEBKIT_GST_DMABUF_SINK_DISABLED=1 environment variable restores video playback on the imx6q. Could I solve this by adding a runtime check that disables DMABufVideoSink if GL_EXT_texture_rg is unavailable?
Attachments
backtrace for a renderer crash when trying to play video using wpewebkit-2.44.3 on imx6q (4.86 KB, text/plain)
2024-09-10 06:28 PDT, jre
no flags
jre
Comment 1 2024-09-13 06:57:39 PDT
Philippe Normand
Comment 2 2024-09-14 10:36:06 PDT
FYI this code is likely to be removed, see bug 279672.
Philippe Normand
Comment 3 2024-11-14 04:24:08 PST
Source/WebCore/platform/graphics/gstreamer/DMABufVideoSinkGStreamer.cpp was removed, closing. I think this patch can remain downstream. Can you check upstream main and if the issue still happens, feel free to re-open the bug :)
jre
Comment 4 2024-11-15 08:48:45 PST
I have just tried current master (da216758e86f) on the same platform and the described issue seems indeed resolved. I have not checked which appsink is being used but whichever one is picked automatically has video playback generally working.
Note You need to log in before you can comment on or make changes to this bug.