GStreamer issueshttps://gitlab.freedesktop.org/groups/gstreamer/-/issues2024-02-16T16:32:10Zhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3309gst-plugins-good: 1.22.9 test failures on aarch64 with musl libc2024-02-16T16:32:10ZNatanael Copagst-plugins-good: 1.22.9 test failures on aarch64 with musl libcThere are 18 tests that fails on alpine linux (using musl libc) aarch64.
```
Summary of Failures:
17/112 elements_audiopanorama FAIL 0.06s exit status 25
27/112 elements_deinterlace FAIL ...There are 18 tests that fails on alpine linux (using musl libc) aarch64.
```
Summary of Failures:
17/112 elements_audiopanorama FAIL 0.06s exit status 25
27/112 elements_deinterlace FAIL 0.05s exit status 2
30/112 elements_imagefreeze FAIL 0.03s exit status 7
37/112 elements_splitmuxsink FAIL 0.08s exit status 9
38/112 elements_splitmuxsrc FAIL 0.07s exit status 3
40/112 elements_multifile FAIL 0.13s exit status 3
41/112 elements_rgvolume FAIL 0.03s exit status 6
46/112 elements_videobox FAIL 0.01s exit status 1
49/112 elements_videocrop FAIL 0.13s exit status 27
51/112 elements_videomixer FAIL 0.04s exit status 9
58/112 pipelines_effectv FAIL 0.06s exit status 12
89/112 elements_rtp_payloading FAIL 0.23s exit status 7
91/112 elements_gdkpixbufsink FAIL 0.02s exit status 2
92/112 elements_gdkpixbufoverlay FAIL 0.01s exit status 1
94/112 elements_jpegenc FAIL 0.01s exit status 1
101/112 elements_vp9enc FAIL 0.04s exit status 1
107/112 pipelines_simple_launch_lines FAIL 8.07s exit status 2
111/112 elements_flvmux FAIL 20.25s exit status 1
Ok: 94
Expected Fail: 0
Fail: 18
Unexpected Pass: 0
Skipped: 0
Timeout: 0
```
[testlog.txt](/uploads/ebb6a0cabdc12b4cd83a017dc2da46e6/testlog.txt)https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/498trouble setting custom signaller::uri in C++2024-02-16T02:02:31ZChris Del Guerciotrouble setting custom signaller::uri in C++### Describe your issue
I'm trying to set the signaller::uri property in C++ but I get `g_object_set_is_valid_property: property 'signaller' of object class 'GstWebRTCSink' is not writable` error
```plaintext
// setup
webrtcsink = gst_...### Describe your issue
I'm trying to set the signaller::uri property in C++ but I get `g_object_set_is_valid_property: property 'signaller' of object class 'GstWebRTCSink' is not writable` error
```plaintext
// setup
webrtcsink = gst_element_factory_make("webrtcsink", "webrtcsink");
// I've tried setting the signaller property directly
g_object_set(G_OBJECT(webrtcsink), "signaller",
gst_structure_from_string(("signaller,uri=ws://127.0.0.1:" + webrtc_signalling_server_port).c_str(), NULL), NULL);
// and I've tried doing something like this which gave me a strange UTF-8 error in Rust
GObject *signaller;
// Get the signaller object from the webrtcsink element
g_object_get(webrtcsink, "signaller", &signaller, NULL);
if (!signaller) {
g_printerr("Failed to get signaller object\n");
g_object_unref(signaller);
return -1;
}
g_object_set(signaller, "uri",
gst_structure_from_string(("ws://127.0.0.1:" + webrtc_signalling_server_port).c_str(), NULL), NULL);
g_object_unref(signaller);
```
#### Expected Behavior
I'm able to set the signaller::uri property just like you can in gst terminal pipelines
#### Observed Behavior
I get an error explaining that signaller::uri is readonly, which is true from the docs.
#### Setup
- **Operating System:** Ubuntu 23.10
- **Device:** podman container
- **gst-plugins-rs Version:** main as of Feb 14, 2024
- **GStreamer Version:** 1.22.10
- **Command line:**https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3299aja: Audio channel position is missing2024-02-14T16:43:02ZXavier Claessensxclaesse@gmail.comaja: Audio channel position is missingRunning this pipeline: `gst-launch-1.0 ajasrc ! ajasrcdemux ! audioconvert ! audio/x-raw,channels=2 ! fakesink` gives this error: `basetransform gstbasetransform.c:1371:gst_base_transform_setcaps:<audioconvert0> transform could not trans...Running this pipeline: `gst-launch-1.0 ajasrc ! ajasrcdemux ! audioconvert ! audio/x-raw,channels=2 ! fakesink` gives this error: `basetransform gstbasetransform.c:1371:gst_base_transform_setcaps:<audioconvert0> transform could not transform audio/x-raw, format=(string)S32LE, layout=(string)interleaved, rate=(int)48000, channels=(int)16, channel-mask=(bitmask)0x0000000000000000 in anything we support`.
I believe that's because channel position is missing there: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/subprojects/gst-plugins-bad/sys/aja/gstajasrcdemux.cpp?ref_type=heads#L152.
I'm not familiar with SDI/AJA spec, but I imagine there is a static channel mapping defined somewhere?https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3297uridecodebin3: dead lock in gapless mode2024-03-08T19:51:45ZGuillaume Desmottesuridecodebin3: dead lock in gapless modeTo reproduce:
```console
$ git clone https://gitlab.freedesktop.org/gdesmott/test-gst.git --branch uriplaylistbin-test-fail
$ cd test-gst/
$ wget https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/raw/main/utils/uriplaylistbin/te...To reproduce:
```console
$ git clone https://gitlab.freedesktop.org/gdesmott/test-gst.git --branch uriplaylistbin-test-fail
$ cd test-gst/
$ wget https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/raw/main/utils/uriplaylistbin/tests/sample.mkv
$ cargo run -- file://$(pwd)/sample.mkv
```
This test app plays the same `mkv` file using `uridecodebin3 ! streamsynchronizer`, restarting it when `about-to-finish` is emitted.
After a few iterations it's usually locked:
```
Thread 10 (Thread 0x7f5f42a006c0 (LWP 508390) "queue1:src"):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f5f5463aea3 in g_cond_wait (cond=0x7f5f24024f98, mutex=0x7f5f24024f88) at ../glib/gthread-posix.c:1581
#2 0x00007f5f539331fb in gst_queue_loop (pad=0x7f5f1c00a600) at ../subprojects/gstreamer/plugins/elements/gstqueue.c:1572
#3 0x00007f5f54500150 in gst_task_func (task=0x7f5f040255f0) at ../subprojects/gstreamer/gst/gsttask.c:399
#4 0x00007f5f5450155b in default_func (tdata=0x7f5f1c013430, pool=0x558c27915030) at ../subprojects/gstreamer/gst/gsttaskpool.c:70
#5 0x00007f5f5461e052 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:352
#6 0x00007f5f5461af22 in g_thread_proxy (data=0x7f5f1c013c00) at ../glib/gthread.c:831
#7 0x00007f5f541ba19d in start_thread (arg=<optimized out>) at pthread_create.c:442
#8 0x00007f5f5423bc60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Warning: the current language does not match this frame.
Thread 9 (Thread 0x7f5f48c006c0 (LWP 508387) "queue0:src"):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f5f5463aea3 in g_cond_wait (cond=0x7f5f24024398, mutex=0x7f5f24024388) at ../glib/gthread-posix.c:1581
#2 0x00007f5f539331fb in gst_queue_loop (pad=0x7f5f3c02fc80) at ../subprojects/gstreamer/plugins/elements/gstqueue.c:1572
#3 0x00007f5f54500150 in gst_task_func (task=0x7f5f1400ba70) at ../subprojects/gstreamer/gst/gsttask.c:399
#4 0x00007f5f5450155b in default_func (tdata=0x7f5f24028ff0, pool=0x558c27915030) at ../subprojects/gstreamer/gst/gsttaskpool.c:70
#5 0x00007f5f5461e052 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:352
#6 0x00007f5f5461af22 in g_thread_proxy (data=0x7f5f0c016e40) at ../glib/gthread.c:831
#7 0x00007f5f541ba19d in start_thread (arg=<optimized out>) at pthread_create.c:442
#8 0x00007f5f5423bc60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Warning: the current language does not match this frame.
Thread 8 (Thread 0x7f5f4b4006c0 (LWP 508383) "multiqueue0:src"):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f5f5463aea3 in g_cond_wait (cond=0x7f5f3400b928, mutex=0x7f5f3400b918) at ../glib/gthread-posix.c:1581
#2 0x00007f5f53af5dca in _gst_data_queue_wait_non_empty (queue=0x7f5f3400b970) at ../subprojects/gstreamer/libs/gst/base/gstdataqueue.c:554
#3 0x00007f5f53af61f8 in gst_data_queue_pop (queue=0x7f5f3400b970, item=0x7f5f4b3ffc08) at ../subprojects/gstreamer/libs/gst/base/gstdataqueue.c:596
#4 0x00007f5f539123bc in gst_multi_queue_loop (pad=0x7f5f34009080) at ../subprojects/gstreamer/plugins/elements/gstmultiqueue.c:2190
#5 0x00007f5f54500150 in gst_task_func (task=0x7f5f4406e830) at ../subprojects/gstreamer/gst/gsttask.c:399
#6 0x00007f5f5450155b in default_func (tdata=0x7f5f3400e170, pool=0x558c27915030) at ../subprojects/gstreamer/gst/gsttaskpool.c:70
#7 0x00007f5f5461e052 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:352
#8 0x00007f5f5461af22 in g_thread_proxy (data=0x7f5f3c013640) at ../glib/gthread.c:831
#9 0x00007f5f541ba19d in start_thread (arg=<optimized out>) at pthread_create.c:442
#10 0x00007f5f5423bc60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Warning: the current language does not match this frame.
Thread 7 (Thread 0x7f5f4be006c0 (LWP 508382) "multiqueue0:src"):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f5f5463aea3 in g_cond_wait (cond=0x7f5f24021f90, mutex=0x558c279141a8) at ../glib/gthread-posix.c:1581
#2 0x00007f5f53db2456 in gst_stream_synchronizer_wait (self=0x558c279140a0, pad=0x7f5f3c01ecf0) at ../subprojects/gst-plugins-base/gst/playback/gststreamsynchronizer.c:357
#3 0x00007f5f53db31ed in gst_stream_synchronizer_sink_event (pad=0x7f5f3c01ecf0, parent=0x558c279140a0, event=0x7f5f4c04b010) at ../subprojects/gst-plugins-base/gst/playback/gststreamsynchronizer.c:525
#4 0x00007f5f544c58ea in gst_pad_send_event_unchecked (pad=0x7f5f3c01ecf0, event=0x7f5f4c04b010, type=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../subprojects/gstreamer/gst/gstpad.c:5971
#5 0x00007f5f544c422c in gst_pad_push_event_unchecked (pad=0x7f5f24004050, event=0x7f5f4c04b010, type=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../subprojects/gstreamer/gst/gstpad.c:5604
#6 0x00007f5f544bd9ea in push_sticky (pad=0x7f5f24004050, ev=0x7f5f4bdfeaf0, user_data=0x7f5f4bdfeb50) at ../subprojects/gstreamer/gst/gstpad.c:4083
#7 0x00007f5f544b2f26 in events_foreach (pad=0x7f5f24004050, func=0x7f5f544bd8b6 <push_sticky>, user_data=0x7f5f4bdfeb50) at ../subprojects/gstreamer/gst/gstpad.c:613
#8 0x00007f5f544bddb9 in check_sticky (pad=0x7f5f24004050, event=0x7f5f4c04b010) at ../subprojects/gstreamer/gst/gstpad.c:4142
#9 0x00007f5f544c4a25 in gst_pad_push_event (pad=0x7f5f24004050, event=0x7f5f4c04b010) at ../subprojects/gstreamer/gst/gstpad.c:5737
#10 0x00007f5f544bb20f in event_forward_func (pad=0x7f5f24004050, data=0x7f5f4bdfecf0) at ../subprojects/gstreamer/gst/gstpad.c:3156
#11 0x00007f5f544bb00b in gst_pad_forward (pad=0x7f5f3c01eaa0, forward=0x7f5f544bb0e5 <event_forward_func>, user_data=0x7f5f4bdfecf0) at ../subprojects/gstreamer/gst/gstpad.c:3110
#12 0x00007f5f544bb3d3 in gst_pad_event_default (pad=0x7f5f3c01eaa0, parent=0x7f5f24004050, event=0x7f5f4c04b010) at ../subprojects/gstreamer/gst/gstpad.c:3207
#13 0x00007f5f544c58ea in gst_pad_send_event_unchecked (pad=0x7f5f3c01eaa0, event=0x7f5f4c04b010, type=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../subprojects/gstreamer/gst/gstpad.c:5971
#14 0x00007f5f544c422c in gst_pad_push_event_unchecked (pad=0x558c27911da0, event=0x7f5f4c04b010, type=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../subprojects/gstreamer/gst/gstpad.c:5604
#15 0x00007f5f544bd9ea in push_sticky (pad=0x558c27911da0, ev=0x7f5f4bdfef30, user_data=0x7f5f4bdfef90) at ../subprojects/gstreamer/gst/gstpad.c:4083
#16 0x00007f5f544b2f26 in events_foreach (pad=0x558c27911da0, func=0x7f5f544bd8b6 <push_sticky>, user_data=0x7f5f4bdfef90) at ../subprojects/gstreamer/gst/gstpad.c:613
#17 0x00007f5f544bddb9 in check_sticky (pad=0x558c27911da0, event=0x7f5f4c04b010) at ../subprojects/gstreamer/gst/gstpad.c:4142
#18 0x00007f5f544c4a25 in gst_pad_push_event (pad=0x558c27911da0, event=0x7f5f4c04b010) at ../subprojects/gstreamer/gst/gstpad.c:5737
#19 0x00007f5f544bb20f in event_forward_func (pad=0x558c27911da0, data=0x7f5f4bdff130) at ../subprojects/gstreamer/gst/gstpad.c:3156
#20 0x00007f5f544bb00b in gst_pad_forward (pad=0x7f5f3c01e840, forward=0x7f5f544bb0e5 <event_forward_func>, user_data=0x7f5f4bdff130) at ../subprojects/gstreamer/gst/gstpad.c:3110
#21 0x00007f5f544bb3d3 in gst_pad_event_default (pad=0x7f5f3c01e840, parent=0x558c27911da0, event=0x7f5f4c04b010) at ../subprojects/gstreamer/gst/gstpad.c:3207
#22 0x00007f5f544c58ea in gst_pad_send_event_unchecked (pad=0x7f5f3c01e840, event=0x7f5f4c04b010, type=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../subprojects/gstreamer/gst/gstpad.c:5971
#23 0x00007f5f544c422c in gst_pad_push_event_unchecked (pad=0x7f5f3c02f7e0, event=0x7f5f4c04b010, type=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../subprojects/gstreamer/gst/gstpad.c:5604
#24 0x00007f5f544bd9ea in push_sticky (pad=0x7f5f3c02f7e0, ev=0x7f5f4bdff370, user_data=0x7f5f4bdff3d0) at ../subprojects/gstreamer/gst/gstpad.c:4083
#25 0x00007f5f544b2f26 in events_foreach (pad=0x7f5f3c02f7e0, func=0x7f5f544bd8b6 <push_sticky>, user_data=0x7f5f4bdff3d0) at ../subprojects/gstreamer/gst/gstpad.c:613
#26 0x00007f5f544bddb9 in check_sticky (pad=0x7f5f3c02f7e0, event=0x7f5f4c04b010) at ../subprojects/gstreamer/gst/gstpad.c:4142
#27 0x00007f5f544c4a25 in gst_pad_push_event (pad=0x7f5f3c02f7e0, event=0x7f5f4c04b010) at ../subprojects/gstreamer/gst/gstpad.c:5737
#28 0x00007f5f53bb3cce in gst_video_decoder_push_event (decoder=0x7f5f2401ec90, event=0x7f5f4c04b010) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:1119
#29 0x00007f5f53bbbca7 in gst_video_decoder_push_event_list (decoder=0x7f5f2401ec90, events=0x7f5f14001e40 = {...}) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:2956
#30 0x00007f5f53bbc1e6 in gst_video_decoder_prepare_finish_frame (decoder=0x7f5f2401ec90, frame=0x7f5f240c1030, dropping=0) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:3004
#31 0x00007f5f53bbe1a1 in gst_video_decoder_finish_frame (decoder=0x7f5f2401ec90, frame=0x7f5f240c1030) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:3439
--Type <RET> for more, q to quit, c to continue without paging--c
#32 0x00007f5f5382c103 in theora_dec_handle_frame (bdec=0x7f5f2401ec90, frame=0x7f5f240c1030) at ../subprojects/gst-plugins-base/ext/theora/gsttheoradec.c:908
#33 0x00007f5f53bc194c in gst_video_decoder_decode_frame (decoder=0x7f5f2401ec90, frame=0x7f5f240c1030) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:3993
#34 0x00007f5f53bc10bc in gst_video_decoder_have_frame (decoder=0x7f5f2401ec90) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:3884
#35 0x00007f5f53829b27 in theora_dec_parse (decoder=0x7f5f2401ec90, frame=0x7f5f240c1030, adapter=0x7f5f1400b7e0, at_eos=0) at ../subprojects/gst-plugins-base/ext/theora/gsttheoradec.c:293
#36 0x00007f5f53bb3d88 in gst_video_decoder_parse_available (dec=0x7f5f2401ec90, at_eos=0, new_buffer=0) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:1142
#37 0x00007f5f53bb8fc9 in gst_video_decoder_chain_forward (decoder=0x7f5f2401ec90, buf=0x7f5f4c04efd0, at_eos=0) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:2488
#38 0x00007f5f53bbb194 in gst_video_decoder_chain (pad=0x7f5f3c02f590, parent=0x7f5f2401ec90, buf=0x7f5f4c04efd0) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:2813
#39 0x00007f5f544bff19 in gst_pad_chain_data_unchecked (pad=0x7f5f3c02f590, type=4112, data=0x7f5f4c04efd0) at ../subprojects/gstreamer/gst/gstpad.c:4494
#40 0x00007f5f544c1051 in gst_pad_push_data (pad=0x7f5f340082a0, type=4112, data=0x7f5f4c04efd0) at ../subprojects/gstreamer/gst/gstpad.c:4770
#41 0x00007f5f544c17a4 in gst_pad_push (pad=0x7f5f340082a0, buffer=0x7f5f4c04efd0) at ../subprojects/gstreamer/gst/gstpad.c:4889
#42 0x00007f5f53911ca1 in gst_single_queue_push_one (mq=0x558c2791c000, sq=0x7f5f3400a9a0, object=0x7f5f4c04efd0, allow_drop=0x7f5f4bdffbfc) at ../subprojects/gstreamer/plugins/elements/gstmultiqueue.c:2009
#43 0x00007f5f5391383b in gst_multi_queue_loop (pad=0x7f5f340082a0) at ../subprojects/gstreamer/plugins/elements/gstmultiqueue.c:2345
#44 0x00007f5f54500150 in gst_task_func (task=0x7f5f4406e710) at ../subprojects/gstreamer/gst/gsttask.c:399
#45 0x00007f5f5450155b in default_func (tdata=0x7f5f3400c530, pool=0x558c27915030) at ../subprojects/gstreamer/gst/gsttaskpool.c:70
#46 0x00007f5f5461e052 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:352
#47 0x00007f5f5461af22 in g_thread_proxy (data=0x7f5f3c0135e0) at ../glib/gthread.c:831
#48 0x00007f5f541ba19d in start_thread (arg=<optimized out>) at pthread_create.c:442
#49 0x00007f5f5423bc60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Warning: the current language does not match this frame.
Thread 6 (Thread 0x7f5f510006c0 (LWP 508381) "typefind:sink"):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f5f5463aea3 in g_cond_wait (cond=0x7f5f4406ead0, mutex=0x7f5f4406ea88) at ../glib/gthread-posix.c:1581
#2 0x00007f5f54500070 in gst_task_func (task=0x7f5f4406ea70) at ../subprojects/gstreamer/gst/gsttask.c:384
#3 0x00007f5f5450155b in default_func (tdata=0x7f5f34011a70, pool=0x558c27915030) at ../subprojects/gstreamer/gst/gsttaskpool.c:70
#4 0x00007f5f5461e052 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:352
#5 0x00007f5f5461af22 in g_thread_proxy (data=0x7f5f3c012c00) at ../glib/gthread.c:831
#6 0x00007f5f541ba19d in start_thread (arg=<optimized out>) at pthread_create.c:442
#7 0x00007f5f5423bc60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Warning: the current language does not match this frame.
Thread 5 (Thread 0x7f5f51a006c0 (LWP 508380) "typefindelement"):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f5f5463aea3 in g_cond_wait (cond=0x7f5f040251d0, mutex=0x7f5f04025188) at ../glib/gthread-posix.c:1581
#2 0x00007f5f54500070 in gst_task_func (task=0x7f5f04025170) at ../subprojects/gstreamer/gst/gsttask.c:384
#3 0x00007f5f5450155b in default_func (tdata=0x7f5f0402ff30, pool=0x558c27915030) at ../subprojects/gstreamer/gst/gsttaskpool.c:70
#4 0x00007f5f5461e052 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:352
#5 0x00007f5f5461af22 in g_thread_proxy (data=0x7f5f44069b60) at ../glib/gthread.c:831
#6 0x00007f5f541ba19d in start_thread (arg=<optimized out>) at pthread_create.c:442
#7 0x00007f5f5423bc60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Warning: the current language does not match this frame.
Thread 4 (Thread 0x7f5f524006c0 (LWP 508379) "multiqueue3:src"):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f5f5463aea3 in g_cond_wait (cond=0x558c2792c338, mutex=0x558c2792c330) at ../glib/gthread-posix.c:1581
#2 0x00007f5f53d5d42f in uri_src_block_probe (pad=0x558c27910f00, info=0x7f5f523ff7d0, srcpad=0x7f5f4c04de00) at ../subprojects/gst-plugins-base/gst/playback/gsturidecodebin3.c:1369
#3 0x00007f5f544bc8d2 in probe_hook_marshal (hook=0x7f5f4c031e40, data=0x7f5f523ff760) at ../subprojects/gstreamer/gst/gstpad.c:3695
#4 0x00007f5f545d1a3e in g_hook_list_marshal (hook_list=0x558c27910f98, may_recurse=1, marshaller=0x7f5f544bc5ae <probe_hook_marshal>, data=0x7f5f523ff760) at ../glib/ghook.c:674
#5 0x00007f5f544bcfe6 in do_probe_callbacks (pad=0x558c27910f00, info=0x7f5f523ff7d0, defaultval=GST_FLOW_OK) at ../subprojects/gstreamer/gst/gstpad.c:3879
#6 0x00007f5f544c0f07 in gst_pad_push_data (pad=0x558c27910f00, type=4112, data=0x7f5f4c046c80) at ../subprojects/gstreamer/gst/gstpad.c:4748
#7 0x00007f5f544c17a4 in gst_pad_push (pad=0x558c27910f00, buffer=0x7f5f4c046c80) at ../subprojects/gstreamer/gst/gstpad.c:4889
#8 0x00007f5f5449a00a in gst_proxy_pad_chain_default (pad=0x7f5f340122c0, parent=0x558c27910f00, buffer=0x7f5f4c046c80) at ../subprojects/gstreamer/gst/gstghostpad.c:127
#9 0x00007f5f544bff19 in gst_pad_chain_data_unchecked (pad=0x7f5f340122c0, type=4112, data=0x7f5f4c046c80) at ../subprojects/gstreamer/gst/gstpad.c:4494
#10 0x00007f5f544c1051 in gst_pad_push_data (pad=0x7f5f1c00b880, type=4112, data=0x7f5f4c046c80) at ../subprojects/gstreamer/gst/gstpad.c:4770
#11 0x00007f5f544c17a4 in gst_pad_push (pad=0x7f5f1c00b880, buffer=0x7f5f4c046c80) at ../subprojects/gstreamer/gst/gstpad.c:4889
#12 0x00007f5f53911ca1 in gst_single_queue_push_one (mq=0x7f5f04022540, sq=0x7f5f4c04c790, object=0x7f5f4c046c80, allow_drop=0x7f5f523ffbfc) at ../subprojects/gstreamer/plugins/elements/gstmultiqueue.c:2009
#13 0x00007f5f5391383b in gst_multi_queue_loop (pad=0x7f5f1c00b880) at ../subprojects/gstreamer/plugins/elements/gstmultiqueue.c:2345
#14 0x00007f5f54500150 in gst_task_func (task=0x558c27936950) at ../subprojects/gstreamer/gst/gsttask.c:399
#15 0x00007f5f5450155b in default_func (tdata=0x7f5f4c04ce90, pool=0x558c27915030) at ../subprojects/gstreamer/gst/gsttaskpool.c:70
#16 0x00007f5f5461e052 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:352
#17 0x00007f5f5461af22 in g_thread_proxy (data=0x7f5f4c0330c0) at ../glib/gthread.c:831
#18 0x00007f5f541ba19d in start_thread (arg=<optimized out>) at pthread_create.c:442
#19 0x00007f5f5423bc60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Warning: the current language does not match this frame.
Thread 3 (Thread 0x7f5f52e006c0 (LWP 508378) "multiqueue3:src"):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f5f5463aea3 in g_cond_wait (cond=0x7f5f3400b880, mutex=0x7f5f3400b858) at ../glib/gthread-posix.c:1581
#2 0x00007f5f53af5b61 in gst_data_queue_push (queue=0x7f5f3400b8b0, item=0x7f5f4c051cd0) at ../subprojects/gstreamer/libs/gst/base/gstdataqueue.c:521
#3 0x00007f5f539148c2 in gst_multi_queue_chain (pad=0x7f5f34008050, parent=0x558c2791c000, buffer=0x7f5f4c051b20) at ../subprojects/gstreamer/plugins/elements/gstmultiqueue.c:2538
#4 0x00007f5f544bff19 in gst_pad_chain_data_unchecked (pad=0x7f5f34008050, type=4112, data=0x7f5f4c051b20) at ../subprojects/gstreamer/gst/gstpad.c:4494
#5 0x00007f5f544c1051 in gst_pad_push_data (pad=0x7f5f4406dd80, type=4112, data=0x7f5f4c051b20) at ../subprojects/gstreamer/gst/gstpad.c:4770
#6 0x00007f5f544c17a4 in gst_pad_push (pad=0x7f5f4406dd80, buffer=0x7f5f4c051b20) at ../subprojects/gstreamer/gst/gstpad.c:4889
#7 0x00007f5f53ae3991 in gst_base_transform_chain (pad=0x7f5f4406db30, parent=0x7f5f34007ab0, buffer=0x7f5f4c051b20) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:2391
#8 0x00007f5f544bff19 in gst_pad_chain_data_unchecked (pad=0x7f5f4406db30, type=4112, data=0x7f5f4c051b20) at ../subprojects/gstreamer/gst/gstpad.c:4494
#9 0x00007f5f544c1051 in gst_pad_push_data (pad=0x558c27912130, type=4112, data=0x7f5f4c051b20) at ../subprojects/gstreamer/gst/gstpad.c:4770
#10 0x00007f5f544c17a4 in gst_pad_push (pad=0x558c27912130, buffer=0x7f5f4c051b20) at ../subprojects/gstreamer/gst/gstpad.c:4889
#11 0x00007f5f5449a00a in gst_proxy_pad_chain_default (pad=0x558c27910060, parent=0x558c2790e060, buffer=0x7f5f4c051b20) at ../subprojects/gstreamer/gst/gstghostpad.c:127
#12 0x00007f5f544bff19 in gst_pad_chain_data_unchecked (pad=0x558c27910060, type=4112, data=0x7f5f4c051b20) at ../subprojects/gstreamer/gst/gstpad.c:4494
#13 0x00007f5f544c1051 in gst_pad_push_data (pad=0x558c27910c90, type=4112, data=0x7f5f4c051b20) at ../subprojects/gstreamer/gst/gstpad.c:4770
#14 0x00007f5f544c17a4 in gst_pad_push (pad=0x558c27910c90, buffer=0x7f5f4c051b20) at ../subprojects/gstreamer/gst/gstpad.c:4889
#15 0x00007f5f5449a00a in gst_proxy_pad_chain_default (pad=0x558c279131d0, parent=0x558c27910c90, buffer=0x7f5f4c051b20) at ../subprojects/gstreamer/gst/gstghostpad.c:127
#16 0x00007f5f544bff19 in gst_pad_chain_data_unchecked (pad=0x558c279131d0, type=4112, data=0x7f5f4c051b20) at ../subprojects/gstreamer/gst/gstpad.c:4494
#17 0x00007f5f544c1051 in gst_pad_push_data (pad=0x7f5f1c00b3e0, type=4112, data=0x7f5f4c051b20) at ../subprojects/gstreamer/gst/gstpad.c:4770
#18 0x00007f5f544c17a4 in gst_pad_push (pad=0x7f5f1c00b3e0, buffer=0x7f5f4c051b20) at ../subprojects/gstreamer/gst/gstpad.c:4889
#19 0x00007f5f53911ca1 in gst_single_queue_push_one (mq=0x7f5f04022540, sq=0x7f5f4c04bb70, object=0x7f5f4c051b20, allow_drop=0x7f5f52dffbfc) at ../subprojects/gstreamer/plugins/elements/gstmultiqueue.c:2009
#20 0x00007f5f5391383b in gst_multi_queue_loop (pad=0x7f5f1c00b3e0) at ../subprojects/gstreamer/plugins/elements/gstmultiqueue.c:2345
#21 0x00007f5f54500150 in gst_task_func (task=0x558c27936830) at ../subprojects/gstreamer/gst/gsttask.c:399
#22 0x00007f5f5450155b in default_func (tdata=0x7f5f4c04bb50, pool=0x558c27915030) at ../subprojects/gstreamer/gst/gsttaskpool.c:70
#23 0x00007f5f5461e052 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:352
#24 0x00007f5f5461af22 in g_thread_proxy (data=0x558c27929640) at ../glib/gthread.c:831
#25 0x00007f5f541ba19d in start_thread (arg=<optimized out>) at pthread_create.c:442
#26 0x00007f5f5423bc60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Warning: the current language does not match this frame.
Thread 2 (Thread 0x7f5f538006c0 (LWP 508377) "matroskademux2:"):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f5f5463aea3 in g_cond_wait (cond=0x558c27915d10, mutex=0x558c27915ce8) at ../glib/gthread-posix.c:1581
#2 0x00007f5f53af5b61 in gst_data_queue_push (queue=0x558c27915d40, item=0x7f5f4c04e0f0) at ../subprojects/gstreamer/libs/gst/base/gstdataqueue.c:521
#3 0x00007f5f539148c2 in gst_multi_queue_chain (pad=0x7f5f1c00b630, parent=0x7f5f04022540, buffer=0x7f5f4c04e8e0) at ../subprojects/gstreamer/plugins/elements/gstmultiqueue.c:2538
#4 0x00007f5f544bff19 in gst_pad_chain_data_unchecked (pad=0x7f5f1c00b630, type=4112, data=0x7f5f4c04e8e0) at ../subprojects/gstreamer/gst/gstpad.c:4494
#5 0x00007f5f544c1051 in gst_pad_push_data (pad=0x7f5f0c00ce70, type=4112, data=0x7f5f4c04e8e0) at ../subprojects/gstreamer/gst/gstpad.c:4770
#6 0x00007f5f544c17a4 in gst_pad_push (pad=0x7f5f0c00ce70, buffer=0x7f5f4c04e8e0) at ../subprojects/gstreamer/gst/gstpad.c:4889
#7 0x00007f5f5449a00a in gst_proxy_pad_chain_default (pad=0x558c27912d10, parent=0x7f5f0c00ce70, buffer=0x7f5f4c04e8e0) at ../subprojects/gstreamer/gst/gstghostpad.c:127
#8 0x00007f5f544bff19 in gst_pad_chain_data_unchecked (pad=0x558c27912d10, type=4112, data=0x7f5f4c04e8e0) at ../subprojects/gstreamer/gst/gstpad.c:4494
#9 0x00007f5f544c1051 in gst_pad_push_data (pad=0x558c2792d8b0, type=4112, data=0x7f5f4c04e8e0) at ../subprojects/gstreamer/gst/gstpad.c:4770
#10 0x00007f5f544c17a4 in gst_pad_push (pad=0x558c2792d8b0, buffer=0x7f5f4c04e8e0) at ../subprojects/gstreamer/gst/gstpad.c:4889
#11 0x00007f5f5386cb81 in gst_matroska_demux_parse_blockgroup_or_simpleblock (demux=0x7f5f2c00c020, ebml=0x7f5f537ffad0, cluster_time=0, cluster_offset=6546, is_simpleblock=0) at ../subprojects/gst-plugins-good/gst/matroska/matroska-demux.c:5075
#12 0x00007f5f5386f687 in gst_matroska_demux_parse_id (demux=0x7f5f2c00c020, id=160, length=46, needed=9) at ../subprojects/gst-plugins-good/gst/matroska/matroska-demux.c:5803
#13 0x00007f5f5387077e in gst_matroska_demux_loop (pad=0x7f5f34008990) at ../subprojects/gst-plugins-good/gst/matroska/matroska-demux.c:6002
#14 0x00007f5f54500150 in gst_task_func (task=0x7f5f04025a70) at ../subprojects/gstreamer/gst/gsttask.c:399
#15 0x00007f5f5450155b in default_func (tdata=0x7f5f2c009140, pool=0x558c27915030) at ../subprojects/gstreamer/gst/gsttaskpool.c:70
#16 0x00007f5f5461e052 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:352
#17 0x00007f5f5461af22 in g_thread_proxy (data=0x558c27929120) at ../glib/gthread.c:831
#18 0x00007f5f541ba19d in start_thread (arg=<optimized out>) at pthread_create.c:442
#19 0x00007f5f5423bc60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Warning: the current language does not match this frame.
Thread 1 (Thread 0x7f5f53de03c0 (LWP 508375) "test-gst"):
#0 0x00007f5f5422e3b6 in __ppoll (fds=0x558c27917e90, nfds=1, timeout=<optimized out>, sigmask=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:42
#1 0x00007f5f544d5936 in gst_poll_wait (set=0x558c276f3040, timeout=18446744073709551615) at ../subprojects/gstreamer/gst/gstpoll.c:1468
#2 0x00007f5f5446c602 in gst_bus_timed_pop_filtered (bus=0x558c279012a0, timeout=18446744073709551615, types=GST_MESSAGE_ANY) at ../subprojects/gstreamer/gst/gstbus.c:599
#3 0x00007f5f5446c7be in gst_bus_timed_pop (bus=0x558c279012a0, timeout=18446744073709551615) at ../subprojects/gstreamer/gst/gstbus.c:638
#4 0x0000558c26b23d14 in gstreamer::auto::bus::Bus::timed_pop<core::option::Option<gstreamer::format::clock_time::ClockTime>> (self=0x7ffdaef573d8, timeout=...) at src/auto/bus.rs:120
#5 0x0000558c26b23dd9 in gstreamer::bus::{impl#1}::next (self=0x7ffdaef57418) at src/bus.rs:333
#6 0x0000558c26b0c9c7 in test_gst::main () at src/main.rs:71
#7 0x0000558c26b093eb in core::ops::function::FnOnce::call_once<fn() -> core::result::Result<(), anyhow::Error>, ()> () at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/ops/function.rs:250
#8 0x0000558c26b0924e in std::sys_common::backtrace::__rust_begin_short_backtrace<fn() -> core::result::Result<(), anyhow::Error>, core::result::Result<(), anyhow::Error>> (f=0x558c26b0c0d0 <test_gst::main>) at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/sys_common/backtrace.rs:155
#9 0x0000558c26b04091 in std::rt::lang_start::{closure#0}<core::result::Result<(), anyhow::Error>> () at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/rt.rs:166
#10 0x0000558c26b58f61 in core::ops::function::impls::{impl#2}::call_once<(), (dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe)> () at library/core/src/ops/function.rs:284
#11 std::panicking::try::do_call<&(dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe), i32> () at library/std/src/panicking.rs:552
#12 std::panicking::try<i32, &(dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe)> () at library/std/src/panicking.rs:516
#13 std::panic::catch_unwind<&(dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe), i32> () at library/std/src/panic.rs:142
#14 std::rt::lang_start_internal::{closure#2} () at library/std/src/rt.rs:148
#15 std::panicking::try::do_call<std::rt::lang_start_internal::{closure_env#2}, isize> () at library/std/src/panicking.rs:552
#16 std::panicking::try<isize, std::rt::lang_start_internal::{closure_env#2}> () at library/std/src/panicking.rs:516
#17 std::panic::catch_unwind<std::rt::lang_start_internal::{closure_env#2}, isize> () at library/std/src/panic.rs:142
#18 std::rt::lang_start_internal () at library/std/src/rt.rs:148
#19 0x0000558c26b0406a in std::rt::lang_start<core::result::Result<(), anyhow::Error>> (main=0x558c26b0c0d0 <test_gst::main>, argc=2, argv=0x7ffdaef57a18, sigpipe=0) at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/rt.rs:165
#20 0x0000558c26b0d1de in main ()
#21 0x00007f5f54156550 in __libc_start_call_main (main=main@entry=0x558c26b0d1c0 <main>, argc=argc@entry=2, argv=argv@entry=0x7ffdaef57a18) at ../sysdeps/nptl/libc_start_call_main.h:58
#22 0x00007f5f54156609 in __libc_start_main_impl (main=0x558c26b0d1c0 <main>, argc=2, argv=0x7ffdaef57a18, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffdaef57a08) at ../csu/libc-start.c:360
#23 0x0000558c26aff175 in _start ()
```
I think the problem is in thread 4 where `uridecodebin3` keeps waiting for the input source to be drained.
`GST_DEBUG="*decodebin*:6,streamsynchronizer:6"` logs: [gst.log](/uploads/5c43114b9af830381025c25a68ec681f/gst.log)
Interestingly running the very same file from `http` does work:
```console
$ cargo run -- https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/raw/main/utils/uriplaylistbin/tests/sample.mkv
```
cc @bilboedhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/496rtpgccbwe: Resetting PTS/DTS to None breaks proper generation of RTCP and set...2024-02-26T12:28:37ZSebastian Drögertpgccbwe: Resetting PTS/DTS to None breaks proper generation of RTCP and setting of NTP-64 header extension in rtpsessionSee title. What's the rationale for doing this? Commenting out that code does not seem to have any negative effects and makes things work correctly
```diff
diff --git a/net/rtp/src/gcc/imp.rs b/net/rtp/src/gcc/imp.rs
index 84f6daa62..c...See title. What's the rationale for doing this? Commenting out that code does not seem to have any negative effects and makes things work correctly
```diff
diff --git a/net/rtp/src/gcc/imp.rs b/net/rtp/src/gcc/imp.rs
index 84f6daa62..ce43237f9 100644
--- a/net/rtp/src/gcc/imp.rs
+++ b/net/rtp/src/gcc/imp.rs
@@ -1152,9 +1152,9 @@ impl ObjectSubclass for BandwidthEstimator {
|| Err(gst::FlowError::Error),
|this| {
let mut state = this.state.lock().unwrap();
- let mutbuf = buffer.make_mut();
- mutbuf.set_pts(None);
- mutbuf.set_dts(None);
+ //let mutbuf = buffer.make_mut();
+ //mutbuf.set_pts(None);
+ //mutbuf.set_dts(None);
state.buffers.push_front(buffer);
state.flow_return
```
CC @thiblahutehttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3296GStreamer 1.23.x installer does not permit to select which feature to install.2024-02-14T10:08:36ZDavide PeriniGStreamer 1.23.x installer does not permit to select which feature to install.### Describe your issue
New installer (GStreamer 1.23.1 MSVC) does not let us to select which feature to install.
It installs everything.
#### Expected Behavior
Custom installation should let us to select which feature we want to insta...### Describe your issue
New installer (GStreamer 1.23.1 MSVC) does not let us to select which feature to install.
It installs everything.
#### Expected Behavior
Custom installation should let us to select which feature we want to install and which feature we want to exclude.
#### Setup
Windows 11, GStreamer 1.23.1
### Steps to reproduce the bug
Simply install GStreamer 1.23.1 with the installer.
### Screenshots if relevant
This shows the issue with the new installer (1.23.1):
![image](/uploads/f383f9d079144e3d4430c43dd8975e66/image.png)
This is how it should look like (1.22.9)
![image](/uploads/b644d48f6775da49dd24c39da566a74a/image.png)https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3295gldownload: DMA_DRM support missing, causing roundtrip to system ram2024-02-13T00:17:42ZRobert Madergldownload: DMA_DRM support missing, causing roundtrip to system ramWhile `glupload` supports the `DMA_DRM`/`drm-format` API already, this is not yet the case for `gldownload`. That is unfortunate in a couple of scenarios, such as in combination with `va*` elements (especially encoders) where this may ca...While `glupload` supports the `DMA_DRM`/`drm-format` API already, this is not yet the case for `gldownload`. That is unfortunate in a couple of scenarios, such as in combination with `va*` elements (especially encoders) where this may cause a fallback to system memory instead of handing over a DMABuf handle.
---
This is somewhat a dupe of https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2860, however that predates the `DMA_DRM` API.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3294rtspsrc failing on Android2024-02-13T03:10:10Zpetebenrtspsrc failing on AndroidI am getting the following error when using rtspsrc on Android:
gstrtspconnection.c:1156:gst_rtsp_connection_connect_with_response_usec failed to connect: Unable to create socket: Operation not permitted
the pipeline is 'rtspsrc locati...I am getting the following error when using rtspsrc on Android:
gstrtspconnection.c:1156:gst_rtsp_connection_connect_with_response_usec failed to connect: Unable to create socket: Operation not permitted
the pipeline is 'rtspsrc location=rtsp://192.168.XX.XX/3 latency=500 ! queue ! decodebin ! autovideosink'
This pipeline works fine when run from gst-launcher on windows.
I have tried two different RTSP servers, a hardware HDMI encoder, and VLC.
Thanks for any insightshttps://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/493Ubuntu 22.04 | Webrtc build broken2024-02-12T11:25:25Zomerts3Ubuntu 22.04 | Webrtc build broken### Describe your issue
When trying to build latest code for `webrtcsink` on an Ubuntu 22.04 machine, I am getting the following error:
```
warning: gstreamer-sys@0.23.0:
error: failed to run custom build command for `gstreamer-sys v0...### Describe your issue
When trying to build latest code for `webrtcsink` on an Ubuntu 22.04 machine, I am getting the following error:
```
warning: gstreamer-sys@0.23.0:
error: failed to run custom build command for `gstreamer-sys v0.23.0 (https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#2613c577)`
Caused by:
process didn't exit successfully: `/home/amram/development/gst-plugins-rs/target/debug/build/gstreamer-sys-c4925ece94778f23/build-script-build` (exit status: 1)
--- stdout
cargo:rerun-if-env-changed=GSTREAMER_1.0_NO_PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
cargo:warning=
pkg-config exited with status code 1
> PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 pkg-config --libs --cflags gstreamer-1.0 gstreamer-1.0 >= 1.22
The system library `gstreamer-1.0` required by crate `gstreamer-sys` was not found.
The file `gstreamer-1.0.pc` needs to be installed and the PKG_CONFIG_PATH environment variable must contain its parent directory.
The PKG_CONFIG_PATH environment variable is not set.
HINT: if you have installed the library, try setting PKG_CONFIG_PATH to the directory containing `gstreamer-1.0.pc`.
```
The error seems due to gstreamer-sys expecting gstreamer 1.22, but current gstreamer apt version for Ubuntu 22.04 is `1.20.3`. Using a Cargo.toml from before the change in in the past few days, works as expected. Looking at the logs the difference I see is that after the change the build command includes `CARGO_FEATURE_V1_22=1` which causes the gstreamer-sys lib to try to build for version 1.22 which doesn't exist.
#### Expected Behavior
Build should succeed
#### Observed Behavior
Build fails
#### Setup
- **Operating System:** Ubuntu 22.04 Jammy
- **Device:** Computer
- **gst-plugins-rs Version:** Latest main
- **GStreamer Version:** 1.20.3
- **Command line:** Terminal
### Steps to reproduce the bug
<!-- please fill in exact steps which reproduce the bug on your system, for example: -->
1. open terminal in an Ubuntu 22.04 machin
2. `git clone https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git`
3. `cd /gst-plugins-rs/net/webrtc`
4. `cargo build`
### How reproducible is the bug?
Always
### Solutions you have tried
Reverting the code to an older version (works). Building on different images in docker (failed).https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3292playbin3: dead lock between typefind and urisourcebin when setting state to NULL2024-02-15T10:50:21ZGuillaume Desmottesplaybin3: dead lock between typefind and urisourcebin when setting state to NULLI'm getting a deadlock between `typefind` and `urisourcebin` when trying to set `playbin3` state to `NULL`.
- Thread 54
- holding `typefind:sink` stream lock, as `gst_type_find_element_loop` is the pad task
- waiting on `urisourcebi...I'm getting a deadlock between `typefind` and `urisourcebin` when trying to set `playbin3` state to `NULL`.
- Thread 54
- holding `typefind:sink` stream lock, as `gst_type_find_element_loop` is the pad task
- waiting on `urisourcebin` state lock
- Thread 2
- holding `urisourcebin` state lock in `gst_element_set_state_func`
- waiting on `typefind:sink` stream lock
```
Thread 54 (Thread 0x7f3d256006c0 (LWP 163999) "typefindelement"):
#0 0x00007f3d8ab1dfc0 in __lll_lock_wait () at /lib64/libc.so.6
#1 0x00007f3d8ab244da in pthread_mutex_lock@@GLIBC_2.2.5 () at /lib64/libc.so.6
#2 0x00007f3d84747fad in setup_parsebin_for_slot (info=0x7f3bc91e6ad0, originating_pad=0x7f3d8068ca90) at ../subprojects/gst-plugins-base/gst/playback/gsturisourcebin.c:1946
#3 0x00007f3d8474894d in handle_new_pad (info=0x7f3bc91e6ad0, srcpad=0x7f3d8068ca90, caps=0x7f3bc0007ee0) at ../subprojects/gst-plugins-base/gst/playback/gsturisourcebin.c:2103
#4 0x00007f3d84748e95 in type_found (typefind=0x7f3d802c63c0, probability=100, caps=0x7f3bc0007ee0, info=0x7f3bc91e6ad0) at ../subprojects/gst-plugins-base/gst/playback/gsturisourcebin.c:2186
#5 0x00007f3d8a8faa06 in ffi_call_unix64 () at /lib64/libffi.so.8
#6 0x00007f3d8a8f749d in ffi_call_int.lto_priv () at /lib64/libffi.so.8
#7 0x00007f3d8a8fa083 in ffi_call () at /lib64/libffi.so.8
#8 0x00007f3d8c117113 in g_cclosure_marshal_generic () at /lib64/libgobject-2.0.so.0
#9 0x00007f3d8c111060 in g_closure_invoke () at /lib64/libgobject-2.0.so.0
#10 0x00007f3d8c13df66 in signal_emit_unlocked_R.isra.0 () at /lib64/libgobject-2.0.so.0
#11 0x00007f3d8c12e4da in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#12 0x00007f3d8c12e6f3 in g_signal_emit () at /lib64/libgobject-2.0.so.0
#13 0x00007f3d846e16dd in gst_type_find_element_emit_have_type (typefind=0x7f3d802c63c0, probability=100, caps=0x7f3bc0007ee0) at ../subprojects/gstreamer/plugins/elements/gsttypefindelement.c:239
#14 0x00007f3d846e4b9d in gst_type_find_element_loop (pad=0x7f3bc91ea550) at ../subprojects/gstreamer/plugins/elements/gsttypefindelement.c:1195
#15 0x00007f3d8c2670f6 in gst_task_func (task=0x7f3bc91c83b0) at ../subprojects/gstreamer/gst/gsttask.c:399
#16 0x00007f3d8c268501 in default_func (tdata=0x7f3d805b6fe0, pool=0x7f3d805b6100) at ../subprojects/gstreamer/gst/gsttaskpool.c:70
#17 0x00007f3d8c043052 in g_thread_pool_thread_proxy.lto_priv () at /lib64/libglib-2.0.so.0
#18 0x00007f3d8c03ff22 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#19 0x00007f3d8ab2119d in start_thread () at /lib64/libc.so.6
#20 0x00007f3d8aba2c60 in clone3 () at /lib64/libc.so.6
Thread 2 (Thread 0x7f3d876006c0 (LWP 163945) "player::tests::"):
#0 0x00007f3d8ab1dfc0 in __lll_lock_wait () at /lib64/libc.so.6
#1 0x00007f3d8ab244da in pthread_mutex_lock@@GLIBC_2.2.5 () at /lib64/libc.so.6
#2 0x00007f3d8c22dff3 in gst_pad_stop_task (pad=0x7f3bc91ea550) at ../subprojects/gstreamer/gst/gstpad.c:6514
#3 0x00007f3d846e5155 in gst_type_find_element_activate_sink_mode (pad=0x7f3bc91ea550, parent=0x7f3d802c63c0, mode=GST_PAD_MODE_PULL, active=0) at ../subprojects/gstreamer/plugins/elements/gsttypefindelement.c:1288
#4 0x00007f3d8c21bc24 in activate_mode_internal (pad=0x7f3bc91ea550, parent=0x7f3d802c63c0, mode=GST_PAD_MODE_PULL, active=0) at ../subprojects/gstreamer/gst/gstpad.c:1224
#5 0x00007f3d8c21b7a2 in gst_pad_set_active (pad=0x7f3bc91ea550, active=0) at ../subprojects/gstreamer/gst/gstpad.c:1122
#6 0x00007f3d8c1f620b in activate_pads (vpad=0x7f3d875fe340, ret=0x7f3d875fe390, active=0x7f3d875fe3c4) at ../subprojects/gstreamer/gst/gstelement.c:3189
#7 0x00007f3d8c20da8d in gst_iterator_fold (it=0x7f3d8024aa10, func=0x7f3d8c1f61cc <activate_pads>, ret=0x7f3d875fe390, user_data=0x7f3d875fe3c4) at ../subprojects/gstreamer/gst/gstiterator.c:618
#8 0x00007f3d8c1f6294 in iterator_activate_fold_with_resync (iter=0x7f3d8024aa10, func=0x7f3d8c1f61cc <activate_pads>, user_data=0x7f3d875fe3c4) at ../subprojects/gstreamer/gst/gstelement.c:3213
#9 0x00007f3d8c1f63ce in gst_element_pads_activate (element=0x7f3d802c63c0, active=0) at ../subprojects/gstreamer/gst/gstelement.c:3258
#10 0x00007f3d8c1f66db in gst_element_change_state_func (element=0x7f3d802c63c0, transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../subprojects/gstreamer/gst/gstelement.c:3323
#11 0x00007f3d846e52eb in gst_type_find_element_change_state (element=0x7f3d802c63c0, transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../subprojects/gstreamer/plugins/elements/gsttypefindelement.c:1353
#12 0x00007f3d8c1f5cf1 in gst_element_change_state (element=0x7f3d802c63c0, transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../subprojects/gstreamer/gst/gstelement.c:3101
#13 0x00007f3d8c1f5a76 in gst_element_set_state_func (element=0x7f3d802c63c0, state=GST_STATE_READY) at ../subprojects/gstreamer/gst/gstelement.c:3055
#14 0x00007f3d8c1f5661 in gst_element_set_state (element=0x7f3d802c63c0, state=GST_STATE_READY) at ../subprojects/gstreamer/gst/gstelement.c:2956
#15 0x00007f3d8c1c2259 in gst_bin_element_set_state (bin=0x7f3d8068ccc0, element=0x7f3d802c63c0, base_time=0, start_time=0, current=GST_STATE_PAUSED, next=GST_STATE_READY) at ../subprojects/gstreamer/gst/gstbin.c:2582
#16 0x00007f3d8c1c38f7 in gst_bin_change_state_func (element=0x7f3d8068ccc0, transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../subprojects/gstreamer/gst/gstbin.c:2934
#17 0x00007f3d8474c219 in gst_uri_source_bin_change_state (element=0x7f3d8068ccc0, transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../subprojects/gst-plugins-base/gst/playback/gsturisourcebin.c:3083
#18 0x00007f3d8c1f5cf1 in gst_element_change_state (element=0x7f3d8068ccc0, transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../subprojects/gstreamer/gst/gstelement.c:3101
#19 0x00007f3d8c1f5a76 in gst_element_set_state_func (element=0x7f3d8068ccc0, state=GST_STATE_READY) at ../subprojects/gstreamer/gst/gstelement.c:3055
#20 0x00007f3d8c1f5661 in gst_element_set_state (element=0x7f3d8068ccc0, state=GST_STATE_READY) at ../subprojects/gstreamer/gst/gstelement.c:2956
#21 0x00007f3d8c1c2259 in gst_bin_element_set_state (bin=0x7f3d8068c380, element=0x7f3d8068ccc0, base_time=0, start_time=0, current=GST_STATE_PAUSED, next=GST_STATE_READY) at ../subprojects/gstreamer/gst/gstbin.c:2582
#22 0x00007f3d8c1c38f7 in gst_bin_change_state_func (element=0x7f3d8068c380, transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../subprojects/gstreamer/gst/gstbin.c:2934
#23 0x00007f3d84741a4f in gst_uri_decode_bin3_change_state (element=0x7f3d8068c380, transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../subprojects/gst-plugins-base/gst/playback/gsturidecodebin3.c:2083
#24 0x00007f3d8c1f5cf1 in gst_element_change_state (element=0x7f3d8068c380, transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../subprojects/gstreamer/gst/gstelement.c:3101
#25 0x00007f3d8c1f5a76 in gst_element_set_state_func (element=0x7f3d8068c380, state=GST_STATE_READY) at ../subprojects/gstreamer/gst/gstelement.c:3055
#26 0x00007f3d8c1f5661 in gst_element_set_state (element=0x7f3d8068c380, state=GST_STATE_READY) at ../subprojects/gstreamer/gst/gstelement.c:2956
#27 0x00007f3d8c1c2259 in gst_bin_element_set_state (bin=0x7f3d8068e090, element=0x7f3d8068c380, base_time=0, start_time=0, current=GST_STATE_PAUSED, next=GST_STATE_READY) at ../subprojects/gstreamer/gst/gstbin.c:2582
#28 0x00007f3d8c1c38f7 in gst_bin_change_state_func (element=0x7f3d8068e090, transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../subprojects/gstreamer/gst/gstbin.c:2934
#29 0x00007f3d8c231a37 in gst_pipeline_change_state (element=0x7f3d8068e090, transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../subprojects/gstreamer/gst/gstpipeline.c:534
#30 0x00007f3d8477126d in gst_play_bin3_change_state (element=0x7f3d8068e090, transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../subprojects/gst-plugins-base/gst/playback/gstplaybin3.c:2705
#31 0x00007f3d8c1f5cf1 in gst_element_change_state (element=0x7f3d8068e090, transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../subprojects/gstreamer/gst/gstelement.c:3101
#32 0x00007f3d8c1f5a76 in gst_element_set_state_func (element=0x7f3d8068e090, state=GST_STATE_NULL) at ../subprojects/gstreamer/gst/gstelement.c:3055
#33 0x00007f3d8c1f5661 in gst_element_set_state (element=0x7f3d8068e090, state=GST_STATE_NULL) at ../subprojects/gstreamer/gst/gstelement.c:2956
#34 0x0000564ab8a4ded0 in gstreamer::auto::element::ElementExt::set_state<gstreamer::auto::element::Element> (self=0x7f3d875ff190, state=gstreamer::auto::enums::State::Null) at /var/home/cassidy/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gstreamer-0.21.3/src/auto/element.rs:458
#35 karapulse::player::{impl#1}::drop (self=<optimized out>) at src/player.rs:372
#36 core::ptr::drop_in_place<karapulse::player::Player> () at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/ptr/mod.rs:507
#37 0x0000564ab8a4f90c in core::ptr::drop_in_place<karapulse::player::tests::Test> () at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/ptr/mod.rs:507
#38 0x0000564ab8ad6326 in karapulse::player::tests::stop () at src/player.rs:539
#39 karapulse::player::tests::player_tests () at src/player.rs:484
#40 0x0000564ab8acb9d9 in karapulse::player::tests::player_tests::{closure#0} () at src/player.rs:472
#41 core::ops::function::FnOnce::call_once<karapulse::player::tests::player_tests::{closure_env#0}, ()> () at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/ops/function.rs:250
#42 0x0000564ab8c97d2f in core::ops::function::FnOnce::call_once<fn() -> core::result::Result<(), alloc::string::String>, ()> () at library/core/src/ops/function.rs:250
#43 test::__rust_begin_short_backtrace<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>> () at library/test/src/lib.rs:627
#44 0x0000564ab8c96ab1 in test::run_test_in_process::{closure#0} () at library/test/src/lib.rs:650
#45 core::panic::unwind_safe::{impl#23}::call_once<core::result::Result<(), alloc::string::String>, test::run_test_in_process::{closure_env#0}> () at library/core/src/panic/unwind_safe.rs:272
#46 std::panicking::try::do_call<core::panic::unwind_safe::AssertUnwindSafe<test::run_test_in_process::{closure_env#0}>, core::result::Result<(), alloc::string::String>> () at library/std/src/panicking.rs:552
#47 std::panicking::try<core::result::Result<(), alloc::string::String>, core::panic::unwind_safe::AssertUnwindSafe<test::run_test_in_process::{closure_env#0}>> () at library/std/src/panicking.rs:516
#48 std::panic::catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<test::run_test_in_process::{closure_env#0}>, core::result::Result<(), alloc::string::String>> () at library/std/src/panic.rs:142
#49 test::run_test_in_process () at library/test/src/lib.rs:650
#50 test::run_test::{closure#0} () at library/test/src/lib.rs:573
#51 0x0000564ab8c5b966 in test::run_test::{closure#1} () at library/test/src/lib.rs:601
#52 std::sys_common::backtrace::__rust_begin_short_backtrace<test::run_test::{closure_env#1}, ()> () at library/std/src/sys_common/backtrace.rs:155
#53 0x0000564ab8c609c7 in std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure#0}<test::run_test::{closure_env#1}, ()> () at library/std/src/thread/mod.rs:529
#54 core::panic::unwind_safe::{impl#23}::call_once<(), std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure_env#0}<test::run_test::{closure_env#1}, ()>> () at library/core/src/panic/unwind_safe.rs:272
#55 std::panicking::try::do_call<core::panic::unwind_safe::AssertUnwindSafe<std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure_env#0}<test::run_test::{closure_env#1}, ()>>, ()> () at library/std/src/panicking.rs:552
#56 std::panicking::try<(), core::panic::unwind_safe::AssertUnwindSafe<std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure_env#0}<test::run_test::{closure_env#1}, ()>>> () at library/std/src/panicking.rs:516
#57 std::panic::catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure_env#0}<test::run_test::{closure_env#1}, ()>>, ()> () at library/std/src/panic.rs:142
#58 std::thread::{impl#0}::spawn_unchecked_::{closure#1}<test::run_test::{closure_env#1}, ()> () at library/std/src/thread/mod.rs:528
#59 core::ops::function::FnOnce::call_once<std::thread::{impl#0}::spawn_unchecked_::{closure_env#1}<test::run_test::{closure_env#1}, ()>, ()> () at library/core/src/ops/function.rs:250
#60 0x0000564ab94a11a5 in alloc::boxed::{impl#47}::call_once<(), dyn core::ops::function::FnOnce<(), Output=()>, alloc::alloc::Global> () at library/alloc/src/boxed.rs:2015
#61 alloc::boxed::{impl#47}::call_once<(), alloc::boxed::Box<dyn core::ops::function::FnOnce<(), Output=()>, alloc::alloc::Global>, alloc::alloc::Global> () at library/alloc/src/boxed.rs:2015
#62 std::sys::unix::thread::{impl#2}::new::thread_start () at library/std/src/sys/unix/thread.rs:108
#63 0x00007f3d8ab2119d in start_thread () at /lib64/libc.so.6
#64 0x00007f3d8aba2c60 in clone3 () at /lib64/libc.so.6
```Edward HerveyEdward Herveyhttps://gitlab.freedesktop.org/gstreamer/orc/-/issues/64SIGILL on aarch64 when setting volume2024-02-20T14:39:20ZFabio ManganielloSIGILL on aarch64 when setting volume### Describe your issue
```
$ gst-launch-1.0 -v -m audiotestsrc ! volume volume=0.5 ! fakesink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Got message #7 from element "fakesink0" (state-changed): GstMessageStateChanged, ol...### Describe your issue
```
$ gst-launch-1.0 -v -m audiotestsrc ! volume volume=0.5 ! fakesink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Got message #7 from element "fakesink0" (state-changed): GstMessageStateChanged, old-state=(GstState)null, new-state=(GstState)ready, pending-state=(GstState)void-pending;
Got message #8 from element "volume0" (state-changed): GstMessageStateChanged, old-state=(GstState)null, new-state=(GstState)ready, pending-state=(GstState)void-pending;
Got message #9 from element "audiotestsrc0" (state-changed): GstMessageStateChanged, old-state=(GstState)null, new-state=(GstState)ready, pending-state=(GstState)void-pending;
Got message #10 from element "pipeline0" (state-changed): GstMessageStateChanged, old-state=(GstState)null, new-state=(GstState)ready, pending-state=(GstState)paused;
Got message #12 from element "volume0" (state-changed): GstMessageStateChanged, old-state=(GstState)ready, new-state=(GstState)paused, pending-state=(GstState)void-pending;
Got message #15 from pad "audiotestsrc0:src" (stream-status): GstMessageStreamStatus, type=(GstStreamStatusType)create, owner=(GstElement)"\(GstAudioTestSrc\)\ audiotestsrc0", object=(GstTask)"\(GstTask\)\ audiotestsrc0:src";
Got message #16 from element "audiotestsrc0" (state-changed): GstMessageStateChanged, old-state=(GstState)ready, new-state=(GstState)paused, pending-state=(GstState)void-pending;
Got message #17 from pad "audiotestsrc0:src" (stream-status): GstMessageStreamStatus, type=(GstStreamStatusType)enter, owner=(GstElement)"\(GstAudioTestSrc\)\ audiotestsrc0", object=(GstTask)"\(GstTask\)\ audiotestsrc0:src";
Got message #18 from element "pipeline0" (stream-start): GstMessageStreamStart, group-id=(uint)1;
Got message #22 from pad "audiotestsrc0:src" (property-notify): GstMessagePropertyNotify, property-name=(string)caps, property-value=(GstCaps)"audio/x-raw\,\ format\=\(string\)S16LE\,\ layout\=\(string\)interleaved\,\ rate\=\(int\)44100\,\ channels\=\(int\)1";
/GstPipeline:pipeline0/GstAudioTestSrc:audiotestsrc0.GstPad:src: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)1
Got message #24 from pad "volume0:src" (property-notify): GstMessagePropertyNotify, property-name=(string)caps, property-value=(GstCaps)"audio/x-raw\,\ format\=\(string\)S16LE\,\ layout\=\(string\)interleaved\,\ rate\=\(int\)44100\,\ channels\=\(int\)1";
/GstPipeline:pipeline0/GstVolume:volume0.GstPad:src: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)1
Got message #25 from pad "fakesink0:sink" (property-notify): GstMessagePropertyNotify, property-name=(string)caps, property-value=(GstCaps)"audio/x-raw\,\ format\=\(string\)S16LE\,\ layout\=\(string\)interleaved\,\ rate\=\(int\)44100\,\ channels\=\(int\)1";
/GstPipeline:pipeline0/GstFakeSink:fakesink0.GstPad:sink: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)1
Got message #26 from pad "volume0:sink" (property-notify): GstMessagePropertyNotify, property-name=(string)caps, property-value=(GstCaps)"audio/x-raw\,\ format\=\(string\)S16LE\,\ layout\=\(string\)interleaved\,\ rate\=\(int\)44100\,\ channels\=\(int\)1";
/GstPipeline:pipeline0/GstVolume:volume0.GstPad:sink: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)1
Got message #30 from element "fakesink0" (tag): GstMessageTag, taglist=(taglist)"taglist\,\ description\=\(string\)\"audiotest\\\ wave\"\;";
[1] 1587 illegal hardware instruction (core dumped) gst-launch-1.0 -v -m audiotestsrc ! volume volume=0.5 ! fakesink
```
#### Expected Behavior
Setting the volume of a pipeline shouldn't cause the application to crash.
#### Observed Behavior
The application crashed with SIGILL.
#### Setup
- **Operating System:** Arch Linux ARM aarch64
- **Device:** Raspberry Pi 5
- **GStreamer Version:** 1.22.9, installed via pacman
- **Command line:** Any command line involving the `volume` element
### Steps to reproduce the bug
See the command line above for an example.
In my case it causes a crash in mopidy whenever the volume is changed via the software mixer.
### How reproducible is the bug?
Always, and very easy to reproduce.
### Screenshots if relevant
N/A
### Solutions you have tried
- Using Pipewire instead of Pulseaudio
- Using raw ALSA instead of Pulseaudio
- Disabling the HDMI audio output
- Tried over audio jack, USB audio card and Bluetooth audio
### Related non-duplicate issues
https://github.com/mopidy/mopidy/issues/2148
### Additional Information
- [Core dump of the `gst-launch-1.0` command](https://github.com/mopidy/mopidy/files/14225920/core.tar.gz)
- [Logs with `GST_DEBUG=9`](https://github.com/mopidy/mopidy/files/14226210/log.tar.gz)https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3288SIGILL on aarch64 when setting volume2024-02-11T16:59:16ZFabio ManganielloSIGILL on aarch64 when setting volume### Describe your issue
```
$ gst-launch-1.0 -v -m audiotestsrc ! volume volume=0.5 ! fakesink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Got message #7 from element "fakesink0" (state-changed): GstMessageStateChanged, ol...### Describe your issue
```
$ gst-launch-1.0 -v -m audiotestsrc ! volume volume=0.5 ! fakesink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Got message #7 from element "fakesink0" (state-changed): GstMessageStateChanged, old-state=(GstState)null, new-state=(GstState)ready, pending-state=(GstState)void-pending;
Got message #8 from element "volume0" (state-changed): GstMessageStateChanged, old-state=(GstState)null, new-state=(GstState)ready, pending-state=(GstState)void-pending;
Got message #9 from element "audiotestsrc0" (state-changed): GstMessageStateChanged, old-state=(GstState)null, new-state=(GstState)ready, pending-state=(GstState)void-pending;
Got message #10 from element "pipeline0" (state-changed): GstMessageStateChanged, old-state=(GstState)null, new-state=(GstState)ready, pending-state=(GstState)paused;
Got message #12 from element "volume0" (state-changed): GstMessageStateChanged, old-state=(GstState)ready, new-state=(GstState)paused, pending-state=(GstState)void-pending;
Got message #15 from pad "audiotestsrc0:src" (stream-status): GstMessageStreamStatus, type=(GstStreamStatusType)create, owner=(GstElement)"\(GstAudioTestSrc\)\ audiotestsrc0", object=(GstTask)"\(GstTask\)\ audiotestsrc0:src";
Got message #16 from element "audiotestsrc0" (state-changed): GstMessageStateChanged, old-state=(GstState)ready, new-state=(GstState)paused, pending-state=(GstState)void-pending;
Got message #17 from pad "audiotestsrc0:src" (stream-status): GstMessageStreamStatus, type=(GstStreamStatusType)enter, owner=(GstElement)"\(GstAudioTestSrc\)\ audiotestsrc0", object=(GstTask)"\(GstTask\)\ audiotestsrc0:src";
Got message #18 from element "pipeline0" (stream-start): GstMessageStreamStart, group-id=(uint)1;
Got message #22 from pad "audiotestsrc0:src" (property-notify): GstMessagePropertyNotify, property-name=(string)caps, property-value=(GstCaps)"audio/x-raw\,\ format\=\(string\)S16LE\,\ layout\=\(string\)interleaved\,\ rate\=\(int\)44100\,\ channels\=\(int\)1";
/GstPipeline:pipeline0/GstAudioTestSrc:audiotestsrc0.GstPad:src: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)1
Got message #24 from pad "volume0:src" (property-notify): GstMessagePropertyNotify, property-name=(string)caps, property-value=(GstCaps)"audio/x-raw\,\ format\=\(string\)S16LE\,\ layout\=\(string\)interleaved\,\ rate\=\(int\)44100\,\ channels\=\(int\)1";
/GstPipeline:pipeline0/GstVolume:volume0.GstPad:src: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)1
Got message #25 from pad "fakesink0:sink" (property-notify): GstMessagePropertyNotify, property-name=(string)caps, property-value=(GstCaps)"audio/x-raw\,\ format\=\(string\)S16LE\,\ layout\=\(string\)interleaved\,\ rate\=\(int\)44100\,\ channels\=\(int\)1";
/GstPipeline:pipeline0/GstFakeSink:fakesink0.GstPad:sink: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)1
Got message #26 from pad "volume0:sink" (property-notify): GstMessagePropertyNotify, property-name=(string)caps, property-value=(GstCaps)"audio/x-raw\,\ format\=\(string\)S16LE\,\ layout\=\(string\)interleaved\,\ rate\=\(int\)44100\,\ channels\=\(int\)1";
/GstPipeline:pipeline0/GstVolume:volume0.GstPad:sink: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)1
Got message #30 from element "fakesink0" (tag): GstMessageTag, taglist=(taglist)"taglist\,\ description\=\(string\)\"audiotest\\\ wave\"\;";
[1] 1587 illegal hardware instruction (core dumped) gst-launch-1.0 -v -m audiotestsrc ! volume volume=0.5 ! fakesink
```
#### Expected Behavior
Setting the volume of a pipeline shouldn't cause the application to crash.
#### Observed Behavior
The application crashed with SIGILL.
#### Setup
- **Operating System:** Arch Linux ARM aarch64
- **Device:** Raspberry Pi 5
- **GStreamer Version:** 1.22.9, installed via pacman
- **Command line:** Any command line involving the `volume` element
### Steps to reproduce the bug
See the command line above for an example.
In my case it causes a crash in mopidy whenever the volume is changed via the software mixer.
### How reproducible is the bug?
Always, and very easy to reproduce.
### Screenshots if relevant
N/A
### Solutions you have tried
- Using Pipewire instead of Pulseaudio
- Using raw ALSA instead of Pulseaudio
- Disabling the HDMI audio output
- Tried over audio jack, USB audio card and Bluetooth audio
### Related non-duplicate issues
https://github.com/mopidy/mopidy/issues/2148
### Additional Information
- [Core dump of the `gst-launch-1.0` command](https://github.com/mopidy/mopidy/files/14225920/core.tar.gz)
- [Logs with `GST_DEBUG=9`](https://github.com/mopidy/mopidy/files/14226210/log.tar.gz)https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/1040sdp: add source-filter in SDP information generated by gstreamer2024-02-10T16:46:42Zbigbrobrodysdp: add source-filter in SDP information generated by gstreamerEnhancement: Add support for SDP source-filter field as per RFC 4570.
The source-filter line should be added when a source-specific multicast (SSM) address is being used by the server.
As per RFC 3569 The address range 232/8 has been ass...Enhancement: Add support for SDP source-filter field as per RFC 4570.
The source-filter line should be added when a source-specific multicast (SSM) address is being used by the server.
As per RFC 3569 The address range 232/8 has been assigned by IANA for SSM service in IPv4. For IPv6, the range FF3x::/96 is defined for SSM services.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3287srt: If we build with srt disabled we will get complaints about srt_dep2024-02-09T18:33:05ZJonas Danielssonsrt: If we build with srt disabled we will get complaints about srt_dep```plaintext
../subprojects/gst-plugins-bad/tests/check/meson.build:72:35: ERROR: Unknown variable "srt_dep".
``````plaintext
../subprojects/gst-plugins-bad/tests/check/meson.build:72:35: ERROR: Unknown variable "srt_dep".
```Tim-Philipp Müllertim@centricular.comTim-Philipp Müllertim@centricular.comhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3284vah265dec - green image with raw output to timeoverlay2024-02-16T13:56:51ZJan Schmidtvah265dec - green image with raw output to timeoverlayI found that here, `va265dec` is producing a green frame when fed through `timeoverlay` to `xvimagesink`, but works without `timeoverlay`.
May be related to #2940, I'm not sure.
Works: `gst-play-1.0 test-h265.mp4 --videosink="xvimagesi...I found that here, `va265dec` is producing a green frame when fed through `timeoverlay` to `xvimagesink`, but works without `timeoverlay`.
May be related to #2940, I'm not sure.
Works: `gst-play-1.0 test-h265.mp4 --videosink="xvimagesink"`
Shows only green frame with time overlay: `gst-play-1.0 test-h265.mp4 --videosink="timeoverlay ! xvimagesink"
```
vainfo: VA-API version: 1.18 (libva 2.18.2)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 23.1.6 ()
```
GST_DEBUG has a lot of
```
0:00:01.824542742 471874 0x7fa5a8001180 DEBUG vamemory gstvaallocator.c:1587:_va_copy: 0x7fa5a01956d0: copy 0, 18446744073709551615
0:00:01.824839743 471874 0x7fa5a8001180 INFO vadisplay vasurfaceimage.c:414:va_copy_surface: vaCopy: invalid parameter
```https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3283aja: Global named semaphore is never unlinked2024-02-15T10:08:47ZXavier Claessensxclaesse@gmail.comaja: Global named semaphore is never unlinkedAJA plugin has a global named semaphore created with `sem_open("/gstreamer-aja-sem", O_CREAT, S_IRUSR | S_IWUSR, 1);`. That ensures that not 2 processes can configure the device concurrently. However, that semaphore is never closed/unlin...AJA plugin has a global named semaphore created with `sem_open("/gstreamer-aja-sem", O_CREAT, S_IRUSR | S_IWUSR, 1);`. That ensures that not 2 processes can configure the device concurrently. However, that semaphore is never closed/unlinked which means the first user to create the semaphore owns it until reboot. Other users get error `Failed to create SHM semaphore for GStreamer AJA plugin: Permission denied`. This is a problem in our project because the service running in prod runs under a different user (less privileged) than developers that could be running tests with e.g. gst-launch.
In addition, I think the semaphore name should include the `device-identifier` property. It should be a per-device lock and not global.https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/490Segmentation fault running `gst-inspect -a` when libgstgtk4.so is installed2024-02-12T17:07:17ZRubén GonzalezSegmentation fault running `gst-inspect -a` when libgstgtk4.so is installed### Describe your issue
Segmentation fault when getting default value of `paintable` property from `gtk4paintablesink` element:
> cannot register existing type 'GdkDisplayManager'
#### Expected Behavior
No Segmentation fault
#### Ob...### Describe your issue
Segmentation fault when getting default value of `paintable` property from `gtk4paintablesink` element:
> cannot register existing type 'GdkDisplayManager'
#### Expected Behavior
No Segmentation fault
#### Observed Behavior
Segmentation fault
#### Setup
- **Operating System:** Arch
- **gst-plugins-rs Version:** main
- **GStreamer Version:** 1.22.9
- **Command line:** `gst-inspect-1.0 -a`
### Steps to reproduce the bug
Easily reproducible with:
```
mkdir lib
cp /usr/lib/gstreamer-1.0/libgstgtk4.so lib
cp /usr/lib/gstreamer-1.0/libgstgtk.so lib
G_DEBUG=fatal-warnings GST_PLUGIN_SYSTEM_PATH=$(realpath lib ) GST_INSPECT_NO_COLORS=true PAGER=cat gst-inspect-1.0 -a
```
### How reproducible is the bug?
Always
`libgstgtk4.so` uses `libgtk-4.so.1` and `libgstgtk.so` uses `libgtk-3.so.0`
### Additional Information
<details><summary>gdb backtrace</summary>
```
Thread 1 "gst-inspect-1.0" received signal SIGTRAP, Trace/breakpoint trap.
g_logv (log_domain=0x7ffff7cd4015 "GLib-GObject", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=args@entry=0x7fffffffd0a0) at ../glib/glib/gmessages.c:1423
1423 g_private_set (&g_log_depth, GUINT_TO_POINTER (depth));
(gdb) bt
#0 g_logv (log_domain=0x7ffff7cd4015 "GLib-GObject", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=args@entry=0x7fffffffd0a0) at ../glib/glib/gmessages.c:1423
#1 0x00007ffff7d54724 in g_log (log_domain=log_domain@entry=0x7ffff7cd4015 "GLib-GObject", log_level=log_level@entry=G_LOG_LEVEL_CRITICAL, format=format@entry=0x7ffff7cdbea8 "cannot register existing type '%s'") at ../glib/glib/gmessages.c:1461
#2 0x00007ffff7cc604e in check_type_name_I (type_name=0x7ffff6f250e8 "GdkDisplayManager") at ../glib/gobject/gtype.c:791
#3 0x00007ffff7ccd52f in g_type_register_static (parent_type=parent_type@entry=0x50, type_name=0x7ffff6f250e8 "GdkDisplayManager", info=info@entry=0x7fffffffd1f0, flags=flags@entry=G_TYPE_FLAG_NONE) at ../glib/gobject/gtype.c:2881
#4 0x00007ffff7ccd789 in g_type_register_static_simple
(flags=G_TYPE_FLAG_NONE, instance_init=0x7fffea62dae0 <gdk_display_manager_init>, instance_size=40, class_init=0x7fffea635270 <gdk_display_manager_class_intern_init>, class_size=144, type_name=<optimized out>, parent_type=0x50) at ../glib/gobject/gtype.c:2849
#5 g_type_register_static_simple
(parent_type=parent_type@entry=0x50, type_name=<optimized out>, class_size=class_size@entry=144, class_init=class_init@entry=0x7fffea635270 <gdk_display_manager_class_intern_init>, instance_size=instance_size@entry=40, instance_init=instance_init@entry=0x7fffea62dae0 <gdk_display_manager_init>, flags=G_TYPE_FLAG_NONE) at ../glib/gobject/gtype.c:2822
#6 0x00007fffea62e10e in gdk_display_manager_get_type_once () at ../gtk/gdk/gdkdisplaymanager.c:123
#7 0x00007fffea62f695 in gdk_display_manager_get_type () at ../gtk/gdk/gdkdisplaymanager.c:123
#8 0x00007fffea62f6f2 in gdk_display_manager_get () at ../gtk/gdk/gdkdisplaymanager.c:298
#9 0x00007fffea62f7ce in gdk_display_get_default () at ../gtk/gdk/gdkdisplaymanager.c:332
#10 0x00007ffff2aeb00a in ??? () at /home/tmp/GdkDisplayManager/ws/lib/libgstgtk4.so
#11 0x00007ffff7d4c9e5 in g_main_context_invoke_full (context=0x5555555934e0, priority=200, function=0x7ffff2aeae50, data=0x55555573c360, notify=0x7ffff2aed4f0) at ../glib/glib/gmain.c:6549
#12 0x00007ffff2ad413d in ??? () at /home/tmp/GdkDisplayManager/ws/lib/libgstgtk4.so
#13 0x00007ffff2aed96f in ??? () at /home/tmp/GdkDisplayManager/ws/lib/libgstgtk4.so
#14 0x00007ffff7cb5ecc in object_get_property (value=0x7fffffffdd00, pspec=0x55555574b810, object=0x555555750fc0) at ../glib/gobject/gobject.c:1779
#15 g_object_get_property (object=0x555555750fc0, property_name=<optimized out>, value=0x7fffffffdd00) at ../glib/gobject/gobject.c:3093
#16 0x0000555555559786 in print_object_properties_info (obj=obj@entry=0x555555750fc0, obj_class=0x5555556d3700, desc=desc@entry=0x55555555f6e1 "Element Properties") at ../gstreamer/subprojects/gstreamer/tools/gst-inspect.c:461
#17 0x000055555555bbcb in print_element_properties_info (element=0x555555750fc0 [GstElement|gtk4paintablesink0]) at ../gstreamer/subprojects/gstreamer/tools/gst-inspect.c:799
#18 print_element_info (feature=feature@entry=0x555555592390 [GstPluginFeature|gtk4paintablesink], print_names=print_names@entry=1) at ../gstreamer/subprojects/gstreamer/tools/gst-inspect.c:1773
#19 0x000055555555de3c in print_element_list (ftypes=<optimized out>, print_all=1) at ../gstreamer/subprojects/gstreamer/tools/gst-inspect.c:1389
#20 real_main (argc=<optimized out>, argv=<optimized out>) at ../gstreamer/subprojects/gstreamer/tools/gst-inspect.c:2317
#21 0x00007ffff7ad3cd0 in __libc_start_call_main (main=main@entry=0x555555558020 <main>, argc=argc@entry=2, argv=argv@entry=0x7fffffffe2e8) at ../sysdeps/nptl/libc_start_call_main.h:58
#22 0x00007ffff7ad3d8a in __libc_start_main_impl (main=0x555555558020 <main>, argc=2, argv=0x7fffffffe2e8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe2d8) at ../csu/libc-start.c:360
#23 0x0000555555558055 in _start ()
```
</details>https://gitlab.freedesktop.org/gstreamer/orc/-/issues/63Suspicious crash after GStreamer upgrade to 1.22.9 on M32024-02-09T00:59:29ZtomaszmiSuspicious crash after GStreamer upgrade to 1.22.9 on M3The discussion has started here:
https://discourse.gstreamer.org/t/suspicious-crash-after-gstreamer-upgrade-to-1-22-9-on-m3/928/2
Summarizing:
Recently I upgraded GStreamer on an M3 macbook to the recent 1.22.9 version and my app runnin...The discussion has started here:
https://discourse.gstreamer.org/t/suspicious-crash-after-gstreamer-upgrade-to-1-22-9-on-m3/928/2
Summarizing:
Recently I upgraded GStreamer on an M3 macbook to the recent 1.22.9 version and my app running a simple pipeline started to crash while was working fine prior to the upgrade. While investigating the issue I noticed that even the basic tutorial app (gst-docs/examples/tutorials/basic-tutorial-2.c at master · GStreamer/gst-docs · GitHub) crashes as well.
```
pkg-config --libs --cflags gstreamer-1.0
-I/opt/homebrew/Cellar/gstreamer/1.22.9/include/gstreamer-1.0 -I/opt/homebrew/Cellar/glib/2.78.4/include -I/opt/homebrew/Cellar/glib/2.78.4/include/glib-2.0 -I/opt/homebrew/Cellar/glib/2.78.4/lib/glib-2.0/include -I/opt/homebrew/opt/gettext/include -I/opt/homebrew/Cellar/pcre2/10.42/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/ffi -L/opt/homebrew/Cellar/gstreamer/1.22.9/lib -L/opt/homebrew/Cellar/glib/2.78.4/lib -L/opt/homebrew/opt/gettext/lib -lgstreamer-1.0 -Wl,-rpath,/opt/homebrew/Cellar/gstreamer/1.22.9/lib -lgobject-2.0 -lglib-2.0 -lintl
clang basic-tutorial-2.c $(pkg-config --libs --cflags gstreamer-1.0) --debug -g0 -glldb -fsanitize=address
./a.out
AddressSanitizer:DEADLYSIGNAL
=================================================================
==20579==ERROR: AddressSanitizer: BUS on unknown address (pc 0x000103a2e6d4 bp 0x00016d479db0 sp 0x00016d479560 T7)
==20579==The signal is caused by a WRITE memory access.
==20579==Hint: this fault was caused by a dereference of a high value address (see register values below). Disassemble the provided pc to learn which register was used.
#0 0x103a2e6d4 in __sanitizer::internal_memmove(void*, void const*, unsigned long)+0x134 (libclang_rt.asan_osx_dynamic.dylib:arm64e+0x6a6d4)
#1 0x10817ff28 in orc_program_compile_full+0x105c (liborc-0.4.0.dylib:arm64+0x3f28)
#2 0x102f045e0 in video_test_src_orc_splat_u32+0xb8 (libgstvideotestsrc.dylib:arm64+0x45e0)
#3 0x102f06b04 in gst_video_test_src_smpte+0xec (libgstvideotestsrc.dylib:arm64+0x6b04)
#4 0x102f0691c in fill_image+0x6c (libgstvideotestsrc.dylib:arm64+0x691c)
#5 0x102f063fc in gst_video_test_src_fill+0x9c (libgstvideotestsrc.dylib:arm64+0x63fc)
#6 0x108133bfc in gst_base_src_default_create+0x7c (libgstbase-1.0.0.dylib:arm64+0x33bfc)
#7 0x1081353e8 in gst_base_src_get_range+0x104 (libgstbase-1.0.0.dylib:arm64+0x353e8)
#8 0x108134cb8 in gst_base_src_loop+0x428 (libgstbase-1.0.0.dylib:arm64+0x34cb8)
#9 0x1032d3474 in gst_task_func+0x118 (libgstreamer-1.0.0.dylib:arm64+0x8b474)
#10 0x1034f8e74 in g_thread_pool_thread_proxy+0xcc (libglib-2.0.0.dylib:arm64+0x60e74)
#11 0x1034f7dd0 in g_thread_proxy+0x40 (libglib-2.0.0.dylib:arm64+0x5fdd0)
#12 0x184312030 in _pthread_start+0x84 (libsystem_pthread.dylib:arm64e+0x7030)
#13 0x18430ce38 in thread_start+0x4 (libsystem_pthread.dylib:arm64e+0x1e38)
==20579==Register values:
x[0] = 0x000000010c1b8000 x[1] = 0x0000000107614800 x[2] = 0x00000000000000c3 x[3] = 0x0000000000000018
x[4] = 0x00000001060e03b8 x[5] = 0x0000000000000000 x[6] = 0x000000016d3f8000 x[7] = 0x0000000000000001
x[8] = 0x00000000000000c0 x[9] = 0x00000000000000a3 x[10] = 0x000000010c1b80a3 x[11] = 0x0000000107614800
x[12] = 0x00000000000000c0 x[13] = 0x00000001076148a3 x[14] = 0x0000000000007e01 x[15] = 0x0000000000000006
x[16] = 0x00000001039dec7c x[17] = 0x0000000103a68750 x[18] = 0x0000000000000000 x[19] = 0x00000000000000c3
x[20] = 0x0000000107614800 x[21] = 0x000000010c1b8000 x[22] = 0x000000010820d5ac x[23] = 0x0000000000000060
x[24] = 0x0000000104491aa8 x[25] = 0x0000000000000082 x[26] = 0x000000010870c250 x[27] = 0x0000000108706200
x[28] = 0x000000010870d100 fp = 0x000000016d479db0 lr = 0x00000001039ded5c sp = 0x000000016d479560
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: BUS (libclang_rt.asan_osx_dynamic.dylib:arm64e+0x6a6d4) in __sanitizer::internal_memmove(void*, void const*, unsigned long)+0x134
Thread T7 created by T6 here:
#0 0x103a101b0 in wrap_pthread_create+0x54 (libclang_rt.asan_osx_dynamic.dylib:arm64e+0x4c1b0)
#1 0x10351dc28 in g_system_thread_new+0x120 (libglib-2.0.0.dylib:arm64+0x85c28)
#2 0x1034f82b8 in g_thread_pool_spawn_thread+0x90 (libglib-2.0.0.dylib:arm64+0x602b8)
#3 0x1034f7dd0 in g_thread_proxy+0x40 (libglib-2.0.0.dylib:arm64+0x5fdd0)
#4 0x184312030 in _pthread_start+0x84 (libsystem_pthread.dylib:arm64e+0x7030)
#5 0x18430ce38 in thread_start+0x4 (libsystem_pthread.dylib:arm64e+0x1e38)
Thread T6 created by T0 here:
#0 0x103a101b0 in wrap_pthread_create+0x54 (libclang_rt.asan_osx_dynamic.dylib:arm64e+0x4c1b0)
#1 0x10351dc28 in g_system_thread_new+0x120 (libglib-2.0.0.dylib:arm64+0x85c28)
#2 0x1034f7e50 in g_thread_new+0x30 (libglib-2.0.0.dylib:arm64+0x5fe50)
#3 0x1034f8158 in g_thread_pool_new_full+0xe0 (libglib-2.0.0.dylib:arm64+0x60158)
#4 0x1032d3e48 in default_prepare+0x3c (libgstreamer-1.0.0.dylib:arm64+0x8be48)
#5 0x1032d31e4 in gst_task_init+0x90 (libgstreamer-1.0.0.dylib:arm64+0x8b1e4)
#6 0x10319f6cc in g_type_create_instance+0x16c (libgobject-2.0.0.dylib:arm64+0x236cc)
#7 0x10318c20c in g_object_new_internal+0x40 (libgobject-2.0.0.dylib:arm64+0x1020c)
#8 0x10318bab8 in g_object_new_with_properties+0x1c8 (libgobject-2.0.0.dylib:arm64+0xfab8)
#9 0x1032d2640 in gst_task_new+0x2c (libgstreamer-1.0.0.dylib:arm64+0x8a640)
#10 0x1032a6528 in gst_pad_start_task+0xdc (libgstreamer-1.0.0.dylib:arm64+0x5e528)
#11 0x10813166c in gst_base_src_perform_seek+0x2fc (libgstbase-1.0.0.dylib:arm64+0x3166c)
#12 0x1081310a8 in gst_base_src_start_complete+0x198 (libgstbase-1.0.0.dylib:arm64+0x310a8)
#13 0x10813703c in gst_base_src_start+0x1e4 (libgstbase-1.0.0.dylib:arm64+0x3703c)
#14 0x1081342f8 in gst_base_src_activate_mode+0xc8 (libgstbase-1.0.0.dylib:arm64+0x342f8)
#15 0x10329bb6c in activate_mode_internal+0x2dc (libgstreamer-1.0.0.dylib:arm64+0x53b6c)
#16 0x10329b66c in gst_pad_set_active+0x14c (libgstreamer-1.0.0.dylib:arm64+0x5366c)
#17 0x103283de0 in activate_pads+0x24 (libgstreamer-1.0.0.dylib:arm64+0x3bde0)
#18 0x103292ba8 in gst_iterator_fold+0x6c (libgstreamer-1.0.0.dylib:arm64+0x4aba8)
#19 0x103283d6c in iterator_activate_fold_with_resync+0x54 (libgstreamer-1.0.0.dylib:arm64+0x3bd6c)
#20 0x103283b70 in gst_element_pads_activate+0x40 (libgstreamer-1.0.0.dylib:arm64+0x3bb70)
#21 0x103282c20 in gst_element_change_state_func+0x184 (libgstreamer-1.0.0.dylib:arm64+0x3ac20)
#22 0x1081320d8 in gst_base_src_change_state+0x7c (libgstbase-1.0.0.dylib:arm64+0x320d8)
#23 0x103281740 in gst_element_change_state+0xd8 (libgstreamer-1.0.0.dylib:arm64+0x39740)
#24 0x103282e8c in gst_element_set_state_func+0x168 (libgstreamer-1.0.0.dylib:arm64+0x3ae8c)
#25 0x10325cb88 in gst_bin_change_state_func+0x3f4 (libgstreamer-1.0.0.dylib:arm64+0x14b88)
#26 0x1032aafbc in gst_pipeline_change_state+0x160 (libgstreamer-1.0.0.dylib:arm64+0x62fbc)
#27 0x103281740 in gst_element_change_state+0xd8 (libgstreamer-1.0.0.dylib:arm64+0x39740)
#28 0x1032818ec in gst_element_change_state+0x284 (libgstreamer-1.0.0.dylib:arm64+0x398ec)
#29 0x103282e8c in gst_element_set_state_func+0x168 (libgstreamer-1.0.0.dylib:arm64+0x3ae8c)
#30 0x102ccb408 in main basic-tutorial-2.c:38
#31 0x183f910dc (<unknown module>)
==20579==ABORTING
zsh: abort ./a.out
```
As requested, the following is the output generated with the ORC_DEBUG=5:
```
ORC_DEBUG=5 ./a.out
ORC: INFO: ../orc/orcdebug.c(72): void _orc_debug_init(void)(): orc-0.4.36 debug init
ORC: DEBUG: ../orc/orccpu-arm.c(130): unsigned long orc_cpu_arm_getflags_cpuinfo()(): Failed to read /proc/cpuinfo
ORC: INFO: ../orc/orcprogram-neon.c(137): void orc_neon_init(void)(): marking neon backend non-executable
ORC: INFO: ../orc/orccompiler.c(308): OrcCompileResult orc_program_compile_full(OrcProgram *, OrcTarget *, unsigned int)(): initializing compiler for program "video_test_src_orc_splat_u32"
ORC: LOG: ../orc/orccompiler.c(340): OrcCompileResult orc_program_compile_full(OrcProgram *, OrcTarget *, unsigned int)(): variables
ORC: LOG: ../orc/orccompiler.c(347): OrcCompileResult orc_program_compile_full(OrcProgram *, OrcTarget *, unsigned int)(): 0: d size 4 type 2 alloc 0
ORC: LOG: ../orc/orccompiler.c(347): OrcCompileResult orc_program_compile_full(OrcProgram *, OrcTarget *, unsigned int)(): 24: p size 4 type 4 alloc 0
ORC: LOG: ../orc/orccompiler.c(350): OrcCompileResult orc_program_compile_full(OrcProgram *, OrcTarget *, unsigned int)(): instructions
ORC: LOG: ../orc/orccompiler.c(357): OrcCompileResult orc_program_compile_full(OrcProgram *, OrcTarget *, unsigned int)(): 0: storel 0 0 24 0
ORC: INFO: ../orc/orccompiler.c(459): OrcCompileResult orc_program_compile_full(OrcProgram *, OrcTarget *, unsigned int)(): allocating code memory
ORC: INFO: ../orc/orccompiler.c(465): OrcCompileResult orc_program_compile_full(OrcProgram *, OrcTarget *, unsigned int)(): compiling for target "sse"
ORC: WARNING: ../orc/orccodemem.c(261): int orc_code_region_allocate_codemem_dual_map(OrcCodeRegion *, const char *, int)(): failed to create exec map '/Users/me/orcexec.z80whc'. err=1
ORC: WARNING: ../orc/orccodemem.c(261): int orc_code_region_allocate_codemem_dual_map(OrcCodeRegion *, const char *, int)(): failed to create exec map '/var/folders/mk/r99zwhtj1lb6ylpbl3gnk80h0000gn/T//orcexec.0eFrhD'. err=1
ORC: WARNING: ../orc/orccodemem.c(261): int orc_code_region_allocate_codemem_dual_map(OrcCodeRegion *, const char *, int)(): failed to create exec map '/tmp/orcexec.EEk3j0'. err=1
AddressSanitizer:DEADLYSIGNAL
```amysparkamysparkhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3277Memory leak in playbin when resetting URI on about-to-finish signal2024-02-07T14:33:51ZStephan WirthMemory leak in playbin when resetting URI on about-to-finish signal### Describe your issue
<!-- Please provide a clear and concise summary of the bug. -->
<!-- For any GStreamer usage questions or application development support
please head over to our new GStreamer Discourse forum at
https:/...### Describe your issue
<!-- Please provide a clear and concise summary of the bug. -->
<!-- For any GStreamer usage questions or application development support
please head over to our new GStreamer Discourse forum at
https://discourse.gstreamer.org/ instead, or find us on
the #gstreamer IRC channel on https://www.oftc.net -->
I'm using the 'about-to-finish' signal to reset the playbin's URI to create an infinite loop. The memory usage of that program increases over time.
Here's the code:
```C
// gs_loop_minimal_reset_uri.cpp
#include <gst/gst.h>
#include <iostream>
static void about_to_finish(GstElement* playbin, gpointer user_data)
{
auto uri = static_cast<char*>(user_data);
std::cout << "Bin about to finish, re-looping (reset uri): " << uri << std::endl;
g_object_set(G_OBJECT(playbin), "uri", uri, NULL);
}
int main(int argc, char *argv[])
{
if (argc < 2)
{
std::cout << "Usage: " << argv[0] << " <URI>" << std::endl;
return 1;
}
gst_init(NULL, NULL);
auto playbin = gst_element_factory_make("playbin", "myplaybin");
g_object_set(G_OBJECT(playbin), "uri", argv[1], NULL);
g_signal_connect(playbin, "about-to-finish", G_CALLBACK(about_to_finish), argv[1]);
if (gst_element_set_state(GST_ELEMENT(playbin), GST_STATE_PLAYING) == 0)
{
std::cerr << "Could not set state to playing for " << argv[1] << std::endl;
return 1;
}
std::cout << "Playback of " << argv[1] << " started." << std::endl;
auto main_loop = g_main_loop_new (NULL, FALSE);
g_main_loop_run (main_loop);
g_main_loop_unref (main_loop);
gst_object_unref(playbin);
gst_deinit();
return 0;
}
```
#### Expected Behavior
<!-- What did you expect to happen -->
Memory usage remains stable.
#### Observed Behavior
<!-- What actually happened -->
Memory usage increases over time.
#### Setup
- **Operating System:** Ubuntu 20.04
- **Device:** Computer
- **GStreamer Version:** libgstreamer-plugins-base1.0-dev 1.16.3-0ubuntu1.2, libgstreamer1.0-dev 1.16.3-0ubuntu1.1
- **Command line:** gs_loop_minimal_reset_uri 2s.wav # (using source above)
### Steps to reproduce the bug
<!-- please fill in exact steps which reproduce the bug on your system, for example: -->
1. create `/tmp/gs_loop_minimal_reset_uri.cpp` with content from above
2. open terminal in `/tmp`
```
g++ gs_loop_minimal_reset_uri.cpp -o gs_loop_minimal_reset_uri `pkg-config --cflags --libs gstreamer-1.0`
timeout 300 valgrind --tool=massif ./gs_loop_minimal_reset_uri file:///path/to/my/audio.wav # use any short wav file
massif-visualizer massif.out.*
```
### How reproducible is the bug?
<!-- The reproducibility of the bug is Always/Intermittent/Only once after doing a very specific set of steps-->
Always
### Screenshots if relevant
Here's a massif-visualizer plot of a 5min playback of a 2s WAV file, created with `valgrind --tool=massif ...` as described above:
![image](/uploads/83026a6aba61b9506b910584b971717d/image.png)
![image](/uploads/a83db33bbc091e18974325890723568f/image.png)
### Solutions you have tried
`USE_PLAYBIN3=1`
![image](/uploads/cb7d1c54cb0def07459c315078f704dc/image.png)
### Related non-duplicate issues
### Additional Information
<!-- Any other information such as logs. Make use of <details> for long output -->https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/1039hlsdemux2 fails with "Unsupported stream type" in 1.22, 1.20 worked2024-02-06T12:11:17ZHauke Mehrtenshlsdemux2 fails with "Unsupported stream type" in 1.22, 1.20 workedplaybin3 using hlsdemux2 fails to play some streams using gstreamer 1.22.9, but it works fine in gstreamer 1.20.4.
It fails like this:
````
# GST_DEBUG=3,hlsdemux2:5,hlsdemux:5 gst-launch-1.0 playbin3 -v uri='http://live.ximalaya.com/ra...playbin3 using hlsdemux2 fails to play some streams using gstreamer 1.22.9, but it works fine in gstreamer 1.20.4.
It fails like this:
````
# GST_DEBUG=3,hlsdemux2:5,hlsdemux:5 gst-launch-1.0 playbin3 -v uri='http://live.ximalaya.com/radio-first-page-app/live/1661/24.m3u8'
....
0:00:03.708010500 31341 0x7f6fc402ec80 WARN hlsdemux2 gsthlsdemux.c:1193:gst_hls_demux_typefind_stream:<hlsstream-variant> Unsupported stream type audio/mpeg, framed=(boolean)false, mpegversion=(int)4, stream-format=(string)adts, level=(string)1, base-profile=(string)lc, profile=(string)lc, channels=(int)1, rate=(int)22050
0:00:03.708019788 31341 0x7f6fc402ec80 DEBUG hlsdemux2 gsthlsdemux.c:1603:gst_hls_demux_stream_handle_buffer:<hlsstream-variant> Returning error
0:00:03.708032271 31341 0x7f6fc402ec80 WARN adaptivedemux2 gstadaptivedemux-stream.c:778:gst_adaptive_demux2_stream_parse_buffer:<hlsdemux2-0> error: Internal data stream error.
0:00:03.708039405 31341 0x7f6fc402ec80 WARN adaptivedemux2 gstadaptivedemux-stream.c:778:gst_adaptive_demux2_stream_parse_buffer:<hlsdemux2-0> error: streaming stopped, reason error (-5)
ERROR: from element /GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstHLSDemux2:hlsdemux2-0: Internal data stream error.
````
<details>
<summary>
Full log
</summary>
````
# GST_DEBUG=3,hlsdemux2:5,hlsdemux:5 gst-launch-1.0 playbin3 -v uri='http://live.ximalaya.com/radio-first-page-app/live/1661/24.m3u8'
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
/GstPlayBin3:playbin3-0/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
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0: source = "\(GstSoupHTTPSrc\)\ souphttpsrc0"
0:00:00.016016800 31341 0x558c8905ce90 WARN structure gststructure.c:2093:priv_gst_structure_append_to_gstring: No value transform to serialize field 'session' of type 'GstSoupSession'
Got context from element 'souphttpsrc0': gst.soup.session=context, session=(GstSoupSession)NULL;
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstTypeFindElement:typefindelement0.GstPad:src: caps = application/x-hls
0:00:00.714743378 31341 0x7f6fc0000b70 DEBUG hlsdemux2 gsthlsdemux.c:2607:gst_hls_demux_reset:<hlsdemux2-0> resetting
0:00:00.714769808 31341 0x7f6fc0000b70 DEBUG hlsdemux2 gsthlsdemux.c:2607:gst_hls_demux_reset:<hlsdemux2-0> resetting
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstHLSDemux2:hlsdemux2-0.GstPad:sink: caps = application/x-hls
0:00:00.714987228 31341 0x7f6fc0000b70 INFO hlsdemux2 gsthlsdemux.c:889:gst_hls_demux_process_manifest:<hlsdemux2-0> Initial playlist location: http://live.ximalaya.com/radio-first-page-app/live/1661/24.m3u8 (base uri: (null))
0:00:00.715031792 31341 0x7f6fc0000b70 INFO hlsdemux2 gsthlsdemux.c:934:gst_hls_demux_process_manifest:<hlsdemux2-0> Manifest processed, initial variant selected : `media-playlist`
0:00:00.715043324 31341 0x7f6fc0000b70 DEBUG hlsdemux2 gsthlsdemux.c:875:gst_hls_demux_set_current_variant:<hlsdemux2-0> Setting variant 'media-playlist'
0:00:00.715050537 31341 0x7f6fc0000b70 DEBUG hlsdemux2 gsthlsdemux.c:939:gst_hls_demux_process_manifest:<hlsdemux2-0> Manifest handled, now setting up streams
0:00:00.715057080 31341 0x7f6fc0000b70 DEBUG hlsdemux2 gsthlsdemux.c:797:gst_hls_demux_setup_streams:<hlsdemux2-0> Setting up streams
0:00:00.715063983 31341 0x7f6fc0000b70 DEBUG hlsdemux2 gsthlsdemux.c:713:create_main_variant_stream:<hlsdemux2-0> Creating main variant stream
0:00:00.715094159 31341 0x7f6fc0000b70 DEBUG hlsdemux2 gsthlsdemux.c:2096:setup_initial_playlist:<hlsdemux2-0> Setting up initial variant segment and time mapping
0:00:00.715105781 31341 0x7f6fc0000b70 DEBUG hlsdemux2 gsthlsdemux.c:1995:gst_hls_demux_add_time_mapping:<hlsdemux2-0> New mapping, dsn:0 stream_time:0:00:00.000000000 pdt:(null)
0:00:00.715135527 31341 0x7f6fc0000b70 DEBUG hlsdemux2 gsthlsdemux.c:2365:gst_hls_demux_stream_update_fragment_info:<hlsstream-variant> Updating fragment information, current_position:99:99:99.999999999
0:00:00.715148171 31341 0x7f6fc0000b70 DEBUG hlsdemux2 gsthlsdemux.c:2405:gst_hls_demux_stream_update_fragment_info:<hlsstream-variant> Current segment stream_time +0:00:07.000000000
0:00:00.715157008 31341 0x7f6fc0000b70 DEBUG hlsdemux2 gsthlsdemux.c:2453:gst_hls_demux_stream_update_fragment_info:<hlsstream-variant> Stream URI now http://broadcast.tx.xmcdn.com/live/1661_24_240206_000127_276f.aac
0:00:00.715234113 31341 0x7f6fc402ec80 DEBUG hlsdemux2 gsthlsdemux.c:2480:gst_hls_demux_stream_can_start:<hlsstream-variant> is_variant:1 mappings:0x7f6fc4031560
0:00:00.715255544 31341 0x7f6fc402ec80 DEBUG hlsdemux2 gsthlsdemux.c:2983:gst_hls_demux_get_manifest_update_interval:<hlsdemux2-0> Returning update interval of 0:00:07.000000000
0:00:00.715274229 31341 0x7f6fc402ec80 DEBUG hlsdemux2 gsthlsdemux.c:2365:gst_hls_demux_stream_update_fragment_info:<hlsstream-variant> Updating fragment information, current_position:0:00:07.000000000
0:00:00.715285700 31341 0x7f6fc402ec80 DEBUG hlsdemux2 gsthlsdemux.c:2405:gst_hls_demux_stream_update_fragment_info:<hlsstream-variant> Current segment stream_time +0:00:07.000000000
0:00:00.715295469 31341 0x7f6fc402ec80 DEBUG hlsdemux2 gsthlsdemux.c:2453:gst_hls_demux_stream_update_fragment_info:<hlsstream-variant> Stream URI now http://broadcast.tx.xmcdn.com/live/1661_24_240206_000127_276f.aac
0:00:03.706684170 31341 0x7f6fc402ec80 DEBUG hlsdemux2 gsthlsdemux.c:1057:gst_hls_demux_stream_start_fragment:<hlsstream-variant> Fragment starting
0:00:03.706715459 31341 0x7f6fc402ec80 DEBUG hlsdemux2 gsthlsdemux.c:358:gst_hls_demux_stream_clear_pending_data:<hlsstream-variant> force : 0
0:00:03.706729215 31341 0x7f6fc402ec80 DEBUG hlsdemux2 gsthlsdemux.c:1513:gst_hls_demux_stream_handle_buffer:<hlsstream-variant> buffer:0x7f6fb0006910 at_eos:0 do_typefind:1 uri:http://broadcast.tx.xmcdn.com/live/1661_24_240206_000127_276f.aac
0:00:03.707990863 31341 0x7f6fc402ec80 DEBUG hlsdemux2 gsthlsdemux.c:1187:gst_hls_demux_typefind_stream:<hlsstream-variant> Typefind result: audio/mpeg, framed=(boolean)false, mpegversion=(int)4, stream-format=(string)adts, level=(string)1, base-profile=(string)lc, profile=(string)lc, channels=(int)1, rate=(int)22050 prob:100
0:00:03.708010500 31341 0x7f6fc402ec80 WARN hlsdemux2 gsthlsdemux.c:1193:gst_hls_demux_typefind_stream:<hlsstream-variant> Unsupported stream type audio/mpeg, framed=(boolean)false, mpegversion=(int)4, stream-format=(string)adts, level=(string)1, base-profile=(string)lc, profile=(string)lc, channels=(int)1, rate=(int)22050
0:00:03.708019788 31341 0x7f6fc402ec80 DEBUG hlsdemux2 gsthlsdemux.c:1603:gst_hls_demux_stream_handle_buffer:<hlsstream-variant> Returning error
0:00:03.708032271 31341 0x7f6fc402ec80 WARN adaptivedemux2 gstadaptivedemux-stream.c:778:gst_adaptive_demux2_stream_parse_buffer:<hlsdemux2-0> error: Internal data stream error.
0:00:03.708039405 31341 0x7f6fc402ec80 WARN adaptivedemux2 gstadaptivedemux-stream.c:778:gst_adaptive_demux2_stream_parse_buffer:<hlsdemux2-0> error: streaming stopped, reason error (-5)
ERROR: from element /GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstHLSDemux2:hlsdemux2-0: Internal data stream error.
Additional debug info:
../ext/adaptivedemux2/gstadaptivedemux-stream.c(778): gst_adaptive_demux2_stream_parse_buffer (): /GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstHLSDemux2:hlsdemux2-0:
streaming stopped, reason error (-5)
ERROR: pipeline doesn't want to preroll.
0:00:03.708149753 31341 0x7f6fc402ec80 WARN typefind gsttypefindelement.c:1012:gst_type_find_element_chain_do_typefinding:<typefind> error: Stream doesn't contain enough data.
0:00:03.708165743 31341 0x7f6fc402ec80 WARN typefind gsttypefindelement.c:1012:gst_type_find_element_chain_do_typefinding:<typefind> error: Can't typefind stream
0:00:03.708190239 31341 0x7f6fc402ec80 WARN adaptivedemux2 gstadaptivedemux.c:1531:gst_adaptive_demux_handle_message:<hlsdemux2-0> Source posted error: 2036:4 Stream doesn't contain enough data. (../plugins/elements/gsttypefindelement.c(1012): gst_type_find_element_chain_do_typefinding (): /GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstHLSDemux2:hlsdemux2-0/GstParseBin:parsebin0/GstTypeFindElement:typefind:
Can't typefind stream)
Setting pipeline to NULL ...
0:00:03.708456942 31341 0x558c8905ce90 DEBUG hlsdemux2 gsthlsdemux.c:2607:gst_hls_demux_reset:<hlsdemux2-0> resetting
0:00:03.708472120 31341 0x558c8905ce90 DEBUG hlsdemux2 gsthlsdemux.c:358:gst_hls_demux_stream_clear_pending_data:<hlsstream-variant> force : 1
0:00:03.708627533 31341 0x558c8905ce90 DEBUG hlsdemux2 gsthlsdemux.c:2607:gst_hls_demux_reset:<hlsdemux2-0> resetting
0:00:03.708857417 31341 0x558c8905ce90 DEBUG hlsdemux2 gsthlsdemux.c:2607:gst_hls_demux_reset:<hlsdemux2-0> resetting
Freeing pipeline ...
# gst-launch-1.0 --version
gst-launch-1.0 version 1.22.9
GStreamer 1.22.9
Unknown package origin
#
`````
</details>
When I am using gstreamer 1.20.4 it works fine:
<details>
`````
# GST_DEBUG=3,hlsdemux2:5,hlsdemux:5 gst-launch-1.0 playbin3 -v uri='http://live.ximalaya.com/radio-first-page-app/live/1661/24.m3u8'
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0: ring-buffer-max-size = 0
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0: buffer-size = -1
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0: buffer-duration = -1
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0: use-buffering = true
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0: download = false
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0: uri = http://live.ximalaya.com/radio-first-page-app/live/1661/24.m3u8
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0: connection-speed = 0
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/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
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0: source = "\(GstSoupHTTPSrc\)\ souphttpsrc0"
0:00:00.016128581 24711 0x55878ea09250 WARN structure gststructure.c:2091:priv_gst_structure_append_to_gstring: No value transform to serialize field 'session' of type 'GstSoupSession'
Got context from element 'souphttpsrc0': gst.soup.session=context, session=(GstSoupSession)NULL;
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstTypeFindElement:typefindelement0.GstPad:src: caps = application/x-hls
0:00:00.753942138 24711 0x7f74b8000b90 DEBUG hlsdemux gsthlsdemux.c:1340:gst_hls_demux_reset:<hlsdemux0> resetting
0:00:00.753961104 24711 0x7f74b8000b90 DEBUG hlsdemux gsthlsdemux.c:1359:gst_hls_demux_reset:<hlsdemux0> Streams aware : 1
0:00:00.753973939 24711 0x7f74b8000b90 DEBUG hlsdemux gsthlsdemux.c:1340:gst_hls_demux_reset:<hlsdemux0> resetting
0:00:00.753983908 24711 0x7f74b8000b90 DEBUG hlsdemux gsthlsdemux.c:1359:gst_hls_demux_reset:<hlsdemux0> Streams aware : 1
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstHLSDemux:hlsdemux0.GstPad:sink: caps = application/x-hls
0:00:00.754075572 24711 0x7f74b8000b90 INFO hlsdemux gsthlsdemux.c:769:gst_hls_demux_process_manifest:<hlsdemux0> Initial playlist location: http://live.ximalaya.com/radio-first-page-app/live/1661/24.m3u8 (base uri: (null))
0:00:00.754126619 24711 0x7f74b8000b90 INFO hlsdemux gsthlsdemux.c:802:gst_hls_demux_process_manifest:<hlsdemux0> selected http://live.ximalaya.com/radio-first-page-app/live/1661/24.m3u8
0:00:00.754138762 24711 0x7f74b8000b90 DEBUG hlsdemux gsthlsdemux.c:607:gst_hls_demux_setup_streams:<hlsdemux0> Setting up streams
0:00:00.754149553 24711 0x7f74b8000b90 DEBUG hlsdemux gsthlsdemux.c:504:create_stream_for_playlist:<hlsdemux0> is_primary_playlist:1 selected:1 playlist name 'http://live.ximalaya.com/radio-first-page-app/live/1661/24.m3u8'
0:00:00.754217903 24711 0x7f74b8000b90 DEBUG hlsdemux gsthlsdemux.c:1288:gst_hls_demux_update_fragment_info:<hlsdemux0> Stream 0x7f74ac02f1e0 URI now http://broadcast.tx.xmcdn.com/live/1661_24_240206_000127_2798.aac
0:00:00.754384119 24711 0x7f74b8000f70 DEBUG hlsdemux gsthlsdemux.c:1288:gst_hls_demux_update_fragment_info:<hlsdemux0> Stream 0x7f74ac02f1e0 URI now http://broadcast.tx.xmcdn.com/live/1661_24_240206_000127_2798.aac
0:00:00.755219176 24711 0x55878ea09250 WARN structure gststructure.c:2091:priv_gst_structure_append_to_gstring: No value transform to serialize field 'session' of type 'GstSoupSession'
Got context from element 'souphttpsrc1': gst.soup.session=context, session=(GstSoupSession)NULL;
0:00:02.744803106 24711 0x7f74b8001370 DEBUG hlsdemux gsthlsdemux.c:1014:gst_hls_demux_handle_buffer:<'':src_0> Typefind result: audio/mpeg, framed=(boolean)false, mpegversion=(int)4, stream-format=(string)adts, level=(string)1, base-profile=(string)lc, profile=(string)lc, channels=(int)1, rate=(int)22050 prob:100
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: bitrate = 0
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0.GstPad:src: caps = audio/mpeg, framed=(boolean)false, mpegversion=(int)4, stream-format=(string)adts, level=(string)1, base-profile=(string)lc, profile=(string)lc, channels=(int)1, rate=(int)22050
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: high-watermark = 0.98999999999999999
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: low-watermark = 0.01
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: max-size-time = 5000000000
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: max-size-bytes = 10485760
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0.GstGhostPad:src_0: caps = audio/mpeg, framed=(boolean)false, mpegversion=(int)4, stream-format=(string)adts, level=(string)1, base-profile=(string)lc, profile=(string)lc, channels=(int)1, rate=(int)22050
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstDecodebin3:decodebin3-0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = audio/mpeg, framed=(boolean)false, mpegversion=(int)4, stream-format=(string)adts, level=(string)1, base-profile=(string)lc, profile=(string)lc, channels=(int)1, rate=(int)22050
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: bitrate = 0
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstDecodebin3:decodebin3-0/GstParseBin:parsebin0.GstGhostPad:sink.GstProxyPad:proxypad3: caps = audio/mpeg, framed=(boolean)false, mpegversion=(int)4, stream-format=(string)adts, level=(string)1, base-profile=(string)lc, profile=(string)lc, channels=(int)1, rate=(int)22050
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0.GstPad:sink: caps = audio/mpeg, framed=(boolean)false, mpegversion=(int)4, stream-format=(string)adts, level=(string)1, base-profile=(string)lc, profile=(string)lc, channels=(int)1, rate=(int)22050
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: high-watermark = 0.98999999999999999
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: low-watermark = 0.01
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: max-size-time = 5000000000
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: max-size-bytes = 10485760
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstDecodebin3:decodebin3-0/GstParseBin:parsebin0/GstTypeFindElement:typefind.GstPad:src: caps = audio/mpeg, framed=(boolean)false, mpegversion=(int)4, stream-format=(string)adts, level=(string)1, base-profile=(string)lc, profile=(string)lc, channels=(int)1, rate=(int)22050
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: bitrate = 0
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: high-watermark = 0.98999999999999999
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: low-watermark = 0.01
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: max-size-time = 5000000000
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: max-size-bytes = 10485760
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: bitrate = 25232
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: bitrate = 25232
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: high-watermark = 0.98999999999999999
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: low-watermark = 0.01
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: max-size-time = 5000000000
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: max-size-bytes = 10485760
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: high-watermark = 0.98999999999999999
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: low-watermark = 0.01
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: max-size-time = 5000000000
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: max-size-bytes = 10485760
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstDecodebin3:decodebin3-0/GstParseBin:parsebin0/GstAacParse:aacparse0.GstPad:sink: caps = audio/mpeg, framed=(boolean)false, mpegversion=(int)4, stream-format=(string)adts, level=(string)1, base-profile=(string)lc, profile=(string)lc, channels=(int)1, rate=(int)22050
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstDecodebin3:decodebin3-0/GstParseBin:parsebin0/GstTypeFindElement:typefind.GstPad:sink: caps = audio/mpeg, framed=(boolean)false, mpegversion=(int)4, stream-format=(string)adts, level=(string)1, base-profile=(string)lc, profile=(string)lc, channels=(int)1, rate=(int)22050
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstDecodebin3:decodebin3-0/GstParseBin:parsebin0.GstGhostPad:sink: caps = audio/mpeg, framed=(boolean)false, mpegversion=(int)4, stream-format=(string)adts, level=(string)1, base-profile=(string)lc, profile=(string)lc, channels=(int)1, rate=(int)22050
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstDecodebin3:decodebin3-0.GstGhostPad:sink: caps = audio/mpeg, framed=(boolean)false, mpegversion=(int)4, stream-format=(string)adts, level=(string)1, base-profile=(string)lc, profile=(string)lc, channels=(int)1, rate=(int)22050
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0.GstGhostPad:src_0.GstProxyPad:proxypad2: caps = audio/mpeg, framed=(boolean)false, mpegversion=(int)4, stream-format=(string)adts, level=(string)1, base-profile=(string)lc, profile=(string)lc, channels=(int)1, rate=(int)22050
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: bitrate = 25232
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: high-watermark = 0.98999999999999999
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: low-watermark = 0.01
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: max-size-time = 5000000000
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: max-size-bytes = 10485760
0:00:02.747615573 24711 0x7f74b8000d70 FIXME decodebin3 gstdecodebin3.c:1157:update_requested_selection:<decodebin3-0> Implement EXPOSE_ALL_MODE
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstDecodebin3:decodebin3-0/GstParseBin:parsebin0/GstAacParse:aacparse0.GstPad:src: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)lc, profile=(string)lc, rate=(int)22050, channels=(int)1, stream-format=(string)adts
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstDecodebin3:decodebin3-0/GstParseBin:parsebin0.GstParsePad:src_0: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)lc, profile=(string)lc, rate=(int)22050, channels=(int)1, stream-format=(string)adts
0:00:02.747782851 24711 0x7f74b8000d70 FIXME decodebin3 gstdecodebin3-parse.c:433:unblock_pending_input:<decodebin3-0> Re-use existing input streams if/when possible
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstDecodebin3:decodebin3-0/GstParseBin:parsebin0.GstParsePad:src_0.GstProxyPad:proxypad4: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)lc, profile=(string)lc, rate=(int)22050, channels=(int)1, stream-format=(string)adts
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstDecodebin3:decodebin3-0/GstMultiQueue:multiqueue0.GstMultiQueuePad:sink_0: group-id = 2
0:00:02.748059798 24711 0x7f74b8001b70 FIXME decodebin3 gstdecodebin3.c:1662:get_output_for_slot:<decodebin3-0> emit autoplug-continue
0:00:02.748084946 24711 0x7f74b8001b70 FIXME decodebin3 gstdecodebin3.c:1665:get_output_for_slot:<decodebin3-0> Handle EXPOSE_ALL_MODE
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstDecodebin3:decodebin3-0/GstMultiQueue:multiqueue0.GstMultiQueuePad:sink_0: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)lc, profile=(string)lc, rate=(int)22050, channels=(int)1, stream-format=(string)adts
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstDecodebin3:decodebin3-0/GstMultiQueue:multiqueue0.GstMultiQueuePad:sink_0: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)lc, profile=(string)lc, rate=(int)22050, channels=(int)1, stream-format=(string)adts
/GstPlayBin3:playbin3-0/GstConcat:audio-concat: active-pad = "\(GstConcatPad\)\ sink_0"
0:00:02.757517518 24711 0x7f74b8001b70 WARN alsa gstalsasink.c:874:gst_alsasink_open:<audiosink-actual-sink-alsa> Error -112 (Host is down) calling snd_pcm_open (&alsa->handle, alsa->device, SND_PCM_STREAM_PLAYBACK, SND_PCM_NONBLOCK)
0:00:02.757602680 24711 0x7f74b8001b70 WARN alsa gstalsasink.c:889:gst_alsasink_open:<audiosink-actual-sink-alsa> error: Could not open audio device for playback.
0:00:02.757679686 24711 0x7f74b8001b70 WARN alsa gstalsasink.c:889:gst_alsasink_open:<audiosink-actual-sink-alsa> error: Playback open error on device 'default': Host is down
/GstPlayBin3:playbin3-0/GstPlaySink:playsink: volume = 1
/GstPlayBin3:playbin3-0/GstPlaySink:playsink: mute = false
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstDecodebin3:decodebin3-0/avdec_aac:avdec_aac0.GstPad:sink: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)lc, profile=(string)lc, rate=(int)22050, channels=(int)1, stream-format=(string)adts
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstDecodebin3:decodebin3-0/avdec_aac:avdec_aac0.GstPad:src: caps = audio/x-raw, format=(string)F32LE, layout=(string)non-interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstDecodebin3:decodebin3-0.GstGhostPad:audio_0: caps = audio/x-raw, format=(string)F32LE, layout=(string)non-interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0.GstGhostPad:audio_0: caps = audio/x-raw, format=(string)F32LE, layout=(string)non-interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
/GstPlayBin3:playbin3-0/GstConcat:audio-concat.GstPad:src: caps = audio/x-raw, format=(string)F32LE, layout=(string)non-interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
/GstPlayBin3:playbin3-0/GstPlaySink:playsink.GstGhostPad:audio_sink.GstProxyPad:proxypad5: caps = audio/x-raw, format=(string)F32LE, layout=(string)non-interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
/GstPlayBin3:playbin3-0/GstPlaySink:playsink/GstTee:audiotee.GstTeePad:src_0: caps = audio/x-raw, format=(string)F32LE, layout=(string)non-interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
/GstPlayBin3:playbin3-0/GstPlaySink:playsink/GstStreamSynchronizer:streamsynchronizer0.GstStreamSyncPad:src_0: caps = audio/x-raw, format=(string)F32LE, layout=(string)non-interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
/GstPlayBin3:playbin3-0/GstPlaySink:playsink/GstBin:abin.GstGhostPad:sink.GstProxyPad:proxypad11: caps = audio/x-raw, format=(string)F32LE, layout=(string)non-interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
/GstPlayBin3:playbin3-0/GstPlaySink:playsink/GstBin:abin/GstQueue:aqueue.GstPad:sink: caps = audio/x-raw, format=(string)F32LE, layout=(string)non-interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
/GstPlayBin3:playbin3-0/GstPlaySink:playsink/GstBin:abin.GstGhostPad:sink: caps = audio/x-raw, format=(string)F32LE, layout=(string)non-interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
/GstPlayBin3:playbin3-0/GstPlaySink:playsink/GstBin:abin.GstGhostPad:sink: caps = audio/x-raw, format=(string)F32LE, layout=(string)non-interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
/GstPlayBin3:playbin3-0/GstPlaySink:playsink/GstStreamSynchronizer:streamsynchronizer0.GstStreamSyncPad:sink_0: caps = audio/x-raw, format=(string)F32LE, layout=(string)non-interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
/GstPlayBin3:playbin3-0/GstPlaySink:playsink/GstTee:audiotee.GstPad:sink: caps = audio/x-raw, format=(string)F32LE, layout=(string)non-interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
/GstPlayBin3:playbin3-0/GstPlaySink:playsink.GstGhostPad:audio_sink: caps = audio/x-raw, format=(string)F32LE, layout=(string)non-interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
/GstPlayBin3:playbin3-0/GstConcat:audio-concat.GstConcatPad:sink_0: caps = audio/x-raw, format=(string)F32LE, layout=(string)non-interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0.GstGhostPad:audio_0.GstProxyPad:proxypad7: caps = audio/x-raw, format=(string)F32LE, layout=(string)non-interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstDecodebin3:decodebin3-0.GstGhostPad:audio_0.GstProxyPad:proxypad6: caps = audio/x-raw, format=(string)F32LE, layout=(string)non-interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
/GstPlayBin3:playbin3-0/GstPlaySink:playsink/GstBin:abin/GstPlaySinkAudioConvert:aconv.GstGhostPad:sink.GstProxyPad:proxypad9: caps = audio/x-raw, format=(string)F32LE, layout=(string)non-interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
/GstPlayBin3:playbin3-0/GstPlaySink:playsink/GstBin:abin/GstPlaySinkAudioConvert:aconv/GstAudioConvert:conv.GstPad:src: caps = audio/x-raw, rate=(int)44100, format=(string)F32LE, channels=(int)2, layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000003
/GstPlayBin3:playbin3-0/GstPlaySink:playsink/GstBin:abin/GstPlaySinkAudioConvert:aconv/GstAudioResample:resample.GstPad:src: caps = audio/x-raw, rate=(int)44100, format=(string)F32LE, channels=(int)2, layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000003
/GstPlayBin3:playbin3-0/GstPlaySink:playsink/GstBin:abin/GstPlaySinkAudioConvert:aconv/GstVolume:volume.GstPad:src: caps = audio/x-raw, rate=(int)44100, format=(string)F32LE, channels=(int)2, layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000003
/GstPlayBin3:playbin3-0/GstPlaySink:playsink/GstBin:abin/GstPlaySinkAudioConvert:aconv.GstGhostPad:src: caps = audio/x-raw, rate=(int)44100, format=(string)F32LE, channels=(int)2, layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000003
/GstPlayBin3:playbin3-0/GstPlaySink:playsink/GstBin:abin/GstAutoAudioSink:audiosink.GstGhostPad:sink.GstProxyPad:proxypad8: caps = audio/x-raw, rate=(int)44100, format=(string)F32LE, channels=(int)2, layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000003
/GstPlayBin3:playbin3-0/GstPlaySink:playsink/GstBin:abin/GstAutoAudioSink:audiosink/GstFakeSink:fake-audio-sink.GstPad:sink: caps = audio/x-raw, rate=(int)44100, format=(string)F32LE, channels=(int)2, layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000003
/GstPlayBin3:playbin3-0/GstPlaySink:playsink/GstBin:abin/GstAutoAudioSink:audiosink.GstGhostPad:sink: caps = audio/x-raw, rate=(int)44100, format=(string)F32LE, channels=(int)2, layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000003
/GstPlayBin3:playbin3-0/GstPlaySink:playsink/GstBin:abin/GstPlaySinkAudioConvert:aconv.GstGhostPad:src.GstProxyPad:proxypad10: caps = audio/x-raw, rate=(int)44100, format=(string)F32LE, channels=(int)2, layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000003
/GstPlayBin3:playbin3-0/GstPlaySink:playsink/GstBin:abin/GstPlaySinkAudioConvert:aconv/GstVolume:volume.GstPad:sink: caps = audio/x-raw, rate=(int)44100, format=(string)F32LE, channels=(int)2, layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000003
/GstPlayBin3:playbin3-0/GstPlaySink:playsink/GstBin:abin/GstPlaySinkAudioConvert:aconv/GstAudioResample:resample.GstPad:sink: caps = audio/x-raw, rate=(int)44100, format=(string)F32LE, channels=(int)2, layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000003
/GstPlayBin3:playbin3-0/GstPlaySink:playsink/GstBin:abin/GstPlaySinkAudioConvert:aconv/GstAudioConvert:conv.GstPad:sink: caps = audio/x-raw, format=(string)F32LE, layout=(string)non-interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
/GstPlayBin3:playbin3-0/GstPlaySink:playsink/GstBin:abin/GstPlaySinkAudioConvert:aconv.GstGhostPad:sink: caps = audio/x-raw, format=(string)F32LE, layout=(string)non-interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
Pipeline is PREROLLED ...
Prerolled, waiting for buffering to finish...
Redistribute latency...
Setting pipeline to PLAYING ...
0:00:02.825747419 24711 0x7f74b8000f70 DEBUG hlsdemux gsthlsdemux.c:1288:gst_hls_demux_update_fragment_info:<hlsdemux0> Stream 0x7f74ac02f1e0 URI now http://broadcast.tx.xmcdn.com/live/1661_24_240206_000127_2799.aac
New clock: GstSystemClock
0:00:02.826073088 24711 0x55878ea09250 WARN structure gststructure.c:2091:priv_gst_structure_append_to_gstring: No value transform to serialize field 'session' of type 'GstSoupSession'
Got context from element 'souphttpsrc1': gst.soup.session=context, session=(GstSoupSession)NULL;
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: bitrate = 25274
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: high-watermark = 0.98999999999999999
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: low-watermark = 0.01
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: max-size-time = 5000000000
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: max-size-bytes = 10485760
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: bitrate = 25274
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: high-watermark = 0.98999999999999999
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: low-watermark = 0.01
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: max-size-time = 5000000000
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: max-size-bytes = 10485760
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: bitrate = 25274
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: high-watermark = 0.98999999999999999
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: low-watermark = 0.01
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: max-size-time = 5000000000
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-0: max-size-bytes = 10485760
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:00:06.660847374
Setting pipeline to NULL ...
0:00:09.487712678 24711 0x55878ea09250 DEBUG hlsdemux gsthlsdemux.c:1340:gst_hls_demux_reset:<hlsdemux0> resetting
0:00:09.487798301 24711 0x55878ea09250 DEBUG hlsdemux gsthlsdemux.c:1359:gst_hls_demux_reset:<hlsdemux0> Streams aware : 1
0:00:09.487982581 24711 0x55878ea09250 DEBUG hlsdemux gsthlsdemux.c:1340:gst_hls_demux_reset:<hlsdemux0> resetting
0:00:09.488078734 24711 0x55878ea09250 DEBUG hlsdemux gsthlsdemux.c:1359:gst_hls_demux_reset:<hlsdemux0> Streams aware : 1
0:00:09.488423059 24711 0x55878ea09250 FIXME playbin3 gstplaybin3.c:3267:reconfigure_output:<playbin3-0> Release combiner
0:00:09.488768115 24711 0x55878ea09250 DEBUG hlsdemux gsthlsdemux.c:1340:gst_hls_demux_reset:<hlsdemux0> resetting
0:00:09.488858687 24711 0x55878ea09250 DEBUG hlsdemux gsthlsdemux.c:1359:gst_hls_demux_reset:<hlsdemux0> Streams aware : 0
Freeing pipeline ...
# gst-launch-1.0 --version
gst-launch-1.0 version 1.20.4
GStreamer 1.20.4
Unknown package origin
#
`````
</details>
I also tried the old hlsdemux plugin in 1.22.9 and it also fails:
<details>
`````
# GST_PLUGIN_FEATURE_RANK=hlsdemux:300 GST_DEBUG=3,hlsdemux2:5,hlsdemux:5 gst-launch-1.0 playbin3 -v uri='http://live.ximalaya.com/radio-first-page-app/live/1661/24.m3u8'
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
/GstPlayBin3:playbin3-0/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
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0: source = "\(GstSoupHTTPSrc\)\ souphttpsrc0"
0:00:00.015572796 4889 0x557e75f8a330 WARN structure gststructure.c:2093:priv_gst_structure_append_to_gstring: No value transform to serialize field 'session' of type 'GstSoupSession'
Got context from element 'souphttpsrc0': gst.soup.session=context, session=(GstSoupSession)NULL;
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstTypeFindElement:typefindelement0.GstPad:src: caps = application/x-hls
0:00:00.734941579 4889 0x7f1cf8000b70 DEBUG hlsdemux gsthlsdemux.c:1349:gst_hls_demux_reset:<hlsdemux0> resetting
0:00:00.734961116 4889 0x7f1cf8000b70 DEBUG hlsdemux gsthlsdemux.c:1368:gst_hls_demux_reset:<hlsdemux0> Streams aware : 1
0:00:00.734971065 4889 0x7f1cf8000b70 DEBUG hlsdemux gsthlsdemux.c:1349:gst_hls_demux_reset:<hlsdemux0> resetting
0:00:00.734977728 4889 0x7f1cf8000b70 DEBUG hlsdemux gsthlsdemux.c:1368:gst_hls_demux_reset:<hlsdemux0> Streams aware : 1
0:00:00.735044884 4889 0x7f1cf8000b70 INFO hlsdemux gsthlsdemux.c:769:gst_hls_demux_process_manifest:<hlsdemux0> Initial playlist location: http://live.ximalaya.com/radio-first-page-app/live/1661/24.m3u8 (base uri: (null))
/GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstHLSDemux:hlsdemux0.GstPad:sink: caps = application/x-hls
0:00:00.735083627 4889 0x7f1cf8000b70 INFO hlsdemux gsthlsdemux.c:802:gst_hls_demux_process_manifest:<hlsdemux0> selected http://live.ximalaya.com/radio-first-page-app/live/1661/24.m3u8
0:00:00.735092043 4889 0x7f1cf8000b70 DEBUG hlsdemux gsthlsdemux.c:607:gst_hls_demux_setup_streams:<hlsdemux0> Setting up streams
0:00:00.735103414 4889 0x7f1cf8000b70 DEBUG hlsdemux gsthlsdemux.c:504:create_stream_for_playlist:<hlsdemux0> is_primary_playlist:1 selected:1 playlist name 'http://live.ximalaya.com/radio-first-page-app/live/1661/24.m3u8'
0:00:00.735159119 4889 0x7f1cf8000b70 DEBUG hlsdemux gsthlsdemux.c:1297:gst_hls_demux_update_fragment_info:<hlsdemux0> Stream 0x7f1cfc02fb30 URI now http://broadcast.tx.xmcdn.com/live/1661_24_240206_000127_27a4.aac
0:00:00.735321264 4889 0x7f1cf8000f50 DEBUG hlsdemux gsthlsdemux.c:1297:gst_hls_demux_update_fragment_info:<hlsdemux0> Stream 0x7f1cfc02fb30 URI now http://broadcast.tx.xmcdn.com/live/1661_24_240206_000127_27a4.aac
0:00:00.735971318 4889 0x557e75f8a330 WARN structure gststructure.c:2093:priv_gst_structure_append_to_gstring: No value transform to serialize field 'session' of type 'GstSoupSession'
Got context from element 'souphttpsrc1': gst.soup.session=context, session=(GstSoupSession)NULL;
0:00:09.009718229 4889 0x7f1cf8001350 DEBUG hlsdemux gsthlsdemux.c:1014:gst_hls_demux_handle_buffer:<'':src_0> Typefind result: audio/mpeg, framed=(boolean)false, mpegversion=(int)4, stream-format=(string)adts, level=(string)1, base-profile=(string)lc, profile=(string)lc, channels=(int)1, rate=(int)22050 prob:100
0:00:09.009857261 4889 0x7f1cf8001350 WARN urisourcebin gsturisourcebin.c:761:new_demuxer_pad_added_cb:<urisourcebin0> error: Adaptive demuxer is not streams-aware, check your installation
ERROR: from element /GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0: Your GStreamer installation is missing a plug-in.
Additional debug info:
../gst/playback/gsturisourcebin.c(761): new_demuxer_pad_added_cb (): /GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0:
Adaptive demuxer is not streams-aware, check your installation
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
0:00:09.010782102 4889 0x557e75f8a330 DEBUG hlsdemux gsthlsdemux.c:1349:gst_hls_demux_reset:<hlsdemux0> resetting
0:00:09.010801178 4889 0x557e75f8a330 DEBUG hlsdemux gsthlsdemux.c:1368:gst_hls_demux_reset:<hlsdemux0> Streams aware : 1
0:00:09.010979423 4889 0x557e75f8a330 DEBUG hlsdemux gsthlsdemux.c:1349:gst_hls_demux_reset:<hlsdemux0> resetting
0:00:09.010991957 4889 0x557e75f8a330 DEBUG hlsdemux gsthlsdemux.c:1368:gst_hls_demux_reset:<hlsdemux0> Streams aware : 1
0:00:09.011312971 4889 0x557e75f8a330 DEBUG hlsdemux gsthlsdemux.c:1349:gst_hls_demux_reset:<hlsdemux0> resetting
0:00:09.011326397 4889 0x557e75f8a330 DEBUG hlsdemux gsthlsdemux.c:1368:gst_hls_demux_reset:<hlsdemux0> Streams aware : 0
Freeing pipeline ...
# gst-launch-1.0 --version
gst-launch-1.0 version 1.22.9
GStreamer 1.22.9
Unknown package origin
#
`````
</details>