clapper
clapper copied to clipboard
Crashes loading subtitles with playbin3 or pipewire enabled
The backtrace doesn't look very useful. I built clapper with debug symbols but gdb doesn't take /usr/bin/clapper
, had to launch it through gjs under gdb...
ERROR:../gstreamer/subprojects/gst-plugins-base/gst/playback/gstplaybin3.c:2959:combiner_control_pad: assertion failed: (combine->sinkpad != NULL)
Bail out! ERROR:../gstreamer/subprojects/gst-plugins-base/gst/playback/gstplaybin3.c:2959:combiner_control_pad: assertion failed: (combine->sinkpad != NULL)
[Thread 0x7fff9eaf1640 (LWP 65961) exited]
[Thread 0x7fff9e2f0640 (LWP 65960) exited]
Thread 54 "multiqueue0:src" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fff9bdc1640 (LWP 65915)]
0x00007ffff770b36c in ?? () from /usr/lib/libc.so.6
(gdb) bt
#0 0x00007ffff770b36c in () at /usr/lib/libc.so.6
#1 0x00007ffff76bb838 in raise () at /usr/lib/libc.so.6
#2 0x00007ffff76a5535 in abort () at /usr/lib/libc.so.6
#3 0x00007ffff7d2f05e in () at /usr/lib/libglib-2.0.so.0
#4 0x00007ffff7d8a7d1 in g_assertion_message_expr () at /usr/lib/libglib-2.0.so.0
#5 0x00007fffdd4b252a in () at /usr/lib/gstreamer-1.0/libgstplayback.so
#6 0x00007ffff7cc596f in g_cclosure_marshal_VOID__OBJECTv () at /usr/lib/libgobject-2.0.so.0
#7 0x00007ffff7ce46b6 in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#8 0x00007ffff7ce4824 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#9 0x00007fffdf40a5ec in gst_element_add_pad () at /usr/lib/libgstreamer-1.0.so.0
#10 0x00007fffdd48a943 in () at /usr/lib/gstreamer-1.0/libgstplayback.so
#11 0x00007ffff7cc596f in g_cclosure_marshal_VOID__OBJECTv () at /usr/lib/libgobject-2.0.so.0
#12 0x00007ffff7ce46b6 in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#13 0x00007ffff7ce4824 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#14 0x00007fffdf40a5ec in gst_element_add_pad () at /usr/lib/libgstreamer-1.0.so.0
#15 0x00007fffdd481804 in () at /usr/lib/gstreamer-1.0/libgstplayback.so
#16 0x00007fffdd484e3f in () at /usr/lib/gstreamer-1.0/libgstplayback.so
#17 0x00007fffdf42ddef in () at /usr/lib/libgstreamer-1.0.so.0
#18 0x00007ffff7d4b2a6 in g_hook_list_marshal () at /usr/lib/libglib-2.0.so.0
#19 0x00007fffdf42e3a6 in () at /usr/lib/libgstreamer-1.0.so.0
#20 0x00007fffdf431da6 in () at /usr/lib/libgstreamer-1.0.so.0
#21 0x00007fffdf432369 in () at /usr/lib/libgstreamer-1.0.so.0
#22 0x00007fffdf427f21 in () at /usr/lib/libgstreamer-1.0.so.0
#23 0x00007fffdf43556b in gst_pad_push_event () at /usr/lib/libgstreamer-1.0.so.0
#24 0x00007fffa36d9e31 in () at /usr/lib/gstreamer-1.0/libgstcoreelements.so
#25 0x00007fffdf45baf1 in () at /usr/lib/libgstreamer-1.0.so.0
#26 0x00007ffff7d99de7 in () at /usr/lib/libglib-2.0.so.0
#27 0x00007ffff7d96da5 in () at /usr/lib/libglib-2.0.so.0
#28 0x00007ffff770954d in () at /usr/lib/libc.so.6
#29 0x00007ffff778eb14 in clone () at /usr/lib/libc.so.6
Here is another:
Thread 11 "GstClapper" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffddcfe640 (LWP 66330)]
0x00007ffff772c68e in ?? () from /usr/lib/libc.so.6
(gdb) bt
#0 0x00007ffff772c68e in () at /usr/lib/libc.so.6
#1 0x00007ffff7d490fe in g_str_equal () at /usr/lib/libglib-2.0.so.0
#2 0x00007fffdf51375e in gst_clapper_subtitle_info_update () at /usr/lib/com.github.rafostar.Clapper/libgstclapper-1.0.so.0
#3 0x00007fffdf5143ed in gst_clapper_stream_info_update () at /usr/lib/com.github.rafostar.Clapper/libgstclapper-1.0.so.0
#4 0x00007fffdf514c64 in gst_clapper_stream_info_update_from_stream () at /usr/lib/com.github.rafostar.Clapper/libgstclapper-1.0.so.0
#5 0x00007fffdf514fd1 in gst_clapper_streams_info_create_from_collection ()
at /usr/lib/com.github.rafostar.Clapper/libgstclapper-1.0.so.0
#6 0x00007fffdf515751 in gst_clapper_media_info_create () at /usr/lib/com.github.rafostar.Clapper/libgstclapper-1.0.so.0
#7 0x00007fffdf512e53 in update_stream_collection () at /usr/lib/com.github.rafostar.Clapper/libgstclapper-1.0.so.0
#8 0x00007fffdf512f18 in stream_collection_cb () at /usr/lib/com.github.rafostar.Clapper/libgstclapper-1.0.so.0
#9 0x00007ffff7ccba70 in g_cclosure_marshal_VOID__BOXEDv () at /usr/lib/libgobject-2.0.so.0
#10 0x00007ffff7ce46b6 in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#11 0x00007ffff7ce4824 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#12 0x00007fffdf3f7a30 in gst_bus_async_signal_func () at /usr/lib/libgstreamer-1.0.so.0
#13 0x00007fffdf3f8364 in () at /usr/lib/libgstreamer-1.0.so.0
#14 0x00007ffff7d67163 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#15 0x00007ffff7dbd9e9 in () at /usr/lib/libglib-2.0.so.0
#16 0x00007ffff7d666a3 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0
#17 0x00007fffdf51724d in gst_clapper_main () at /usr/lib/com.github.rafostar.Clapper/libgstclapper-1.0.so.0
#18 0x00007ffff7d96da5 in () at /usr/lib/libglib-2.0.so.0
#19 0x00007ffff770954d in () at /usr/lib/libc.so.6
#20 0x00007ffff778eb14 in clone () at /usr/lib/libc.so.6
Steps to reproduce:
- Enable playbin3
- Open a video file, then add a subtitle (srt file) by drag and drop or using the filechooser.
- Clapper freezes for a while, then crashes.
With playbin3 disabled it doesn't crash but the playback freezes and sometimes doesn't load.
I couldn't reproduce with current git master under gdb. So not sure if this is fixed already.
System:
Arch Linux GNOME 42 Wayland gjs 1.72.0 Clapper 0.4.1
Enable playbin3
playbin3
is known to have all sort of problems with subtitles. This is the main reason I have it disabled by default and marked as experimental option. Those are mostly GStreamer issues.
With playbin2 disabled it doesn't crash but the playback freezes and sometimes doesn't load.
ATM the borrowed GStreamer API that is used internally (part of the player), has a lot of racy issues some of them are subtitles loading related. I do plan to write my own one instead and make it public in near future. It will be easier then to pinpoint where the issues are happening and fix most of these along the way.
I couldn't reproduce with current git master under gdb. So not sure if this is fixed already.
Currently the underlying stuff in Clapper is ongoing a major rewrite. I do plan to split this project into 3 independent things that are compiled and installed separately (GStreamer video sink, a playback API, GTK4 UI that uses the first two). Right now I finished the video sink recently. It works differently and doesn't renegotiate/unlink sinkpads, possibly avoiding this bug.
Also worth mentioning here is that old VAAPI GStreamer plugins hit all sort of issues (including displaying of subtitles). Please make sure you have GStreamer VA plugins installed (new and improved VAAPI implementation). Arch linux ships them in a separate package: gst-plugin-va.
So first crash you hit is playbin3 related. Might be worked around/fixed by using player with the new sink. Needs some testing. Second is a bug that seems easy enough to fix that it should be worth fixing still in the old API.
Enable playbin3
playbin3
is known to have all sort of problems with subtitles. This is the main reason I have it disabled by default and marked as experimental option. Those are mostly GStreamer issues.
Ah thank you. I enabled it due to the freezing issue with playbin2 when loading subtitles. I'll keep it disabled then.
With playbin2 disabled it doesn't crash but the playback freezes and sometimes doesn't load.
ATM the borrowed GStreamer API that is used internally (part of the player), has a lot of racy issues some of them are subtitles loading related. I do plan to write my own one instead and make it public in near future. It will be easier then to pinpoint where the issues are happening and fix most of these along the way.
I couldn't reproduce with current git master under gdb. So not sure if this is fixed already.
Currently the underlying stuff in Clapper is ongoing a major rewrite. I do plan to split this project into 3 independent things that are compiled and installed separately (GStreamer video sink, a playback API, GTK4 UI that uses the first two). Right now I finished the video sink recently. It works differently and doesn't renegotiate/unlink sinkpads, possibly avoiding this bug.
Thanks for the explanation.
Also worth mentioning here is that old VAAPI GStreamer plugins hit all sort of issues (including displaying of subtitles). Please make sure you have GStreamer VA plugins installed (new and improved VAAPI implementation). Arch linux ships them in a separate package: gst-plugin-va.
Thank you. I read the wiki entry and was wondering whether a separate package was needed for that. I will ask the AUR maintainer to add it as optdepends, it only has the gstreamer-vaapi package https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=clapper#n49 I'll try va and see if there are any improvements.
So first crash you hit is playbin3 related. Might be worked around/fixed by using player with the new sink. Needs some testing. Second is a bug that seems easy enough to fix that it should be worth fixing still in the old API.
Thanks!
On an unrelated note, looks like the newer plugins (vah264dec) are having issues for me. The video is tainted green but the older ones seem to work fine. But the issue is still present with playbn2/3.
Could be this issue https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1513 but unlike the report it's the entire video for me.
If I do a gst-discoverer-1.0 file.mp4
then I get
Analyzing file:///home/...
corrupted double-linked list
Aborted (core dumped)
Not sure if this is related, I'll see if I can report both issues.
I read the wiki entry and was wondering whether a separate package was needed for that.
I updated the additional GStreamer elements. So this plugin is now mentioned in install commands.
The video is tainted green
Using the git Clapper version with vah264dec
, please check if problem appears with both old and new video sink:
CLAPPER_USE_LEGACY_SINK=1 clapper
With this env, it should print a warning that old sink is being used.
@bbhtt
Please Test with command from above.
If the problem appears with both old and new sink, then its most likely a va
bug, otherwise (only with new sink) then its my bug, please then open a separate issue for it here.
If the problem appears with both old and new sink, then its most likely a
va
bug, otherwise (only with new sink) then its my bug, please then open a separate issue for it here.
Ok, checking with git now. That was with 0.4.1.
That was with 0.4.1.
Then its not new sink bug 😌 , as new sink is available (and used) only in git.
New sink is fully usable without the player, so something like this might be easier for debugging:
GST_PLUGIN_FEATURE_RANK=vah264dec:300 gst-play-1.0 --videosink=clappersink "/path/to/video.mp4"
If this still happens even in new sink (probably), please open this as an VA issue on GStreamer gitlab - they now use a single repo. Worth mentioning that this works fine with older VAAPI.
This is a different issue then subtitles, so this one issue here should stay open.
New sink is fully usable without the player, so something like this might be easier for debugging:
GST_PLUGIN_FEATURE_RANK=vah264dec:300 gst-play-1.0 --videosink=clappersink "/path/to/video.mp4"
If this still happens even in new sink (probably), please open this as an VA issue on GStreamer gitlab - they now use a single repo. Worth mentioning that this works fine with older VAAPI.
This is a different issue then subtitles, so this one issue here should stay open.
Thanks. With that command, the issue occurs with clapper-git; 0.4.1 seems to work fine when launched through that. So I guess I should report it?
clappersink
does not exists in 0.4.1 😄. This is something new that I just finished making few days ago.
When it does not exists gst-play-1.0
will use default (X Window) sink. Try reproducing with --videosink=glimagesink
, they might be more willing to investigate if the issue is reproduceable with their own stuff and not some 3rd party app like mine (which they probably never heard of).
clappersink
does not exists in 0.4.1 smile. This is something new that I just finished making few days ago.When it does not exists
gst-play-1.0
will use default (X Window) sink. Try reproducing with--videosink=glimagesink
, they might be more willing to investigate if the issue is reproduceable with their own stuff and not some 3rd party app like mine (which they probably never heard of).
Yep same issue with glimagesink
. I'll report it then, thanks for the help.
With 0.5.1, it doesn't crash anymore but the playback freezes in both cases (with playbin3/without) and doesn't resume.
I am not closing this for a reason. I only fixed the cause of the crash with playbin3 for 0.5.0. Still have plans to redo the whole API for 0.6.0.
playback freezes in both cases (with playbin3/without) and doesn't resume
Any errors/warnings printed? Check with GST_DEBUG=3
.
Do you need the entire log? It's quite big, these are the last few lines.
I think enabling Pipewire has a part in the freeze; since below there cases freezes playback. It only works with Playbin 2 and no pipewire.
Playbin3 & Pipwire
0:00:24.236738857 50815 0x7f1314061120 ERROR Clapper gstclapper.c:1293:error_cb:<clapperplayer0> ERROR: from element /GstPlayBin3:playbin3/GstPlaySink:playsink: Can't play a text file without video or visualizations.
0:00:24.236819538 50815 0x7f1314061120 ERROR Clapper gstclapper.c:1295:error_cb:<clapperplayer0> Additional debug info: ../gstreamer/subprojects/gst-plugins-base/gst/playback/gstplaysink.c(3287): gst_play_sink_do_reconfigure (): /GstPlayBin3:playbin3/GstPlaySink:playsink:
Have text pad but no video pad or visualizations
0:00:24.236888984 50815 0x7f1314061120 ERROR Clapper gstclapper.c:1169:emit_error:<clapperplayer0> Error: Error from element /GstPlayBin3:playbin3/GstPlaySink:playsink: The stream is in the wrong format.
Can't play a text file without video or visualizations.
../gstreamer/subprojects/gst-plugins-base/gst/playback/gstplaysink.c(3287): gst_play_sink_do_reconfigure (): /GstPlayBin3:playbin3/GstPlaySink:playsink:
Have text pad but no video pad or visualizations (gst-clapper-error-quark, 0)
(com.github.rafostar.Clapper:50815): Clapper-CRITICAL **: 13:34:32.555: Error from element /GstPlayBin3:playbin3/GstPlaySink:playsink: The stream is in the wrong format.
Can't play a text file without video or visualizations.
../gstreamer/subprojects/gst-plugins-base/gst/playback/gstplaysink.c(3287): gst_play_sink_do_reconfigure (): /GstPlayBin3:playbin3/GstPlaySink:playsink:
Have text pad but no video pad or visualizations
0:00:24.247733901 50815 0x559f37602c00 WARN qtdemux qtdemux.c:3121:qtdemux_parse_trex:<qtdemux1> failed to find fragment defaults for stream 2
0:00:24.260118660 50815 0x7f1314061120 FIXME playbin3 gstplaybin3.c:3239:reconfigure_output:<playbin3> Release combiner
Playbin2 & Pipewire
0:00:13.695340194 51055 0x7f3280072980 WARN basesrc gstbasesrc.c:3688:gst_base_src_start_complete:<source> pad not activated yet
0:00:13.695893369 51055 0x7f3280072980 WARN basesrc gstbasesrc.c:3688:gst_base_src_start_complete:<source> pad not activated yet
0:00:13.696570422 51055 0x7f3280072980 WARN basesrc gstbasesrc.c:3688:gst_base_src_start_complete:<source> pad not activated yet
0:00:13.697629236 51055 0x7f3280072980 WARN basesrc gstbasesrc.c:3688:gst_base_src_start_complete:<source> pad not activated yet
0:00:13.730991282 51055 0x5571608d4000 WARN qtdemux qtdemux_types.c:249:qtdemux_type_get: unknown QuickTime node type sgpd
0:00:13.731054222 51055 0x5571608d4000 WARN qtdemux qtdemux_types.c:249:qtdemux_type_get: unknown QuickTime node type sbgp
0:00:13.731150065 51055 0x5571608d4000 WARN qtdemux qtdemux.c:3121:qtdemux_parse_trex:<qtdemux1> failed to find fragment defaults for stream 1
0:00:13.736833439 51055 0x5571608d4000 WARN qtdemux qtdemux.c:3121:qtdemux_parse_trex:<qtdemux1> failed to find fragment defaults for stream 2
0:00:13.821965163 51055 0x557161b1e920 WARN vaapifilter gstvaapifilter.c:2393:gst_vaapi_filter_set_colorimetry_unlocked:<vaapifilter3> driver does not support 'bt709' input colorimetry. vpp may fail or produce unexpected results.
0:00:13.822014861 51055 0x557161b1e920 WARN vaapifilter gstvaapifilter.c:2403:gst_vaapi_filter_set_colorimetry_unlocked:<vaapifilter3> driver does not support 'sRGB' output colorimetry. vpp may fail or produce unexpected results.
0:00:13.840445244 51055 0x7f3254007700 WARN streamsynchronizer gststreamsynchronizer.c:557:gst_stream_synchronizer_sink_event:<streamsynchronizer0:sink_2> Non-TIME segment: bytes
0:00:13.876746445 51055 0x5571608c40c0 WARN pipewirepool gstpipewirepool.c:184:acquire_buffer: queue empty
0:00:13.898439533 51055 0x5571608c40c0 WARN pipewirepool gstpipewirepool.c:184:acquire_buffer: queue empty
(com.github.rafostar.Clapper:51055): GLib-GObject-WARNING **: 13:37:25.602: instance with invalid (NULL) class pointer
(com.github.rafostar.Clapper:51055): GLib-GObject-CRITICAL **: 13:37:25.602: g_signal_handlers_disconnect_matched: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(com.github.rafostar.Clapper:51055): GLib-GObject-WARNING **: 13:37:25.602: instance with invalid (NULL) class pointer
(com.github.rafostar.Clapper:51055): GLib-GObject-CRITICAL **: 13:37:25.602: g_signal_handlers_disconnect_matched: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(com.github.rafostar.Clapper:51055): GLib-GObject-WARNING **: 13:37:25.602: instance with invalid (NULL) class pointer
(com.github.rafostar.Clapper:51055): GLib-GObject-CRITICAL **: 13:37:25.602: g_signal_handlers_disconnect_matched: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(com.github.rafostar.Clapper:51055): GLib-GObject-WARNING **: 13:37:25.602: instance with invalid (NULL) class pointer
(com.github.rafostar.Clapper:51055): GLib-GObject-CRITICAL **: 13:37:25.602: g_signal_handlers_disconnect_matched: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
Playbin 3 without Pipewire:
0:00:13.605175103 51673 0x7f4a600785e0 FIXME playbin3 gstplaybin3.c:3239:reconfigure_output:<playbin3> Release combiner
0:00:13.605378456 51673 0x7f4a600785e0 FIXME playbin3 gstplaybin3.c:3239:reconfigure_output:<playbin3> Release combiner
0:00:13.638953239 51673 0x7f4a600785e0 WARN basesrc gstbasesrc.c:3688:gst_base_src_start_complete:<filesrc1> pad not activated yet
0:00:13.639608009 51673 0x7f4a600785e0 WARN basesrc gstbasesrc.c:3688:gst_base_src_start_complete:<filesrc1> pad not activated yet
0:00:13.648477860 51673 0x7f4a600785e0 WARN basesrc gstbasesrc.c:3688:gst_base_src_start_complete:<filesrc2> pad not activated yet
0:00:13.649119160 51673 0x7f4a600785e0 WARN basesrc gstbasesrc.c:3688:gst_base_src_start_complete:<filesrc2> pad not activated yet
0:00:13.662368547 51673 0x7f4a4404c920 WARN qtdemux qtdemux_types.c:249:qtdemux_type_get: unknown QuickTime node type sgpd
0:00:13.666282379 51673 0x7f4a4404c920 WARN qtdemux qtdemux_types.c:249:qtdemux_type_get: unknown QuickTime node type sbgp
0:00:13.666414603 51673 0x7f4a4404c920 WARN qtdemux qtdemux.c:3121:qtdemux_parse_trex:<qtdemux1> failed to find fragment defaults for stream 1
0:00:13.671343685 51673 0x55f6359e0ea0 FIXME decodebin3 gstdecodebin3.c:1143:update_requested_selection:<decodebin3-1> Implement EXPOSE_ALL_MODE
0:00:13.672154383 51673 0x55f6359e0ea0 FIXME decodebin3 gstdecodebin3-parse.c:433:unblock_pending_input:<decodebin3-1> Re-use existing input streams if/when possible
0:00:13.676365125 51673 0x55f6359e0f00 FIXME decodebin3 gstdecodebin3.c:1648:get_output_for_slot:<decodebin3-1> emit autoplug-continue
0:00:13.676410552 51673 0x55f6359e0f00 FIXME decodebin3 gstdecodebin3.c:1651:get_output_for_slot:<decodebin3-1> Handle EXPOSE_ALL_MODE
0:00:13.676854890 51673 0x55f6359e0f00 WARN playsink gstplaysink.c:3287:gst_play_sink_do_reconfigure:<playsink> error: Can't play a text file without video or visualizations.
0:00:13.676908904 51673 0x55f6359e0f00 WARN playsink gstplaysink.c:3287:gst_play_sink_do_reconfigure:<playsink> error: Have text pad but no video pad or visualizations
0:00:13.677217608 51673 0x55f6359e0ea0 WARN typefind gsttypefindelement.c:1257:gst_type_find_element_loop:<typefind> error: Internal data stream error.
0:00:13.677272787 51673 0x55f6359e0ea0 WARN typefind gsttypefindelement.c:1257:gst_type_find_element_loop:<typefind> error: streaming stopped, reason not-linked (-1)
0:00:13.677336845 51673 0x7f4a600785e0 ERROR Clapper gstclapper.c:1293:error_cb:<clapperplayer0> ERROR: from element /GstPlayBin3:playbin3/GstPlaySink:playsink: Can't play a text file without video or visualizations.
0:00:13.677365485 51673 0x7f4a600785e0 ERROR Clapper gstclapper.c:1295:error_cb:<clapperplayer0> Additional debug info: ../gstreamer/subprojects/gst-plugins-base/gst/playback/gstplaysink.c(3287): gst_play_sink_do_reconfigure (): /GstPlayBin3:playbin3/GstPlaySink:playsink:
Have text pad but no video pad or visualizations
0:00:13.677406539 51673 0x7f4a600785e0 ERROR Clapper gstclapper.c:1169:emit_error:<clapperplayer0> Error: Error from element /GstPlayBin3:playbin3/GstPlaySink:playsink: The stream is in the wrong format.
Can't play a text file without video or visualizations.
../gstreamer/subprojects/gst-plugins-base/gst/playback/gstplaysink.c(3287): gst_play_sink_do_reconfigure (): /GstPlayBin3:playbin3/GstPlaySink:playsink:
Have text pad but no video pad or visualizations (gst-clapper-error-quark, 0)
0:00:13.679587592 51673 0x7f4a4404c920 WARN qtdemux qtdemux.c:3121:qtdemux_parse_trex:<qtdemux1> failed to find fragment defaults for stream 2
0:00:13.688437426 51673 0x55f6359e0ea0 FIXME decodebin3 gstdecodebin3-parse.c:148:check_all_streams_for_eos:<multiqueue1:sink_0> Remove input stream
(com.github.rafostar.Clapper:51673): Clapper-CRITICAL **: 13:39:57.601: Error from element /GstPlayBin3:playbin3/GstPlaySink:playsink: The stream is in the wrong format.
Can't play a text file without video or visualizations.
../gstreamer/subprojects/gst-plugins-base/gst/playback/gstplaysink.c(3287): gst_play_sink_do_reconfigure (): /GstPlayBin3:playbin3/GstPlaySink:playsink:
Have text pad but no video pad or visualizations
0:00:13.706267554 51673 0x7f4a600785e0 FIXME playbin3 gstplaybin3.c:3239:reconfigure_output:<playbin3> Release combiner
@bbhtt
How do you open subtitle file? Right now I would go with opening a video then once video plays open subtitle file. Also experimental options like playbin3
and pipewiresink
are marked as experimental for a reason. I myself have couple of issues reported against them, waiting to be fixed before we can treat them as stable.
The logs indicate the racy problem of opening video + subtitles at once. I.e. should be avoidable to some extend by opening video first and then subtitles file. Otherwise what you are hitting here is a racy issue of opening both at once I have scheduled fixing for Clapper 0.6.0 as part of major API rewrite I mentioned earlier. 0.5.0 focused on introducing new clappersink
while for next version I hope to make my own player API that does not have all this racy behaviours in many places.
I don't open them at once though. I let the video play, then open it. Maybe I need to wait a bit more?
https://user-images.githubusercontent.com/62639087/171130854-aacbf311-0938-4e07-8b2d-c13405132b42.mp4
It sometime gets stuck at the time it last played like 00:00:03 as well.
It only works with Playbin 2 and no pipewire.
Currently I recommend using this combination anyway (no experimental options). Once the Clapper API rewrite happens, it will be easier to pinpoint the issue. Currently I get a feeling that its a mix of different issues combined causing this.