Skip to content
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

Crashes loading subtitles with playbin3 or pipewire enabled #258

Open
bbhtt opened this issue May 14, 2022 · 18 comments
Open

Crashes loading subtitles with playbin3 or pipewire enabled #258

bbhtt opened this issue May 14, 2022 · 18 comments
Labels
API Issue related to the API

Comments

@bbhtt
Copy link

bbhtt commented May 14, 2022

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:

  1. Enable playbin3
  2. Open a video file, then add a subtitle (srt file) by drag and drop or using the filechooser.
  3. 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

@Rafostar
Copy link
Owner

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.

@Rafostar
Copy link
Owner

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.

@Rafostar Rafostar added the API Issue related to the API label May 14, 2022
@bbhtt
Copy link
Author

bbhtt commented May 14, 2022

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!

@bbhtt
Copy link
Author

bbhtt commented May 14, 2022

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.

image

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.

@Rafostar
Copy link
Owner

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.

@Rafostar
Copy link
Owner

@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.

@bbhtt
Copy link
Author

bbhtt commented May 14, 2022

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.

@Rafostar
Copy link
Owner

That was with 0.4.1.

Then its not new sink bug 😌 , as new sink is available (and used) only in git.

@Rafostar
Copy link
Owner

Rafostar commented May 14, 2022

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.

@bbhtt
Copy link
Author

bbhtt commented May 14, 2022

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?

@Rafostar
Copy link
Owner

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).

@bbhtt
Copy link
Author

bbhtt commented May 14, 2022

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.

Rafostar referenced this issue May 15, 2022
The first one is meant for hash tables comparisons and does not guard against NULL values (#259).
@bbhtt
Copy link
Author

bbhtt commented May 31, 2022

With 0.5.1, it doesn't crash anymore but the playback freezes in both cases (with playbin3/without) and doesn't resume.

@Rafostar
Copy link
Owner

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.

@bbhtt
Copy link
Author

bbhtt commented May 31, 2022

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

@Rafostar
Copy link
Owner

@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.

@bbhtt
Copy link
Author

bbhtt commented May 31, 2022

I don't open them at once though. I let the video play, then open it. Maybe I need to wait a bit more?

Screencast.mp4

It sometime gets stuck at the time it last played like 00:00:03 as well.

@Rafostar
Copy link
Owner

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.

@Rafostar Rafostar changed the title 0.4.1 crashes while loading subtitles with playbin3 enabled Crashes loading subtitles with playbin3 or pipewire enabled May 31, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
API Issue related to the API
Projects
None yet
Development

No branches or pull requests

2 participants