clapper icon indicating copy to clipboard operation
clapper copied to clipboard

Clapper (installed via system package) crash on webm playback

Open jeffshee opened this issue 7 months ago • 7 comments

Hi! =)

Summary: Clapper crashes with a GStreamer-GL error when attempting to play .webm files. The issue does not occur with the Flatpak version. It seems related to the recent change in GTK4 GL renderer (similar issue: #541).

Observed Output:

(clapper:17386): Gsk-WARNING **: 16:56:20.381: The old GL renderer has been removed. Try GSK_RENDERER=help

(clapper:17386): GStreamer-CRITICAL **: 16:56:30.688: gst_caps_get_structure: assertion 'index < GST_CAPS_LEN (caps)' failed

(clapper:17386): GStreamer-Video-CRITICAL **: 16:56:30.688: gst_video_info_from_caps: assertion 'gst_caps_is_fixed (caps)' failed
**
GStreamer-GL:ERROR:../gst-libs/gst/gl/gstglcolorconvert.c:1411:_gst_gl_color_convert_set_caps_unlocked: code should not be reached
Bail out! GStreamer-GL:ERROR:../gst-libs/gst/gl/gstglcolorconvert.c:1411:_gst_gl_color_convert_set_caps_unlocked: code should not be reached
[1]    17386 IOT instruction (core dumped)  clapper

Additional Information:

  • gst-play-1.0 plays the same .webm file without any issue

Environment:

  • OS: Fedora Linux 42 (Workstation Edition) x86_64
  • Clapper version: 0.8.0 (installed via system package)
  • GTK4 version: 4.18.5
  • GPU 1: NVIDIA GeForce RTX 5070 Ti [Discrete]
  • GPU 2: AMD Radeon Graphics [Integrated]

jeffshee avatar Jun 10 '25 08:06 jeffshee

Hi 👋

Does this issue also happen if you install from my repo instead?

Rafostar avatar Jun 10 '25 20:06 Rafostar

Yes, the issue also happens when using the 0.9.0 from your repo.

➜  ~ clapper

(clapper:6456): Gsk-WARNING **: 23:37:41.267: The old GL renderer has been removed. Try GSK_RENDERER=help

(clapper:6456): GStreamer-CRITICAL **: 23:37:43.501: gst_caps_get_structure: assertion 'index < GST_CAPS_LEN (caps)' failed

(clapper:6456): GStreamer-Video-CRITICAL **: 23:37:43.501: gst_video_info_from_caps: assertion 'gst_caps_is_fixed (caps)' failed
**
GStreamer-GL:ERROR:../gst-libs/gst/gl/gstglcolorconvert.c:1411:_gst_gl_color_convert_set_caps_unlocked: code should not be reached
Bail out! GStreamer-GL:ERROR:../gst-libs/gst/gl/gstglcolorconvert.c:1411:_gst_gl_color_convert_set_caps_unlocked: code should not be reached
[1]    6456 IOT instruction (core dumped)  clapper
➜  ~ rpm -qa | grep clapper
libclapper-0_0-0-0.9.0+git.62~0f92901-25.4.x86_64
libclapper-gtk-0_0-0-0.9.0+git.62~0f92901-25.4.x86_64
clapper-0.9.0+git.62~0f92901-25.4.x86_64

jeffshee avatar Jun 11 '25 14:06 jeffshee

Please share output of:

GST_DEBUG_NO_COLOR=1 GST_DEBUG=*clapper*er:7,1 clapper

Rafostar avatar Jun 11 '25 15:06 Rafostar

Here is the output: log.txt

jeffshee avatar Jun 11 '25 18:06 jeffshee

Lets try this:

mkdir /tmp/clapper_test
cp /usr/lib64/clapper-0.0/gst/plugin/importers/libgstclapperglimporter.so /tmp/clapper_test/
GST_DEBUG_NO_COLOR=1 GST_DEBUG=*clapper*er:7,1 CLAPPER_SINK_IMPORTER_PATH="/tmp/clapper_test" clapper

Rafostar avatar Jun 11 '25 19:06 Rafostar

Hi, this is working!

mkdir /tmp/clapper_test
cp /usr/lib64/clapper-0.0/gst/plugin/importers/libgstclapperglimporter.so /tmp/clapper_test/
GST_DEBUG_NO_COLOR=1 GST_DEBUG=*clapper*er:7,1 CLAPPER_SINK_IMPORTER_PATH="/tmp/clapper_test" clapper

log2.txt

jeffshee avatar Jun 13 '25 17:06 jeffshee

This is kinda breaking change on the GStreamer side of things. Recent GStreamer version seems to fail due to missing DRM modifier, where previously this was allowed after they introduced these modifeiers in CAPS. They added new APIs to extract modifiers, left the old one that is used here (worked without modifiers) to negotiate format with sink, but considering they now fail without them, their older API became simply useless 😞 .

One way would be implementing new GStreamer functionalities here, but since the sink is on its way to be rewritten anyway, this does not seem to be worth still experimenting (adding lots of new stuff) to the old basically deprecated one. Its much better to use that time/effort to work on the new sink instead.

Currently my workaround recommendation for systems with GStreamer 1.26+ is to simply build Clapper with -Dgluploader=disabled meson option. With GStreamer 1.24+ there shoulkd be no downsides in doing so.

Rafostar avatar Jun 19 '25 10:06 Rafostar