GStreamer issueshttps://gitlab.freedesktop.org/groups/gstreamer/-/issues2024-03-18T14:30:31Zhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3390uridecodebin3: Plays the same redirected stream twice2024-03-18T14:30:31ZPhilippe Normanduridecodebin3: Plays the same redirected stream twicePlaying `subprojects/gst-integration-testsuites/medias/defaults/mp4/redirect.mp4` with playbin3, the redirected asset plays twice. It seems uridecodebin3 performs the instant-switch twice.Playing `subprojects/gst-integration-testsuites/medias/defaults/mp4/redirect.mp4` with playbin3, the redirected asset plays twice. It seems uridecodebin3 performs the instant-switch twice.https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/517webrtcsink: libsoup GType assertions2024-03-14T11:50:43ZGuillaume Desmotteswebrtcsink: libsoup GType assertionsTo reproduce:
- Setup the signaler and `gstwebrtc-api` frontend as explained in the `README`
- `gst-launch-1.0 uridecodebin3 uri=https://test-streams.mux.dev/x36xhzz/url_6/193039199_mp4_h264_aac_hq_7.m3u8 ! video/x-raw ! webrtcsink meta=...To reproduce:
- Setup the signaler and `gstwebrtc-api` frontend as explained in the `README`
- `gst-launch-1.0 uridecodebin3 uri=https://test-streams.mux.dev/x36xhzz/url_6/193039199_mp4_h264_aac_hq_7.m3u8 ! video/x-raw ! webrtcsink meta="meta,name=gst-stream"`
- In the web frontend try expanding the remote stream
Not sure what's going on exactly. Are we trying to re-register `libsoup` types?
```
(gst-launch-1.0:379077): GLib-GObject-CRITICAL **: 12:08:04.208: g_boxed_type_register_static: assertion 'g_type_from_name (name) == 0' failed
#0 g_logv (log_domain=0x7ffff7cbd037 "GLib-GObject", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=args@entry=0x7fff9e3ff5a0) at ../glib/gmessages.c:1433
#1 0x00007ffff7d3a0f3 in g_log (log_domain=log_domain@entry=0x7ffff7cbd037 "GLib-GObject", log_level=log_level@entry=G_LOG_LEVEL_CRITICAL, format=format@entry=0x7ffff7d96756 "%s: assertion '%s' failed") at ../glib/gmessages.c:1471
#2 0x00007ffff7d3b77d in g_return_if_fail_warning (log_domain=log_domain@entry=0x7ffff7cbd037 "GLib-GObject", pretty_function=pretty_function@entry=0x7ffff7cc1be0 <__func__.8.lto_priv.2> "g_boxed_type_register_static", expression=expression@entry=0x7ffff7cbd328 "g_type_from_name (name) == 0") at ../glib/gmessages.c:2959
#3 0x00007ffff7c92252 in g_boxed_type_register_static (name=0x7fffe81af900 "SoupMessageHeaders", boxed_copy=boxed_copy@entry=0x7fffb9cb1460 <soup_message_headers_copy>, boxed_free=boxed_free@entry=0x7fffb9cb4270 <soup_message_headers_free>) at ../gobject/gboxed.c:329
#4 0x00007fffb9cb153a in soup_message_headers_get_type_once () at ../libsoup/soup-message-headers.c:115
#5 0x00007fffb9cb4175 in soup_message_headers_get_type () at ../libsoup/soup-message-headers.c:115
#6 0x00007fffc401b9a5 in gssdp_client_class_init (klass=<optimized out>) at ../libgssdp/gssdp-client.c:719
#7 gssdp_client_class_intern_init (klass=<optimized out>) at ../libgssdp/gssdp-client.c:97
#8 0x00007ffff7cb769b in type_class_init_Wm (pclass=<optimized out>, node=<optimized out>) at ../gobject/gtype.c:2299
#9 g_type_class_ref (type=<optimized out>) at ../gobject/gtype.c:3014
#10 0x00007ffff7cb784d in g_type_class_ref (type=<optimized out>) at ../gobject/gtype.c:3006
#11 0x00007ffff7ca1229 in g_object_new_valist (object_type=object_type@entry=0x7fff2c0ed250 [GUPnPContext/GSSDPClient], first_property_name=first_property_name@entry=0x7fffb9d3f3db "interface", var_args=var_args@entry=0x7fff9e3ffbf0) at ../gobject/gobject.c:2499
#12 0x00007fffe8280173 in g_initable_new_valist (object_type=0x7fff2c0ed250 [GUPnPContext/GSSDPClient], first_property_name=0x7fffb9d3f3db "interface", var_args=var_args@entry=0x7fff9e3ffbf0, cancellable=cancellable@entry=0x0, error=error@entry=0x7fff9e3ffcf0) at ../gio/ginitable.c:246
#13 0x00007fffe828027d in g_initable_new (object_type=<optimized out>, cancellable=cancellable@entry=0x0, error=error@entry=0x7fff9e3ffcf0, first_property_name=first_property_name@entry=0x7fffb9d3f3db "interface") at ../gio/ginitable.c:164
#14 0x00007fffb9d3c5d0 in create_loopback_context (data=data@entry=0x7fff2c0dd1f0) at ../libgupnp/gupnp-network-manager.c:192
#15 0x00007ffff7d30c72 in g_idle_dispatch (source=0x7fff2c0f09c0, callback=0x7fffb9d3c550 <create_loopback_context>, user_data=0x7fff2c0dd1f0) at ../glib/gmain.c:6126
#16 0x00007ffff7d31c7f in g_main_dispatch (context=0x7fff2c035830) at ../glib/gmain.c:3454
#17 g_main_context_dispatch (context=0x7fff2c035830) at ../glib/gmain.c:4172
#18 0x00007ffff7d88178 in g_main_context_iterate.constprop.0 (context=0x7fff2c035830, block=1, dispatch=1, self=<optimized out>) at ../glib/gmain.c:4248
#19 0x00007ffff7d3124f in g_main_loop_run (loop=0x7fff18000b70) at ../glib/gmain.c:4448
#20 0x00007fffc402f812 in thread_func (dat=0x7fff3c04aa60) at ../libgupnp-igd/gupnp-simple-igd-thread.c:301
#21 0x00007ffff7d60f22 in g_thread_proxy (data=0x7fffcc013300) at ../glib/gthread.c:831
#22 0x00007ffff7b2919d in start_thread (arg=<optimized out>) at pthread_create.c:442
#23 0x00007ffff7baac60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
```https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3389gst-play/gstplaybin3: assertion failed: (combine->sinkpad == NULL) in reconfi...2024-03-14T11:16:13ZNaglis Jonaitisgst-play/gstplaybin3: assertion failed: (combine->sinkpad == NULL) in reconfigure_output### Describe your issue
`gst-play-1.0` crashes due to [assertion error in `reconfigure_output` ](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/1.24.0/subprojects/gst-plugins-base/gst/playback/gstplaybin3.c#L2622)after failin...### Describe your issue
`gst-play-1.0` crashes due to [assertion error in `reconfigure_output` ](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/1.24.0/subprojects/gst-plugins-base/gst/playback/gstplaybin3.c#L2622)after failing to play an invalid AAC file.
#### Expected Behavior
Error about invalid file is reported, but the player does not crash, playback continues on the next file.
#### Observed Behavior
#### Setup
- **Operating System:** Arch Linux
- **Device:** Computer
- **GStreamer Version:** 1.24.0
- **Command line:** `gst-play-1.0 1.aac 2.mp3`
### Steps to reproduce the bug
1. open terminal
2. type `gst-play-1.0 1.aac 2.mp3` (the files are attached)
[1.aac](/uploads/99eb19deb8a8abfdc8ca3cbbaeff040b/1.aac)
[2.mp3](/uploads/3c0fbd54e6eb55973f064e27d6e31af5/2.mp3)
### How reproducible is the bug?
Every time.
### Screenshots if relevant
n/a
### Solutions you have tried
n/a
### Related non-duplicate issues
n/a
### Additional Information
<details>
<summary>Backtrace</summary>
```
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1 0x00007ffff7893393 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2 0x00007ffff78426c8 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3 0x00007ffff782a4b8 in __GI_abort () at abort.c:79
#4 0x00007ffff7b560ee in g_assertion_message
(domain=domain@entry=0x0, file=file@entry=0x7ffff7401b80 "../gstreamer/subprojects/gst-plugins-base/gst/playback/gstplaybin3.c", line=line@entry=2622, func=func@entry=0x7ffff7408eb0 <__func__.26.lto_priv.2> "reconfigure_output", message=message@entry=0x7fffd8019010 "assertion failed: (combine->sinkpad == NULL)") at ../glib/glib/gtestutils.c:3497
#5 0x00007ffff7bb7220 in g_assertion_message_expr
(domain=domain@entry=0x0, file=file@entry=0x7ffff7401b80 "../gstreamer/subprojects/gst-plugins-base/gst/playback/gstplaybin3.c", line=line@entry=2622, func=func@entry=0x7ffff7408eb0 <__func__.26.lto_priv.2> "reconfigure_output", expr=expr@entry=0x7ffff73fba8b "combine->sinkpad == NULL") at ../glib/glib/gtestutils.c:3523
#6 0x00007ffff73dd8d4 in reconfigure_output (playbin=0x55555571c210 [GstPlayBin3|playbin]) at ../gstreamer/subprojects/gst-plugins-base/gst/playback/gstplaybin3.c:2622
#7 0x00007ffff73cffcc in gst_play_bin3_handle_message (bin=0x55555571c210 [GstBin|playbin], msg=0x7fffe802d9b0) at ../gstreamer/subprojects/gst-plugins-base/gst/playback/gstplaybin3.c:2007
#8 0x00007ffff7d77a2c in bin_bus_handler (bus=<optimized out>, message=<optimized out>, bin=<optimized out>) at ../gstreamer/subprojects/gstreamer/gst/gstbin.c:3263
#9 0x00007ffff7d8eb9b in gst_bus_post (bus=0x55555571c5a0 [GstBus|bus0], message=0x7fffe802d9b0) at ../gstreamer/subprojects/gstreamer/gst/gstbus.c:358
#10 0x00007ffff7da2d6c in gst_element_post_message_default (element=element@entry=0x5555557273e0 [GstElement|uridecodebin3], message=0x7fffe802d9b0)
at ../gstreamer/subprojects/gstreamer/gst/gstelement.c:2127
#11 0x00007ffff7d81650 in gst_bin_post_message (element=0x5555557273e0 [GstElement|uridecodebin3], msg=0x7fffe802d9b0) at ../gstreamer/subprojects/gstreamer/gst/gstbin.c:2789
#12 0x00007ffff7da0799 in gst_element_post_message (element=0x5555557273e0 [GstElement|uridecodebin3], message=0x7fffe802d9b0) at ../gstreamer/subprojects/gstreamer/gst/gstelement.c:2170
#13 0x00007ffff7d77a2c in bin_bus_handler (bus=<optimized out>, message=<optimized out>, bin=<optimized out>) at ../gstreamer/subprojects/gstreamer/gst/gstbin.c:3263
#14 0x00007ffff7d8eb9b in gst_bus_post (bus=0x5555557276b0 [GstBus|bus2], message=0x7fffe802d9b0) at ../gstreamer/subprojects/gstreamer/gst/gstbus.c:358
#15 0x00007ffff7da2d6c in gst_element_post_message_default (element=element@entry=0x5555557295d0 [GstElement|decodebin3-0], message=0x7fffe802d9b0)
at ../gstreamer/subprojects/gstreamer/gst/gstelement.c:2127
#16 0x00007ffff7d81650 in gst_bin_post_message (element=0x5555557295d0 [GstElement|decodebin3-0], msg=0x7fffe802d9b0) at ../gstreamer/subprojects/gstreamer/gst/gstbin.c:2789
#17 0x00007ffff7da0799 in gst_element_post_message (element=element@entry=0x5555557295d0 [GstElement|decodebin3-0], message=message@entry=0x7fffe802d9b0)
at ../gstreamer/subprojects/gstreamer/gst/gstelement.c:2170
#18 0x00007ffff73a04da in sink_event_function (sinkpad=0x55555572a070 [GstPad|sink], dbin=0x5555557295d0 [GstDecodebin3|decodebin3-0], event=0x7fffd8018ba0)
at ../gstreamer/subprojects/gst-plugins-base/gst/playback/gstdecodebin3.c:1427
#19 0x00007ffff7dcdb46 in gst_pad_send_event_unchecked (pad=pad@entry=0x55555572a070 [GstPad|sink], event=event@entry=0x7fffd8018ba0, type=<optimized out>,
type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:5971
#20 0x00007ffff7dce1e6 in gst_pad_push_event_unchecked (pad=pad@entry=0x7fffd8017f80 [GstPad|src_1], event=0x7fffd8018ba0, type=<optimized out>,
type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:5604
#21 0x00007ffff7dce929 in push_sticky (pad=pad@entry=0x7fffd8017f80 [GstPad|src_1], ev=ev@entry=0x7ffff63ff8d0, user_data=user_data@entry=0x7ffff63ff940)
at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:4083
#22 0x00007ffff7dc2e8e in events_foreach (pad=0x7fffd8017f80 [GstPad|src_1], func=0x7ffff7dce880 <push_sticky>, user_data=0x7ffff63ff940)
at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:613
#23 0x00007ffff7dd19a0 in check_sticky (event=0x7fffd8018ba0, pad=0x7fffd8017f80 [GstPad|src_1]) at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:4142
#24 gst_pad_push_event (pad=0x7fffd8017f80 [GstPad|src_1], event=0x7fffd8018ba0) at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:5737
#25 0x00007ffff7dc8ace in event_forward_func (pad=0x7fffd8017f80 [GstPad|src_1], data=0x7ffff63ffa40) at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:3156
#26 0x00007ffff7dc884d in gst_pad_forward
(pad=pad@entry=0x7fffd8018300 [GstPad|proxypad13], forward=forward@entry=0x7ffff7dc8a10 <event_forward_func>, user_data=user_data@entry=0x7ffff63ffa40)
at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:3110
#27 0x00007ffff7dc8936 in gst_pad_event_default (pad=0x7fffd8018300 [GstPad|proxypad13], parent=<optimized out>, event=0x7fffd8018ba0) at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:3207
#28 0x00007ffff7dcdb46 in gst_pad_send_event_unchecked (pad=pad@entry=0x7fffd8018300 [GstPad|proxypad13], event=event@entry=0x7fffd8018ba0, type=<optimized out>,
type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:5971
#29 0x00007ffff7dce1e6 in gst_pad_push_event_unchecked (pad=pad@entry=0x7fffd8017bf0 [GstPad|src_0], event=0x7fffd8018ba0, type=<optimized out>,
type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:5604
#30 0x00007ffff7dce929 in push_sticky (pad=pad@entry=0x7fffd8017bf0 [GstPad|src_0], ev=ev@entry=0x7ffff63ffc50, user_data=user_data@entry=0x7ffff63ffcc0)
at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:4083
#31 0x00007ffff7dc2e8e in events_foreach (pad=0x7fffd8017bf0 [GstPad|src_0], func=0x7ffff7dce880 <push_sticky>, user_data=0x7ffff63ffcc0)
--Type <RET> for more, q to quit, c to continue without paging--c
at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:613
#32 0x00007ffff7dd19a0 in check_sticky (event=0x7fffd8018ba0, pad=0x7fffd8017bf0 [GstPad|src_0]) at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:4142
#33 gst_pad_push_event (pad=pad@entry=0x7fffd8017bf0 [GstPad|src_0], event=event@entry=0x7fffd8018ba0) at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:5737
#34 0x00007ffff7343130 in gst_single_queue_push_one (allow_drop=<synthetic pointer>, object=0x7fffd8018ba0, sq=0x7fffd8005030, mq=<optimized out>)
at ../gstreamer/subprojects/gstreamer/plugins/elements/gstmultiqueue.c:2066
#35 gst_multi_queue_loop (pad=<optimized out>) at ../gstreamer/subprojects/gstreamer/plugins/elements/gstmultiqueue.c:2345
#36 0x00007ffff7e03563 in gst_task_func (task=0x7fffd8004ec0 [GstTask|multiqueue2:src_0]) at ../gstreamer/subprojects/gstreamer/gst/gsttask.c:399
#37 0x00007ffff7bc6523 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/glib/gthreadpool.c:350
#38 0x00007ffff7bc3a45 in g_thread_proxy (data=0x7ffff0000b90) at ../glib/glib/gthread.c:831
#39 0x00007ffff789155a in start_thread (arg=<optimized out>) at pthread_create.c:447
#40 0x00007ffff790ea3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
```
</details>
<details>
<summary>Verbose output</summary>
```
Press 'k' to see a list of keyboard shortcuts.
Now playing /tmp/1.aac
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3: instant-uri = false
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstDecodebin3:decodebin3-0: caps = video/x-raw(ANY); audio/x-raw(ANY); text/x-raw(ANY); subpicture/x-dvd; subpicture/x-dvb; subpicture/x-xsub; subpicture/x-pgs; closedcaption/x-cea-608; closedcaption/x-cea-708; application/x-onvif-metadata; application/x-ssa; application/x-ass; application/x-subtitle; application/x-subtitle-sami; application/x-subtitle-tmplayer; application/x-subtitle-mpl2; application/x-subtitle-dks; application/x-subtitle-qttext; application/x-subtitle-lrc; application/x-subtitle-vtt; application/x-subtitle-avi; application/x-ogm-text
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3: uri = file:///tmp/1.aac
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0: source = "\(GstFileSrc\)\ filesrc0"
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3: current-uri = file:///tmp/1.aac
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3: current-suburi = (null)
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstTypeFindElement:typefindelement0.GstPad:src: caps = audio/mpeg, framed=(boolean)false, mpegversion=(int)4, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstTypeFindElement:typefindelement0.GstPad:src: caps = NULL
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstParseBin:parsebin0/GstTypeFindElement:typefind.GstPad:src: caps = audio/mpeg, framed=(boolean)false, mpegversion=(int)4, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstParseBin:parsebin0/GstTypeFindElement:typefind.GstPad:src: caps = NULL
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstParseBin:parsebin0/GstAacParse:aacparse0.GstPad:src: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)ssr, profile=(string)ssr, rate=(int)48000, channels=(int)2, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstParseBin:parsebin0.GstParsePad:src_0: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)ssr, profile=(string)ssr, rate=(int)48000, channels=(int)2, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstMultiQueue:multiqueue1.GstMultiQueuePad:sink_0: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)ssr, profile=(string)ssr, rate=(int)48000, channels=(int)2, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstParseBin:parsebin0.GstParsePad:src_0.GstProxyPad:proxypad2: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)ssr, profile=(string)ssr, rate=(int)48000, channels=(int)2, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstMultiQueue:multiqueue1.GstMultiQueuePad:src_0: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)ssr, profile=(string)ssr, rate=(int)48000, channels=(int)2, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0.GstGhostPad:src_0: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)ssr, profile=(string)ssr, rate=(int)48000, channels=(int)2, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstDecodebin3:decodebin3-0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)ssr, profile=(string)ssr, rate=(int)48000, channels=(int)2, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstDecodebin3:decodebin3-0/GstIdentity:identity0.GstPad:src: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)ssr, profile=(string)ssr, rate=(int)48000, channels=(int)2, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstDecodebin3:decodebin3-0/GstIdentity:identity0.GstPad:sink: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)ssr, profile=(string)ssr, rate=(int)48000, channels=(int)2, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstDecodebin3:decodebin3-0.GstGhostPad:sink: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)ssr, profile=(string)ssr, rate=(int)48000, channels=(int)2, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0.GstGhostPad:src_0.GstProxyPad:proxypad3: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)ssr, profile=(string)ssr, rate=(int)48000, channels=(int)2, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstDecodebin3:decodebin3-0/GstMultiQueue:multiqueue0.GstMultiQueuePad:sink_0: group-id = 2
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstDecodebin3:decodebin3-0/GstMultiQueue:multiqueue0.GstMultiQueuePad:sink_0: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)ssr, profile=(string)ssr, rate=(int)48000, channels=(int)2, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstDecodebin3:decodebin3-0/GstMultiQueue:multiqueue0.GstMultiQueuePad:src_0: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)ssr, profile=(string)ssr, rate=(int)48000, channels=(int)2, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstDecodebin3:decodebin3-0/GstFdkAacDec:fdkaacdec0.GstPad:sink: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)ssr, profile=(string)ssr, rate=(int)48000, channels=(int)2, stream-format=(string)adif
ERROR No valid frames decoded before end of stream for file:///tmp/1.aac
ERROR debug information: ../gstreamer/subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c(2506): gst_audio_decoder_sink_eventfunc (): /GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstDecodebin3:decodebin3-0/GstFdkAacDec:fdkaacdec0:
no valid frames found
Now playing /tmp/2.mp3
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstDecodebin3:decodebin3-0: caps = video/x-raw(ANY); audio/x-raw(ANY); text/x-raw(ANY); subpicture/x-dvd; subpicture/x-dvb; subpicture/x-xsub; subpicture/x-pgs; closedcaption/x-cea-608; closedcaption/x-cea-708; application/x-onvif-metadata; application/x-ssa; application/x-ass; application/x-subtitle; application/x-subtitle-sami; application/x-subtitle-tmplayer; application/x-subtitle-mpl2; application/x-subtitle-dks; application/x-subtitle-qttext; application/x-subtitle-lrc; application/x-subtitle-vtt; application/x-subtitle-avi; application/x-ogm-text
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0: uri = file:///tmp/2.mp3
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3: uri = file:///tmp/2.mp3
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3: current-uri = file:///tmp/2.mp3
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3: current-suburi = (null)
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0: source = "\(GstFileSrc\)\ filesrc1"
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstTypeFindElement:typefindelement1.GstPad:src: caps = audio/mpeg, mpegversion=(int)1, layer=(int)3, parsed=(boolean)false
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstTypeFindElement:typefindelement1.GstPad:src: caps = NULL
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstParseBin:parsebin1/GstTypeFindElement:typefind.GstPad:src: caps = audio/mpeg, mpegversion=(int)1, layer=(int)3, parsed=(boolean)false
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstParseBin:parsebin1/GstTypeFindElement:typefind.GstPad:src: caps = NULL
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstParseBin:parsebin1/GstMpegAudioParse:mpegaudioparse0.GstPad:src: caps = audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)1, layer=(int)3, rate=(int)44100, channels=(int)1, parsed=(boolean)true
**
ERROR:../gstreamer/subprojects/gst-plugins-base/gst/playback/gstplaybin3.c:2622:reconfigure_output: assertion failed: (combine->sinkpad == NULL)
Bail out! ERROR:../gstreamer/subprojects/gst-plugins-base/gst/playback/gstplaybin3.c:2622:reconfigure_output: assertion failed: (combine->sinkpad == NULL)
```
</details>https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3388uridecodebin3: Doesn't forward redirect messages2024-03-14T10:33:46ZPhilippe Normanduridecodebin3: Doesn't forward redirect messagesuridecodebin has a code path in its `handle_message()` that chains to the parent class to forward messages in some cases. uridecodebin3 has code to handle this too but it's not reaching application side.uridecodebin has a code path in its `handle_message()` that chains to the parent class to forward messages in some cases. uridecodebin3 has code to handle this too but it's not reaching application side.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3387Android hardware decoders in GStreamer 1.24.0 are hard-capped to 4096 pixels2024-03-14T11:49:02ZNoTuxNoBuxAndroid hardware decoders in GStreamer 1.24.0 are hard-capped to 4096 pixels### Describe your issue
The various hardware-accelerated `androidmedia` decoders all appear capped to a width and height of 4096 pixels in GStreamer 1.24.0. At first I thought this was a device limitation, but in GStreamer 1.22.6 I could...### Describe your issue
The various hardware-accelerated `androidmedia` decoders all appear capped to a width and height of 4096 pixels in GStreamer 1.24.0. At first I thought this was a device limitation, but in GStreamer 1.22.6 I could get working 7680x3840 on even h.264 on the same device (Meta Quest 2). With 1.24.0 my caps negotiation is failing due to this.
I've evaluated h.264, h.265, VP9 and AV1, and all have the same cap, which seems impossible since h.265 and AV1 are specifically geared at 8k support, so this sounds like a regression.
I've tested the following decoders, so various codecs as well as the c2qti and omxqcom decoders:
- amcviddec-c2qtiavcdecoder
- amcviddec-omxqcomvideodecoderavc
- amcviddec-c2qtihevcdecoder
- amcviddec-omxqcomvideodecoderhevc
- amcviddec-c2qtivp9decoder
- amcviddec-omxqcomvideodecodervp9
- amcviddec-c2qtiav1decoder
#### Expected Behavior
I can go to 8k, at least on h.265 and AV1.
I guess h.264 is debatable since the hardware obviously supported it (but it didn't run well, mind you), but I don't think it was ever meant for > 4k.
#### Observed Behavior
All codecs and androidmedia features are limited to 4096x4096 pixels.
#### Setup
- **Operating System:**: Android
- **Device:** Mobile (Meta Quest 2 and Meta Quest 3)
- **GStreamer Version:** 1.24.0
- **Command line:** N.a.
### Steps to reproduce the bug
Try to decode an 8k h.265 or AV1 stream on an Android device using one of the above hardware-accelerated androidmedia video decoders.
### How reproducible is the bug?
Every time.
### Solutions you have tried
As mentioned above, I've evaluated h.264, h.265, VP9 and AV1, and all have the same cap.
I could use a software decoder, but at this resolution the performance likely won't be good enough on this type of device.
### Additional Information
None.https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/issues/180green frame when playing rtsp2024-03-14T08:57:45Zzty1122ztygreen frame when playing rtspWhen I use cv2.VideoCapture to read rtsp frames by this code:
```
pipeline = "rtspsrc location=rtsp://my-url latency=20 ! rtph264depay ! h264parse ! avdec_h264 ! videoconvert ! appsink"
cap = cv2.VideoCapture(pipeline, cv2.CAP_GSTREAMER...When I use cv2.VideoCapture to read rtsp frames by this code:
```
pipeline = "rtspsrc location=rtsp://my-url latency=20 ! rtph264depay ! h264parse ! avdec_h264 ! videoconvert ! appsink"
cap = cv2.VideoCapture(pipeline, cv2.CAP_GSTREAMER)
while True:
ret, frame = cap.read()
if ret:
frame_new = cv2.resize(frame, (640, 480))
cv2.imshow('frame', frame_new)
else:
print("ret false")
break
if cv2.waitKey(1) & 0xFF == ord('q'):
break
```
Green screen frames appear from time to time,like this:
![图片1](/uploads/fdaffa9f2c1fcfc7d2c4a0cad133e041/图片1.png)
The normal frame is:
![图片2](/uploads/454f1ec59574b2ba4c259a17553aae78/图片2.png)
I wonder what caused this.Thx for helphttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3386no python gstreamer api extract h264 sei2024-03-14T07:28:59Zluohao luono python gstreamer api extract h264 seihi,I would like to extract SEI information from an H.264 stream. Can you provide a relevant Python gstreamer demo?hi,I would like to extract SEI information from an H.264 stream. Can you provide a relevant Python gstreamer demo?https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3385gstwayland public API cleanup2024-03-13T22:55:13ZDamian Hobson-Garciadamian@hobsong.comgstwayland public API cleanupSome brief discussion was had in the context of https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6133#note_2301636 about the fact that some of the functions in the gstwayland API are really only useful when called
inte...Some brief discussion was had in the context of https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6133#note_2301636 about the fact that some of the functions in the gstwayland API are really only useful when called
internally, so probably don't need to be exported as part of the (currently unstable) public API.
I'd like to try moving the API in the direction of stability, so I was hoping to have a discussion about the
scope of what an initial round of improvement would look like. I am assuming that any function defined in the
[installed headers](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/subprojects/gst-plugins-bad/gst-libs/gst/wayland/meson.build?ref_type=heads#L22) is part of the public API.
My initial thought is to move the WlBuffer creation and registration into the gstwayland library,
which would eliminate the need to export several buffer management related functions from WlDisplay and WlBuffer.
With that, it should be possible to move some of the currently exported functions into `-priv.h` variants of the headers.
Any thoughts?
@ndufresne you mentioned inter-operating with glimagesink and others (vaapisink is the only other one that comes to mind).
Those sinks manage their own wl_display dispatching and buffer creation, so it seems like there might need to be a bit
more refactoring necessary to have something that works for all of them.https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/516whipclientsink: pushing to twitch.tv's WHIP endpoint is a noop2024-03-28T20:39:53ZTristan Matthewswhipclientsink: pushing to twitch.tv's WHIP endpoint is a noopPushing from GStreamer to twitch.tv via WHIP seems to run fine client-side but nothing is registering on the twitch.tv side.
To reproduce:
```
# I also tried with `do-fec=false` but same result
gst-launch-1.0 -v whipclientsink name=whip...Pushing from GStreamer to twitch.tv via WHIP seems to run fine client-side but nothing is registering on the twitch.tv side.
To reproduce:
```
# I also tried with `do-fec=false` but same result
gst-launch-1.0 -v whipclientsink name=whip signaller::whip-endpoint=https://g.webrtc.live-video.net:4443/v2/offer signaller::auth-token=TWITCH_KEY videotestsrc ! videoconvert ! x264enc speed-preset=veryfast tune=zerolatency ! h264parse ! whip. audiotestsrc ! audioconvert ! opusenc ! whip.
```
See also:
https://www.reddit.com/r/WebRTC/comments/12nc5md/twitchtv_now_supports_webrtc_ingestion_via_whip/
By contrast OBS works fine and https://github.com/ggarber/whip-go works reasonably well as well.
N.B. my actual use case would be using an rtspsrc as input but that's a bit overloaded for the scope of this issue, hence starting with testsrcs.
This is with GStreamer 1.24.0 for all modules.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3384gstreamer cannot load gtk-demo.webm on arm642024-03-15T13:26:05ZChris Tgstreamer cannot load gtk-demo.webm on arm64Hello!
I am on Mobian (Debian) trixie with Gstreamer 1.22 (I also tried with 1.24 from sid). I was trying to add GtkVideos to a program and for some reason, there is an issue with `gtk-demo.webm` provided by `gtk4-widget-factory` on Mob...Hello!
I am on Mobian (Debian) trixie with Gstreamer 1.22 (I also tried with 1.24 from sid). I was trying to add GtkVideos to a program and for some reason, there is an issue with `gtk-demo.webm` provided by `gtk4-widget-factory` on Mobian Trixie. I tried this on a Librem 5 and a Pineephone Pro with the same result. I am able to get `mp4`s and other `webm` to work. I am attaching a small test app that can reproduce the issue for me:
[test_app.zip](/uploads/7a5f404270b1fb8ec40af347a39ed53a/test_app.zip)
I commented out:
```
// gtk_media_file_set_resource (GTK_MEDIA_FILE (video_two), "/test_app/test/test46464/video.webm");
// gtk_video_set_media_stream (self->video_one, GTK_MEDIA_STREAM (video_one));
// gtk_video_set_media_stream (self->video_two, GTK_MEDIA_STREAM (video_two));
```
to have the smallest code to show the error, but you can uncomment those lines to see what happens when it loads up. I also attached the errored I get when I run `GST_DEBUG=2`:
```
mobian@mobian:~/dev/test_app$ GST_DEBUG=2 ./_build/src/test_app 2>&1 | tee output.txt
0:00:00.088904953 3673 0xaaab00d50270 WARN basesrc gstbasesrc.c:3693:gst_base_src_start_complete:<source> pad not activated yet
0:00:00.102452146 3673 0xaaab00d50270 WARN basesrc gstbasesrc.c:3693:gst_base_src_start_complete:<source> pad not activated yet
0:00:00.390860299 3673 0xffff7c001800 WARN matroskareadcommon matroska-read-common.c:762:gst_matroska_read_common_parse_skip:<matroskademux0:sink> Unknown CueTrackPositions subelement 0xf0 - ignoring
0:00:00.390916462 3673 0xffff7c001800 WARN matroskareadcommon matroska-read-common.c:762:gst_matroska_read_common_parse_skip:<matroskademux0:sink> Unknown CueTrackPositions subelement 0xf0 - ignoring
0:00:00.492806262 3673 0xffff7c001da0 ERROR v4l2codecs-decoder gstv4l2decoder.c:545:gst_v4l2_decoder_request_buffers:<v4l2decoder2> VIDIOC_REQBUFS failed: Device or resource busy
0:00:00.492870585 3673 0xffff7c001da0 ERROR v4l2codecs-decoder gstv4l2decoder.c:545:gst_v4l2_decoder_request_buffers:<v4l2decoder2> VIDIOC_REQBUFS failed: Device or resource busy
0:00:00.492899866 3673 0xffff7c001da0 ERROR v4l2codecs-decoder gstv4l2decoder.c:545:gst_v4l2_decoder_request_buffers:<v4l2decoder2> VIDIOC_REQBUFS failed: Device or resource busy
0:00:00.492936708 3673 0xffff7c001da0 WARN v4l2codecs-vp9dec gstv4l2codecvp9dec.c:573:gst_v4l2_codec_vp9_dec_decide_allocation:<maindec> error: Not enough memory to allocate sink buffers.
0:00:00.493113236 3673 0xffff7c001da0 WARN videodecoder gstvideodecoder.c:4409:gst_video_decoder_negotiate_pool:<maindec> Subclass failed to decide allocation
0:00:00.493457052 3673 0xaaab00d50270 ERROR gst-play gstplay.c:1014:error_cb:<gtkgstplay0> ERROR: from element /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/v4l2slvp9alphadecodebin:v4l2slvp9alphadecodebin0/v4l2slvp9dec:maindec: Not enough memory to allocate sink buffers.
0:00:00.493481894 3673 0xaaab00d50270 ERROR gst-play gstplay.c:1016:error_cb:<gtkgstplay0> Additional debug info: ../sys/v4l2codecs/gstv4l2codecvp9dec.c(573): gst_v4l2_codec_vp9_dec_decide_allocation (): /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/v4l2slvp9alphadecodebin:v4l2slvp9alphadecodebin0/v4l2slvp9dec:maindec
0:00:00.493565058 3673 0xaaab00d50270 ERROR gst-play gstplay.c:938:on_error:<gtkgstplay0> Error: Error from element /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/v4l2slvp9alphadecodebin:v4l2slvp9alphadecodebin0/v4l2slvp9dec:maindec: No space left on the resource.
Not enough memory to allocate sink buffers.
../sys/v4l2codecs/gstv4l2codecvp9dec.c(573): gst_v4l2_codec_vp9_dec_decide_allocation (): /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/v4l2slvp9alphadecodebin:v4l2slvp9alphadecodebin0/v4l2slvp9dec:maindec (gst-play-error-quark, 0)
0:00:00.494446139 3673 0xffff7c002070 ERROR v4l2codecs-decoder gstv4l2decoder.c:545:gst_v4l2_decoder_request_buffers:<v4l2decoder3> VIDIOC_REQBUFS failed: Device or resource busy
0:00:00.494487301 3673 0xffff7c002070 ERROR v4l2codecs-decoder gstv4l2decoder.c:545:gst_v4l2_decoder_request_buffers:<v4l2decoder3> VIDIOC_REQBUFS failed: Device or resource busy
0:00:00.494514062 3673 0xffff7c002070 ERROR v4l2codecs-decoder gstv4l2decoder.c:545:gst_v4l2_decoder_request_buffers:<v4l2decoder3> VIDIOC_REQBUFS failed: Device or resource busy
0:00:00.494540463 3673 0xffff7c002070 WARN v4l2codecs-vp9dec gstv4l2codecvp9dec.c:573:gst_v4l2_codec_vp9_dec_decide_allocation:<alphadec> error: Not enough memory to allocate sink buffers.
0:00:00.494616667 3673 0xffff7c002070 WARN videodecoder gstvideodecoder.c:4409:gst_video_decoder_negotiate_pool:<alphadec> Subclass failed to decide allocation
0:00:00.494836517 3673 0xffff7c001800 WARN matroskademux matroska-demux.c:6109:gst_matroska_demux_loop:<matroskademux0> error: Internal data stream error.
0:00:00.494856198 3673 0xffff7c001800 WARN matroskademux matroska-demux.c:6109:gst_matroska_demux_loop:<matroskademux0> error: streaming stopped, reason not-negotiated (-4)
0:00:00.494956763 3673 0xffff7c001800 WARN multiqueue gstmultiqueue.c:2789:gst_multi_queue_sink_event:<multiqueue0> error: Internal data stream error.
0:00:00.494974643 3673 0xffff7c001800 WARN multiqueue gstmultiqueue.c:2789:gst_multi_queue_sink_event:<multiqueue0> error: streaming stopped, reason not-negotiated (-4)
```https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/116gstreamer cannot load gtk-demo.webm on arm642024-03-13T18:40:16ZChris Tgstreamer cannot load gtk-demo.webm on arm64Hello!
I am on Mobian (Debian) trixie with Gstreamer 1.22 (I also tried with 1.24 from sid). I was trying to add GtkVideos to a program and for some reason, there is an issue with `gtk-demo.webm` provided by `gtk4-widget-factory` on Mob...Hello!
I am on Mobian (Debian) trixie with Gstreamer 1.22 (I also tried with 1.24 from sid). I was trying to add GtkVideos to a program and for some reason, there is an issue with `gtk-demo.webm` provided by `gtk4-widget-factory` on Mobian Trixie. I tried this on a Librem 5 and a Pineephone Pro with the same result. I am able to get `mp4`s and other `webm` to work. I am attaching a small test app that can reproduce the issue for me:
[test_app.zip](/uploads/9f7fd4788d9c0cc6efbc170404658522/test_app.zip)
I commented out:
```
// gtk_media_file_set_resource (GTK_MEDIA_FILE (video_two), "/test_app/test/test46464/video.webm");
// gtk_video_set_media_stream (self->video_one, GTK_MEDIA_STREAM (video_one));
// gtk_video_set_media_stream (self->video_two, GTK_MEDIA_STREAM (video_two));
```
to have the smallest code to show the error, but you can uncomment those lines to see what happens when it loads up. I also attached the errored I get when I run `GST_DEBUG=2`:
```
mobian@mobian:~/dev/test_app$ GST_DEBUG=2 ./_build/src/test_app 2>&1 | tee output.txt
0:00:00.088904953 3673 0xaaab00d50270 WARN basesrc gstbasesrc.c:3693:gst_base_src_start_complete:<source> pad not activated yet
0:00:00.102452146 3673 0xaaab00d50270 WARN basesrc gstbasesrc.c:3693:gst_base_src_start_complete:<source> pad not activated yet
0:00:00.390860299 3673 0xffff7c001800 WARN matroskareadcommon matroska-read-common.c:762:gst_matroska_read_common_parse_skip:<matroskademux0:sink> Unknown CueTrackPositions subelement 0xf0 - ignoring
0:00:00.390916462 3673 0xffff7c001800 WARN matroskareadcommon matroska-read-common.c:762:gst_matroska_read_common_parse_skip:<matroskademux0:sink> Unknown CueTrackPositions subelement 0xf0 - ignoring
0:00:00.492806262 3673 0xffff7c001da0 ERROR v4l2codecs-decoder gstv4l2decoder.c:545:gst_v4l2_decoder_request_buffers:<v4l2decoder2> VIDIOC_REQBUFS failed: Device or resource busy
0:00:00.492870585 3673 0xffff7c001da0 ERROR v4l2codecs-decoder gstv4l2decoder.c:545:gst_v4l2_decoder_request_buffers:<v4l2decoder2> VIDIOC_REQBUFS failed: Device or resource busy
0:00:00.492899866 3673 0xffff7c001da0 ERROR v4l2codecs-decoder gstv4l2decoder.c:545:gst_v4l2_decoder_request_buffers:<v4l2decoder2> VIDIOC_REQBUFS failed: Device or resource busy
0:00:00.492936708 3673 0xffff7c001da0 WARN v4l2codecs-vp9dec gstv4l2codecvp9dec.c:573:gst_v4l2_codec_vp9_dec_decide_allocation:<maindec> error: Not enough memory to allocate sink buffers.
0:00:00.493113236 3673 0xffff7c001da0 WARN videodecoder gstvideodecoder.c:4409:gst_video_decoder_negotiate_pool:<maindec> Subclass failed to decide allocation
0:00:00.493457052 3673 0xaaab00d50270 ERROR gst-play gstplay.c:1014:error_cb:<gtkgstplay0> ERROR: from element /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/v4l2slvp9alphadecodebin:v4l2slvp9alphadecodebin0/v4l2slvp9dec:maindec: Not enough memory to allocate sink buffers.
0:00:00.493481894 3673 0xaaab00d50270 ERROR gst-play gstplay.c:1016:error_cb:<gtkgstplay0> Additional debug info: ../sys/v4l2codecs/gstv4l2codecvp9dec.c(573): gst_v4l2_codec_vp9_dec_decide_allocation (): /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/v4l2slvp9alphadecodebin:v4l2slvp9alphadecodebin0/v4l2slvp9dec:maindec
0:00:00.493565058 3673 0xaaab00d50270 ERROR gst-play gstplay.c:938:on_error:<gtkgstplay0> Error: Error from element /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/v4l2slvp9alphadecodebin:v4l2slvp9alphadecodebin0/v4l2slvp9dec:maindec: No space left on the resource.
Not enough memory to allocate sink buffers.
../sys/v4l2codecs/gstv4l2codecvp9dec.c(573): gst_v4l2_codec_vp9_dec_decide_allocation (): /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/v4l2slvp9alphadecodebin:v4l2slvp9alphadecodebin0/v4l2slvp9dec:maindec (gst-play-error-quark, 0)
0:00:00.494446139 3673 0xffff7c002070 ERROR v4l2codecs-decoder gstv4l2decoder.c:545:gst_v4l2_decoder_request_buffers:<v4l2decoder3> VIDIOC_REQBUFS failed: Device or resource busy
0:00:00.494487301 3673 0xffff7c002070 ERROR v4l2codecs-decoder gstv4l2decoder.c:545:gst_v4l2_decoder_request_buffers:<v4l2decoder3> VIDIOC_REQBUFS failed: Device or resource busy
0:00:00.494514062 3673 0xffff7c002070 ERROR v4l2codecs-decoder gstv4l2decoder.c:545:gst_v4l2_decoder_request_buffers:<v4l2decoder3> VIDIOC_REQBUFS failed: Device or resource busy
0:00:00.494540463 3673 0xffff7c002070 WARN v4l2codecs-vp9dec gstv4l2codecvp9dec.c:573:gst_v4l2_codec_vp9_dec_decide_allocation:<alphadec> error: Not enough memory to allocate sink buffers.
0:00:00.494616667 3673 0xffff7c002070 WARN videodecoder gstvideodecoder.c:4409:gst_video_decoder_negotiate_pool:<alphadec> Subclass failed to decide allocation
0:00:00.494836517 3673 0xffff7c001800 WARN matroskademux matroska-demux.c:6109:gst_matroska_demux_loop:<matroskademux0> error: Internal data stream error.
0:00:00.494856198 3673 0xffff7c001800 WARN matroskademux matroska-demux.c:6109:gst_matroska_demux_loop:<matroskademux0> error: streaming stopped, reason not-negotiated (-4)
0:00:00.494956763 3673 0xffff7c001800 WARN multiqueue gstmultiqueue.c:2789:gst_multi_queue_sink_event:<multiqueue0> error: Internal data stream error.
0:00:00.494974643 3673 0xffff7c001800 WARN multiqueue gstmultiqueue.c:2789:gst_multi_queue_sink_event:<multiqueue0> error: streaming stopped, reason not-negotiated (-4)
```https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/515webrtcsink: allow resolution changes2024-03-19T08:07:07ZGuillaume Desmotteswebrtcsink: allow resolution changes`webrtcsink` currently [rejects any change in the input caps](https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/blob/main/net/webrtc/src/webrtcsink/imp.rs?ref_type=heads#L3472). Could this be relaxed to allow some changes such as...`webrtcsink` currently [rejects any change in the input caps](https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/blob/main/net/webrtc/src/webrtcsink/imp.rs?ref_type=heads#L3472). Could this be relaxed to allow some changes such as the input resolution or the framerate? I don't think those need a full WebRTC re-negotiation?
cc @meh @thiblahutehttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3383ptpclock: Critical warning with ptp-print-times example2024-03-14T04:17:48ZSeungha Yangseungha@centricular.comptpclock: Critical warning with ptp-print-times example```
(ptp-print-times.exe:46952): GStreamer-CRITICAL **: 23:45:01.399: gst_clock_set_calibration: assertion 'GST_CLOCK_TIME_IS_VALID (external)' failed
```
`corrected_ptp_time` seems to be clock-time-none at this line https://gitlab.fre...```
(ptp-print-times.exe:46952): GStreamer-CRITICAL **: 23:45:01.399: gst_clock_set_calibration: assertion 'GST_CLOCK_TIME_IS_VALID (external)' failed
```
`corrected_ptp_time` seems to be clock-time-none at this line https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/subprojects/gstreamer/libs/gst/net/gstptpclock.c?ref_type=heads#L1245
Log with `GST_DEBUG=*ptp*:7` [gst.log](/uploads/c5a3412399552a005c6120ad12426efd/gst.log)https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3382gst_d3d11_device_new_wrapped() always returns NULL (GstD3D11Device)2024-03-14T03:26:32ZWinand Appelhoffgst_d3d11_device_new_wrapped() always returns NULL (GstD3D11Device)Hi all!
gst_d3d11_device_new_wrapped() always returns NULL ( gstreamer version 1.24 on Windows 11, official build )
snippet to reproduce:
`auto *device = gst_d3d11_device_new(0, D3D11_CREATE_DEVICE_BGRA_SUPPORT);`
`ID3D11Device *nati...Hi all!
gst_d3d11_device_new_wrapped() always returns NULL ( gstreamer version 1.24 on Windows 11, official build )
snippet to reproduce:
`auto *device = gst_d3d11_device_new(0, D3D11_CREATE_DEVICE_BGRA_SUPPORT);`
`ID3D11Device *native = gst_d3d11_device_get_device_handle(device);`
`auto *wrapped = gst_d3d11_device_new_wrapped(native);`
even when re-feeding the ID3D11Device created through gst_d3d11_device_new(), wrapped is always NULL
GST_DEBUG output:
**d3d11device gstd3d11device.cpp:1021:gst_d3d11_device_new_internal: Failed to get DXGI adapter**
but actually the IDXGIAdapter is fine:
`auto *device = gst_d3d11_device_new(0, D3D11_CREATE_DEVICE_BGRA_SUPPORT);`
`ID3D11Device *native = gst_d3d11_device_get_device_handle(device);`
`Microsoft::WRL::ComPtr<ID3D11Device> dxdev(native);`
`Microsoft::WRL::ComPtr<IDXGIDevice3> dxgi;`
`dxdev.As(&dxgi);`
`Microsoft::WRL::ComPtr<IDXGIAdapter> adapter;`
`dxgi->GetAdapter(&adapter);`
Cheers & thanks in advancehttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3381No direct scanout on mutter 46.rc with waylandsink2024-03-18T01:36:11ZJrelvasNo direct scanout on mutter 46.rc with waylandsink### Describe your issue
Mutter 46 [introduces direct scanout for cropped and scaled surfaces](https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3177), as long as they're fullscreen. This can be confirmed with `mpv`, gtk4 and even pr...### Describe your issue
Mutter 46 [introduces direct scanout for cropped and scaled surfaces](https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3177), as long as they're fullscreen. This can be confirmed with `mpv`, gtk4 and even programs which are not capable of direct video playback yet, such as Firefox. However, gstreamer's `waylandsink` does not follow the same behavior and always fails to allow direct scanout. Since it's the exception, rather than the norm, I believe the problem is on `waylandsink`.
#### Expected Behavior
No 3D engine use registered from the compositor while the window is fullscreen (shown as systemd):
![imagem](/uploads/1418ee5ff1ab164b9f5f4b02cd5942fb/imagem.png)
![imagem](/uploads/e67edb0429487723cbcc752e26c68501/imagem.png)
#### Observed Behavior
Compositor shows 3D engine being used, even if `waylandsink` is set to fullscreen:
![imagem](/uploads/05fa4ab482883716e2749f9fe29d2cb4/imagem.png)
#### Setup
- **Operating System:** Fedora Workstation 41 (Rawhide)
- **Device:** Computer
- **GStreamer Version:** 1.24.0
### Steps to reproduce the bug
1. Watch `intel_gpu_top` (or other similar tool) in a separate device, over `ssh`.
2. Run the following command with `mpv` (master):
`mpv --hwdec=vaapi --vo=dmabuf-wayland sintel_trailer-1080p.mp4 --fs`
- There should be no 3D engine usage.
3. Now run the following example pipeline:
`gst-launch-1.0 filesrc location=sintel_trailer-1080p.mp4 ! qtdemux ! h264parse ! vah264dec ! waylandsink fullscreen=1`
- 3D engine usage from the compositor is registered.
### How reproducible is the bug?
Always.
### Screenshots if relevant
![imagem](/uploads/05fa4ab482883716e2749f9fe29d2cb4/imagem.png)
### Solutions you have tried
Forcefully disabling the cursor (no impact). Color convert to RGBA (no impact). Software decoding with `openh264dec` (no impact). Using `videotestsrc` (no impact).https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/1015When setting "mute=1" at the volume element, the stream stops after a very sh...2024-03-13T12:48:06ZMichael LugmairWhen setting "mute=1" at the volume element, the stream stops after a very short timeHello, I observed a strange behavior when using the volume element's mute attribute. First I was experiencing it with Sayonara and Strawberry music players.
## Behavior
I broke it down to a simple pipeline. With `playbin3` there were n...Hello, I observed a strange behavior when using the volume element's mute attribute. First I was experiencing it with Sayonara and Strawberry music players.
## Behavior
I broke it down to a simple pipeline. With `playbin3` there were no issues
I tried with
* various file formats: mp3, wav, flac
* `pulsesink`, `alsasink`, `autoaudiosink`
Same behavior.
#### Good behavior (everything as expected)
```
gst-launch-1.0 -v playbin uri=file:///tmp/test.mp3 mute=1
gst-launch-1.0 -v playbin3 uri=file:///tmp/test.mp3 mute=1
gst-launch-1.0 uridecodebin uri=file:///tmp/test.mp3 ! volume ! autoaudiosink
```
#### Bad behavior: Stream is cancelled after a short time seconds:
```
gst-launch-1.0 uridecodebin uri=file:///tmp/test.mp3 ! volume mute=1 ! autoaudiosink
```
### Logs
```
export GST=DEBUG=4
```
```
0:00:00.043343654 624065 0x55f0be2b3f30 INFO GST_STATES gstelement.c:2716:_priv_gst_element_state_changed:<pipeline0> notifying about state-changed PAUSED to PLAYING (VOID_PENDING pending)
Redistribute latency...
0:00:00.043408073 624065 0x55f0be2b3f30 INFO GST_EVENT gstevent.c:1557:gst_event_new_latency: creating latency event 0:00:00.000000000
0:00:00.043430380 624065 0x55f0be2b3f30 INFO bin gstbin.c:2767:gst_bin_do_latency_func:<pipeline0> configured latency of 0:00:00.000000000
New clock: GstPulseSinkClock
0:00:00.047960665 624065 0x7f3550000d50 INFO task gsttask.c:368:gst_task_func:<wavparse0:sink> Task going to paused
Got EOS from element "pipeline0".
Execution ended after 0:00:00.005036797
Setting pipeline to NULL ...
0:00:00.048036162 624065 0x55f0be2b3f30 INFO GST_STATES gstbin.c:2480:gst_bin_element_set_state:<autoaudiosink0> current PLAYING pending VOID_PENDING, desired next PAUSED
```
## Version
* OS: Manjaro Linux, Kernel 6.6.16-2-MANJARO
* Gstreamer and plugins from official repos
* `gst-plugins-base` 1.22.10-1
* `gst-plugins-base-libs` 1.22.10-1
### Volume Element
```
$ gst-inspect-1.0 volume
Factory Details:
Rank none (0)
Long-name Volume
Klass Filter/Effect/Audio
Description Set volume on audio/raw streams
Author Andy Wingo <wingo@pobox.com>
Documentation https://gstreamer.freedesktop.org/documentation/volume/#volume-page
Plugin Details:
Name volume
Description plugin for controlling audio volume
Filename /usr/lib/gstreamer-1.0/libgstvolume.so
Version 1.22.10
License LGPL
Source module gst-plugins-base
Documentation https://gstreamer.freedesktop.org/documentation/volume/
Source release date 2024-02-13
Binary package Arch Linux gst-plugins-base 1.22.10-1
Origin URL https://www.archlinux.org/
```
### Playbin3
```
gst-inspect-1.0 playbin3
Factory Details:
Rank none (0)
Long-name Player Bin 3
Klass Generic/Bin/Player
Description Autoplug and play media from an uri
Author Wim Taymans <wim.taymans@gmail.com>
Documentation https://gstreamer.freedesktop.org/documentation/playback/playbin3.html
Plugin Details:
Name playback
Description various playback elements
Filename /usr/lib/gstreamer-1.0/libgstplayback.so
Version 1.22.10
License LGPL
Source module gst-plugins-base
Documentation https://gstreamer.freedesktop.org/documentation/playback/
Source release date 2024-02-13
Binary package Arch Linux gst-plugins-base 1.22.10-1
Origin URL https://www.archlinux.org/
```https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3380va: vapostproc produces corrupted memory when converting from VAMemory NV12 t...2024-03-18T16:17:51ZJochen Hennebergjh@henneberg-systemdesign.comva: vapostproc produces corrupted memory when converting from VAMemory NV12 to DMABuf YV12On i965 (Intel BYT) platform the conversion from memory:VAMemory with
format NV12 to memory:DMABuf with format YV12 leads to corrupt memory.
Observed Behavior: One C plane (U or V) has corrupted memory.
- Intel i965 driver for Intel(R)...On i965 (Intel BYT) platform the conversion from memory:VAMemory with
format NV12 to memory:DMABuf with format YV12 leads to corrupt memory.
Observed Behavior: One C plane (U or V) has corrupted memory.
- Intel i965 driver for Intel(R) Bay Trail - 2.4.1
- GStreamer 1.24.0
- VA-API version 1.15.0
I have tested with qmlglsink, however, the exact same problem can be
observed with glimagesink, too.
The attached image shows the 3 planes (YUV) rendered next to each
other (for this I modified the YV12->RGBA shader from
gstqsgmaterial/qmlglsink). Obviously the one in the upper/left corner (U or V, I'm not sure) has
corrupted memory, parts of the correct data can be seen in to bottom part of the section.
Please let me know if you need additional
information or if I can do any further tests.
Additional attachments contain the pipeline dump and some log
output. Interesting part for me is the mismatch from
vadmabufallocator.
![vapostproc](/uploads/4b56ce2039fe4fefbf820662c755deb1/vapostproc.png)[pipeline.dot](/uploads/50fcf6e9fd3d58dc25acf48a6073228d/pipeline.dot[vapostproc_7_vamemory_7.log.gz](/uploads/9238351f0e76c24219865ed4eddfdfa5/vapostproc_7_vamemory_7.log.gz)https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3379Video lags behaind audio with GST applications (Cheese, Snapshot)2024-03-13T15:46:13ZAngelo SchirinziVideo lags behaind audio with GST applications (Cheese, Snapshot)When using the laptop's built-in camera, the video lags behind the live stream (around 0.5-1 s). This delay also occurs during recording, leading to videos that are out of sync from the audio.
For information, I experienced the same pro...When using the laptop's built-in camera, the video lags behind the live stream (around 0.5-1 s). This delay also occurs during recording, leading to videos that are out of sync from the audio.
For information, I experienced the same problem with ffmpeg...
`ffplay /dev/video0`
...and I fixed it by adding an option
`ffplay -fflags nobuffer /dev/video0`
I have no idea how it can be solved. Thank you for your feedback.
- GStreamer 1.22.9
- Fedora 39
- Linux 6.7.7https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3378libavdemux: error: ‘AVInputFormat’ has no member named ‘read_probe’2024-03-12T16:54:49ZU. Artie Eofflibavdemux: error: ‘AVInputFormat’ has no member named ‘read_probe’Unable to compile gst-libav with upstream ffmpeg since ffmpeg commit https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/b800327f4c72
```
../subprojects/gst-libav/ext/libav/gstavdemux.c: In function ‘gst_ffmpegdemux_type_find’:
../subprojec...Unable to compile gst-libav with upstream ffmpeg since ffmpeg commit https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/b800327f4c72
```
../subprojects/gst-libav/ext/libav/gstavdemux.c: In function ‘gst_ffmpegdemux_type_find’:
../subprojects/gst-libav/ext/libav/gstavdemux.c:1403:16: error: ‘AVInputFormat’ has no member named ‘read_probe’
1403 | if (in_plugin->read_probe &&
| ^~
../subprojects/gst-libav/ext/libav/gstavdemux.c:1411:20: error: ‘AVInputFormat’ has no member named ‘read_probe’
1411 | res = in_plugin->read_probe (&probe_data);
| ^~
```https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/514uriplaylistbin: fix racy test2024-03-12T15:59:08ZGuillaume Desmottesuriplaylistbin: fix racy test`nb_streams_increasing` is racy: https://gitlab.freedesktop.org/gdesmott/gst-plugins-rs/-/jobs/56188510`nb_streams_increasing` is racy: https://gitlab.freedesktop.org/gdesmott/gst-plugins-rs/-/jobs/56188510