NEW292951
[WPE][GStreamer][WebGL] Many video webgl tests timing out with "no valid frames" vorbis error
https://bugs.webkit.org/show_bug.cgi?id=292951
Summary [WPE][GStreamer][WebGL] Many video webgl tests timing out with "no valid fram...
Lauro Moura
Reported 2025-05-13 13:20:07 PDT
Recently, a number of revisions enable new WebGL tests: 294256@main (cec6beae58bc) Enable newer WebGL CTS conformance2/renderbuffers tests https://bugs.webkit.org/show_bug.cgi?id=292260 rdar://150266920 294255@main (1aea2ca66680) Enable newer WebGL CTS conformance2/query tests https://bugs.webkit.org/show_bug.cgi?id=292258 rdar://150266311 294254@main (bce8dcf1b26e) Enable newer WebGL CTS conformance2/programs tests https://bugs.webkit.org/show_bug.cgi?id=292256 rdar://150266030 294253@main (2b4165eb3474) Enable newer WebGL CTS conformance2/misc tests https://bugs.webkit.org/show_bug.cgi?id=292255 rdar://150265421 294252@main (f63a060f377f) Enable newer WebGL CTS conformance2/extensions tests https://bugs.webkit.org/show_bug.cgi?id=292252 rdar://150264779 294251@main (7c0815ca4646) Enable newer WebGL CTS conformance/ tests https://bugs.webkit.org/show_bug.cgi?id=292183 rdar://150188705 294250@main (6a0a3c1da347) Enable newer WebGL CTS conformance2/vertex_arrays tests https://bugs.webkit.org/show_bug.cgi?id=292251 rdar://150262933 Since the WPE-Release post-commit job 20755 (294257@main), lots of webgl video tests are timing out, making the bot reach the early exit threshold. I gardened a number of tests in 294773@main and 294786@main, but it was not enough. Quite a majority of the tests timing out have this stderr output: 0:00:00.608145741 13036 0x5a71d095f290 ERROR webkitdisplay PlatformDisplayGStreamer.cpp:82:gstGLContext: Failed to fill in GStreamer context: glGetString error: 0x500 0:00:01.051327332 13036 0x5a71d095f290 ERROR webkitcommon GStreamerCommon.cpp:952:operator():<media-player-1> Got message: error message: 0x7ee394050400, time 99:99:99.999999999, seq-num 1389, element 'vorbisdec0', GstMessageError, gerror=(GError)NULL, debug=(string)"../gst-libs/gst/audio/gstaudiodecoder.c\(2506\):\ gst_audio_decoder_sink_eventfunc\ \(\):\ /GstPlayBin:media-player-1/GstURIDecodeBin:uridecodebin1/GstDecodeBin:decodebin1/GstVorbisDec:vorbisdec0:\012no\ valid\ frames\ found"; 0:00:01.051354180 13036 0x5a71d095f290 ERROR webkitmediaplayer MediaPlayerPrivateGStreamer.cpp:2044:handleMessage:<media-player-1> No valid frames decoded before end of stream (url=file:///app/webkit/LayoutTests/webgl/resources/webgl_test_files/resources/red-green.webmvp8.webm) (code=7) :q Looks like related to the gstreamer version, as the error appears with GST 1.26.1, but not with 1.26.0 For the given input file: LayoutTests/webgl/resources/webgl_test_files/resources/red-green.webmvp8.webm: - Flatpak: gst-play-1.0 - 1.26.1 - Same error message - Wkdev SDK: gst-play-1.0 - 1.26.1 - Same error message - Ubuntu 24.04: gst-play-1.0 - 1.24.1 - Plays normally
Attachments
Lauro Moura
Comment 1 2025-05-13 13:20:21 PDT
And while 1.26.1 gst-discoverer-1.0 is able to extract information about the streams, it also shows the same error message. gst-discoverer output: An error was encountered while discovering the file No valid frames decoded before end of stream Properties: Duration: 0:00:05.038000000 Seekable: yes Live: no container #0: WebM video #1: VP8 Stream ID: c6ec7f15f6ce1f66cc108706167b84bc1e435a51f866ba4faf67a014faab85f8/001:001 Width: 80 Height: 128 Depth: 24 Frame rate: 30000/1001 Pixel aspect ratio: 1/1 Interlaced: false Bitrate: 0 Max bitrate: 0 audio #2: Vorbis Stream ID: c6ec7f15f6ce1f66cc108706167b84bc1e435a51f866ba4faf67a014faab85f8/002:002 Language: en Channels: 2 (front-left, front-right) Sample rate: 48000 Depth: 32 Bitrate: 0 Max bitrate: 0 For comparison, fprobe output: Input #0, matroska,webm, from 'LayoutTests/webgl/resources/webgl_test_files/resources/red-green.webmvp8.webm': Metadata: encoder : Lavf52.68.0 Duration: 00:00:05.04, start: 0.067000, bitrate: 17 kb/s Stream #0:0(eng): Video: vp8, yuv420p(progressive), 80x128, SAR 1:1 DAR 5:8, 29.97 fps, 29.97 tbr, 1k tbn (default) Stream #0:1(eng): Audio: vorbis, 48000 Hz, stereo, fltp (default)
Lauro Moura
Comment 2 2025-05-13 14:33:20 PDT
Looks like it's related to this GStreamer issue: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4067
Philippe Normand
Comment 3 2025-05-14 02:53:58 PDT
So, the audio tracks without samples were removed in https://bugs.webkit.org/show_bug.cgi?id=226078 which was then lost at the next WebGL conformance tests sync (https://github.com/WebKit/WebKit/commit/e890d7c23afacd25de033815741ab74f5c421aaa) because apparently the modified webm files were never upstreamed.
Philippe Normand
Comment 4 2025-05-14 03:43:44 PDT
> Ubuntu 24.04: gst-play-1.0 - 1.24.1 - Plays normally really? Here in 24.04.2, gst 1.24.2 plays the file only for half a second, the audio decoder error is emitted.
Lauro Moura
Comment 5 2025-05-14 04:18:21 PDT
(In reply to Philippe Normand from comment #4) > > Ubuntu 24.04: gst-play-1.0 - 1.24.1 - Plays normally > > really? > > Here in 24.04.2, gst 1.24.2 plays the file only for half a second, the audio > decoder error is emitted. Sorry, I meant 1.24.2 on my side. And indeed the error indeed also appears, but only after 5 seconds, when exiting: gst-play-1.0 LayoutTests/webgl/resources/webgl_test_files/resources/red-green.webmvp8.webm Press 'k' to see a list of keyboard shortcuts. Now playing /home/lauro/dev/WebKit/LayoutTests/webgl/resources/webgl_test_files/resources/red-green.webmvp8.webm Redistribute latency... Redistribute latency... Redistribute latency... ERROR No valid frames decoded before end of stream for file:///home/lauro/dev/WebKit/LayoutTests/webgl/resources/webgl_test_files/resources/red-green.webmvp8.webm ERROR debug information: ../gst-libs/gst/audio/gstaudiodecoder.c(2506): gst_audio_decoder_sink_eventfunc (): /GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstDecodebin3:decodebin3-0/GstVorbisDec:vorbisdec0: no valid frames found Reached end of play list.
Philippe Normand
Comment 6 2025-05-14 05:12:58 PDT
We're both correct ;) - gst-play-1.0 starting from 1.24 uses playbin3 by default - the issue doesn't happen when playbin3 is used - the issue happens when playbin is used.
Philippe Normand
Comment 7 2025-05-14 06:04:48 PDT
We'd need to switch to playbin3 and have this MR merged: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8434 and then the tests will no longer timeout. For legacy/playbin we would need a similar patch, but I'm not sure this is worth. So I'd keep this bug open until we switch to playbin3 and have the issue fixed upstream.
Lauro Moura
Comment 8 2025-07-16 07:05:52 PDT
Gardened a number of related failures in bug281932 / 297460@main
Note You need to log in before you can comment on or make changes to this bug.