GStreamer issueshttps://gitlab.freedesktop.org/groups/gstreamer/-/issues2022-11-10T09:20:46Zhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/146basesink: seeking issue when async is set to false2022-11-10T09:20:46ZBugzilla Migration Userbasesink: seeking issue when async is set to false## Submitted by Eunhae Choi
**[Link to original bug (#759730)](https://bugzilla.gnome.org/show_bug.cgi?id=759730)**
## Description
If I set the async property to false of sink element, seeking does not works well.
Forward seeki...## Submitted by Eunhae Choi
**[Link to original bug (#759730)](https://bugzilla.gnome.org/show_bug.cgi?id=759730)**
## Description
If I set the async property to false of sink element, seeking does not works well.
Forward seeking seems like okey but backward seeking does not work.
You can check the issue with gst-play-1.0.
# gst-play-1.0 /home/eunhye/content/mp3/piano.mp3 --audiosink="pulsesink async=false"
Thank you.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/147collectpads: Cannot use GST_STREAM_FLAG_SPARSE with mpegtsmux2022-11-10T09:20:46ZBugzilla Migration Usercollectpads: Cannot use GST_STREAM_FLAG_SPARSE with mpegtsmux## Submitted by Alexander Vasiljev
**[Link to original bug (#759807)](https://bugzilla.gnome.org/show_bug.cgi?id=759807)**
## Description
Setting GST_STREAM_FLAG_SPARSE to one of inputs of mpegtsmux stops both input streams.
Ma...## Submitted by Alexander Vasiljev
**[Link to original bug (#759807)](https://bugzilla.gnome.org/show_bug.cgi?id=759807)**
## Description
Setting GST_STREAM_FLAG_SPARSE to one of inputs of mpegtsmux stops both input streams.
May be the cause is in libs/gst/base/gstcollectpads.c
Here is a patch. With this patch GST_STREAM_FLAG_SPARSE works as expected.
diff --git a/libs/gst/base/gstcollectpads.c b/libs/gst/base/gstcollectpads.c
index 8edfe41..14f9926 100644
--- a/libs/gst/base/gstcollectpads.c
+++ b/libs/gst/base/gstcollectpads.c
@@ -1440,7 +1440,8 @@ gst_collect_pads_recalculate_waiting (GstCollectPads * pads)
if (!GST_COLLECT_PADS_STATE_IS_SET (data, GST_COLLECT_PADS_STATE_WAITING)) {
/* start waiting */
gst_collect_pads_set_waiting (pads, data, TRUE);
- result = TRUE;
+ if (!GST_COLLECT_PADS_STATE_IS_SET (data, GST_COLLECT_PADS_STATE_LOCKED))
+ result = TRUE;
}
}
}
Version: 1.6.2https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/150bin, pipeline, sink: state change / async-done propagation issue with repeate...2022-11-10T09:20:46ZBugzilla Migration Userbin, pipeline, sink: state change / async-done propagation issue with repeated rtspsrc seeks## Submitted by ste..@..il.com
**[Link to original bug (#760532)](https://bugzilla.gnome.org/show_bug.cgi?id=760532)**
## Description
I'm having a issue at the moment with continuously seeks with RTSP playback. The rtsp client is co...## Submitted by ste..@..il.com
**[Link to original bug (#760532)](https://bugzilla.gnome.org/show_bug.cgi?id=760532)**
## Description
I'm having a issue at the moment with continuously seeks with RTSP playback. The rtsp client is connected with TCP interleave and I am seeking continuously, lets say every second or so I do a new seek. Then sometimes after seeking 3-5 times the video playback stalls for 20 seconds or so, but sometimes I can seek for 30 times before it happens.
### Server:
rtsp server serving a mkv file, the pipeline looks something like:
```
.---------. .---------------. .------------.
| filesrc |->| matroskademux |->| rtph264pay |
'---------' '---------------' '------------'
```
But I have also tried adding queues in between the elements.
The video file:
resolution: 1280x720
bitrate: 4096kb
framerate: 30fps
duration: 60 min
gov length: 10
### Client:
`rtspsrc location=rtsp://127.0.0.1:8554/something protocols=0x4 ! queue ! rtph264depay! avdec_h264 ! autovideosink`
### Test:
I have tried to create a test application for this, but it seems to not always happen.
``` c
#include <gst/gst.h>
void do_seek(GstElement *pipeline, gint64 timestamp)
{
unsigned int seek_flags = GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT | GST_SEEK_FLAG_SNAP_NEAREST;
gst_element_seek_simple(pipeline, GST_FORMAT_TIME, seek_flags, timestamp);
}
int main()
{
GstElement *pipeline;
GstBus *bus;
GstMessage *msg;
gint64 position = GST_SECOND * 5;
// initialize GStreamer
gst_init(NULL, NULL);
pipeline = gst_parse_launch("rtspsrc name=rtspsrc ! queue ! rtph264depay ! fakesink", NULL);
GstElement *rtspsrc = gst_bin_get_by_name(GST_BIN(pipeline), "rtspsrc");
g_object_set(rtspsrc,
"location", "rtsp://localhost:8554/something",
"protocols", 4, // 4 = GST_RTSP_LOWER_TRANS_TCP
NULL);
g_object_unref(rtspsrc);
gst_element_set_state(pipeline, GST_STATE_PLAYING);
gst_element_get_state(pipeline, NULL, NULL, GST_CLOCK_TIME_NONE);
// Wait until error, eos or async done
bus = gst_element_get_bus(pipeline);
unsigned int bus_flags = GST_MESSAGE_ERROR | GST_MESSAGE_EOS | GST_MESSAGE_ASYNC_DONE;
msg = gst_bus_timed_pop_filtered(bus, GST_CLOCK_TIME_NONE, (GstMessageType)(bus_flags));
unsigned int seek_count = 0;
while(GST_MESSAGE_TYPE(msg) != GST_MESSAGE_EOS)
{
g_print("seek (%u) again... :D\n", seek_count++);
position += GST_SECOND;
do_seek(pipeline, position);
gst_message_unref(msg);
msg = gst_bus_timed_pop_filtered(bus, GST_CLOCK_TIME_NONE, (GstMessageType)(bus_flags));
}
// Free resources
gst_message_unref(msg);
gst_object_unref(bus);
gst_element_set_state(pipeline, GST_STATE_NULL);
gst_object_unref(pipeline);
g_print("done");
return 0;
}
```
### Blocking
* #91
### See also
* #179https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/152basesink: always drops buffers before segment2022-11-10T09:20:46ZBugzilla Migration Userbasesink: always drops buffers before segment## Submitted by Thiago Sousa Santos `@thiagossantos`
**[Link to original bug (#760677)](https://bugzilla.gnome.org/show_bug.cgi?id=760677)**
## Description
+++ This bug was initially created as a clone of [Bug 752791](https://bugzil...## Submitted by Thiago Sousa Santos `@thiagossantos`
**[Link to original bug (#760677)](https://bugzilla.gnome.org/show_bug.cgi?id=760677)**
## Description
+++ This bug was initially created as a clone of [Bug 752791](https://bugzilla.gnome.org/show_bug.cgi?id=752791) +++
Basesink drops buffers before segment, this can be harmful for streams that have keyframes. Appsink, network sinks and any other sinks that can handle any format would drop relevant data before the segment and rendering might not work as expected.
### Depends on
* [Bug 752791](https://bugzilla.gnome.org/show_bug.cgi?id=752791)
### See also
* [Bug 765734](https://bugzilla.gnome.org/show_bug.cgi?id=765734)https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/156gstinfo: Make GST_DEBUG_PAD_NAME "MT crash safe"2022-11-10T09:20:46ZBugzilla Migration Usergstinfo: Make GST_DEBUG_PAD_NAME "MT crash safe"## Submitted by Håvard Graff (hgr)
**[Link to original bug (#761916)](https://bugzilla.gnome.org/show_bug.cgi?id=761916)**
## Description
Created attachment 320952
test and fix
The pad may be unparented while this macro is ca...## Submitted by Håvard Graff (hgr)
**[Link to original bug (#761916)](https://bugzilla.gnome.org/show_bug.cgi?id=761916)**
## Description
Created attachment 320952
test and fix
The pad may be unparented while this macro is called which could result
in a segfault. The new macro protects against this. The parent may still
be disposed while the macro is called, but this will not result in a
crash (but the parent name may be garbage). Using gst_pad_get_parent ()
is undesirable since it takes the object lock.
The patch take advantage of compound expressions available as a C
extension in GCC and some other compilers.
~~**Patch 320952**~~, "test and fix":
[gstinfo-debug-pad-name-macro-fix.patch](/uploads/31ead0e98c821cde763b9037f5e6c976/gstinfo-debug-pad-name-macro-fix.patch)https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/157pad: Race between push and (de)activate leads to data flow before events2022-11-10T09:20:46ZBugzilla Migration Userpad: Race between push and (de)activate leads to data flow before events## Submitted by Stian Selnes `@stianse`
**[Link to original bug (#762086)](https://bugzilla.gnome.org/show_bug.cgi?id=762086)**
## Description
Created attachment 321263
Test
There is a race where data can be pushed without fo...## Submitted by Stian Selnes `@stianse`
**[Link to original bug (#762086)](https://bugzilla.gnome.org/show_bug.cgi?id=762086)**
## Description
Created attachment 321263
Test
There is a race where data can be pushed without forwarding the sticky
events. This test will trigger a g_warning about data flow before events.
There's likely more than one race here, probably both for buffers and
events. What can happen when trying to push a buffer while changing
element state and thus (de)activating the pads is:
1. Pads are active and buffers are flowing as normal.
2. Element changes state and its pads are deactivated, during which
the stored sticky events are removed.
3. A new buffer is pushed from a srcpad in the direction of the
element's deactive sinkpad.
4. check_sticky() in gst_pad_push_data() will not send events since
the flag PENDING_EVENTS on this srcpad is not set.
5. Before calling gst_pad_chain_data_unchecked() on the sinkpad, the pad
will be activated (because of an element state change). The flag
PENDING_EVENTS will be set, but it's too late for the srcpad to send
the sticky events.
6. The event check in gst_pad_chain_data_unchecked() will fail and give
g_warning.
Any thoughts on how this should be resolved?
**Patch 321263**, "Test":
[0001-pad-Stress-test-for-de-activate-while-pushing.patch](/uploads/5e90fb4d72177dadd296ce9b2748e4b5/0001-pad-Stress-test-for-de-activate-while-pushing.patch)https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/163GstPreset: fix enum properties2022-11-10T09:20:46ZBugzilla Migration UserGstPreset: fix enum properties## Submitted by Sebastian Dröge `@slomo`
**[Link to original bug (#764240)](https://bugzilla.gnome.org/show_bug.cgi?id=764240)**
## Description
+++ This bug was initially created as a clone of [Bug 763814](https://bugzilla.gnome.org...## Submitted by Sebastian Dröge `@slomo`
**[Link to original bug (#764240)](https://bugzilla.gnome.org/show_bug.cgi?id=764240)**
## Description
+++ This bug was initially created as a clone of [Bug 763814](https://bugzilla.gnome.org/show_bug.cgi?id=763814) +++
GstPreset has the same problem. Resulting in things like "frame-packing=Automatic (use incoming video information)" (this is from x264enc) in the generated preset files. Changing that one is more tricky as we need to keep backwards compatibility...https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/181multiqueue: Deadlock in _sink_activate_mode when releasing pad2022-11-10T09:20:46ZBugzilla Migration Usermultiqueue: Deadlock in _sink_activate_mode when releasing pad## Submitted by Marcin Lewandowski
**[Link to original bug (#769764)](https://bugzilla.gnome.org/show_bug.cgi?id=769764)**
## Description
I am using GStreamer 1.8.2 to create a pipeline that has multiple input branches, created dyna...## Submitted by Marcin Lewandowski
**[Link to original bug (#769764)](https://bugzilla.gnome.org/show_bug.cgi?id=769764)**
## Description
I am using GStreamer 1.8.2 to create a pipeline that has multiple input branches, created dynamically after D-Bus method call. Each of the branch contains shmsrc do_timestamp=true is_live=true ! capsfilter. They are wrapped into bin, where capsfilter's src pad becomes ghost pad.
Each of such branches is linked with multiqueue, and multiqueue is linked to the audiomixer.
It may happen that such branches are added/removed in the runtime.
In case of adding I just create them, request new pads on the multiqueue, audiomixer and link them (no pausing or pad blocking involved).
In case of removing I just unlink the bin, release pads (no pausing or pad blocking involved).
In case of errors (e.g. when SHM socket is closed) I override bin's virtual handle_message and intercept ERROR messages (I don't want them to propagate accross whole pipeline), and remove bin using method above in the next idle cycle of the mainloop.
This is what I got today, after D-Bus call that involved adding a branch.
```
(gdb) thr a a bt
Thread 10 (Thread 0x7f36b491c700 (LWP 16701)):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f36c121b8cf in g_cond_wait (cond=cond@entry=0x231e850, mutex=mutex@entry=0x22ba290) at gthread-posix.c:1397
#2 0x00007f36bd64ca6e in gst_multi_queue_sink_query (pad=<optimized out>, parent=0x22ba120, query=0x7f36880018f0) at gstmultiqueue.c:2192
#3 0x00007f36c08f17e8 in gst_pad_query (pad=pad@entry=0x231d490, query=query@entry=0x7f36880018f0) at gstpad.c:3922
#4 0x00007f36c08f1db3 in gst_pad_peer_query (pad=pad@entry=0x22e02c0, query=0x7f36880018f0) at gstpad.c:4054
#5 0x00007f36c08f24e3 in query_forward_func (pad=pad@entry=0x22e02c0, data=data@entry=0x7f36b491b9d0) at gstpad.c:3303
#6 0x00007f36c08f04de in gst_pad_forward (pad=pad@entry=0x22e23c0, forward=forward@entry=0x7f36c08f2430 <query_forward_func>, user_data=user_data@entry=0x7f36b491b9d0) at gstpad.c:2936
#7 0x00007f36c08f0761 in gst_pad_query_default (pad=0x22e23c0, parent=<optimized out>, query=0x7f36880018f0) at gstpad.c:3370
#8 0x00007f36c08f17e8 in gst_pad_query (pad=pad@entry=0x22e23c0, query=query@entry=0x7f36880018f0) at gstpad.c:3922
#9 0x00007f36c08f1db3 in gst_pad_peer_query (pad=0x2317230, query=query@entry=0x7f36880018f0) at gstpad.c:4054
#10 0x00007f36bd3fb962 in gst_base_transform_default_propose_allocation (trans=0x7f36a4007530, decide_query=<optimized out>, query=0x7f36880018f0) at gstbasetransform.c:1435
#11 0x00007f36bd3fe991 in gst_base_transform_default_query (trans=0x7f36a4007530, direction=<optimized out>, query=0x7f36880018f0) at gstbasetransform.c:1535
#12 0x00007f36c08f17e8 in gst_pad_query (pad=pad@entry=0x2317b30, query=query@entry=0x7f36880018f0) at gstpad.c:3922
#13 0x00007f36c08f1db3 in gst_pad_peer_query (pad=0x2317d70, query=query@entry=0x7f36880018f0) at gstpad.c:4054
#14 0x00007f36bd3f5a48 in gst_base_src_prepare_allocation (caps=0x0, basesrc=0x23209a0) at gstbasesrc.c:3137
#15 gst_base_src_negotiate (basesrc=0x23209a0) at gstbasesrc.c:3281
#16 gst_base_src_loop (pad=0x2317d70) at gstbasesrc.c:2698
#17 0x00007f36c091ded1 in gst_task_func (task=0x22b0950) at gsttask.c:332
#18 0x00007f36c11fe27e in g_thread_pool_thread_proxy (data=<optimized out>) at gthreadpool.c:307
#19 0x00007f36c11fd8e5 in g_thread_proxy (data=0x7f36900041e0) at gthread.c:778
#20 0x00007f36c0f776fa in start_thread (arg=0x7f36b491c700) at pthread_create.c:333
#21 0x00007f36c0cadb5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
Thread 9 (Thread 0x7f36a2ffd700 (LWP 16292)):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f36c121b8cf in g_cond_wait (cond=cond@entry=0x22b00b0, mutex=mutex@entry=0x22b0068) at gthread-posix.c:1397
#2 0x00007f36c091e06d in gst_task_func (task=0x22b0050) at gsttask.c:317
#3 0x00007f36c11fe27e in g_thread_pool_thread_proxy (data=<optimized out>) at gthreadpool.c:307
#4 0x00007f36c11fd8e5 in g_thread_proxy (data=0x7f3694003230) at gthread.c:778
#5 0x00007f36c0f776fa in start_thread (arg=0x7f36a2ffd700) at pthread_create.c:333
#6 0x00007f36c0cadb5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
Thread 8 (Thread 0x7f36a37fe700 (LWP 16129)):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f36c121b8cf in g_cond_wait (cond=cond@entry=0x21baa88, mutex=mutex@entry=0x21baa78) at gthread-posix.c:1397
#2 0x00007f36bd409872 in _gst_data_queue_wait_non_empty (queue=queue@entry=0x21baad0) at gstdataqueue.c:553
#3 0x00007f36bd40ab90 in gst_data_queue_pop (queue=0x21baad0, item=item@entry=0x7f36a37fde40) at gstdataqueue.c:595
#4 0x00007f36bd6516d5 in gst_multi_queue_loop (pad=<optimized out>) at gstmultiqueue.c:1575
#5 0x00007f36c091ded1 in gst_task_func (task=0x22b0cb0) at gsttask.c:332
#6 0x00007f36c11fe27e in g_thread_pool_thread_proxy (data=<optimized out>) at gthreadpool.c:307
#7 0x00007f36c11fd8e5 in g_thread_proxy (data=0x7f3690001a30) at gthread.c:778
#8 0x00007f36c0f776fa in start_thread (arg=0x7f36a37fe700) at pthread_create.c:333
#9 0x00007f36c0cadb5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
Thread 7 (Thread 0x7f36b5530700 (LWP 21373)):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f36c121b8cf in g_cond_wait (cond=0x22e89b0, mutex=0x22e89a8) at gthread-posix.c:1397
#2 0x00007f36bc8c93d3 in gst_aggregator_pad_chain_internal (self=0x22bf940, aggpad=0x22e8a00, buffer=0x7f369c01aad0, head=1) at gstaggregator.c:2187
#3 0x00007f36c08eb59f in gst_pad_chain_data_unchecked (data=0x7f369c01aad0, type=4112, pad=0x22e8a00) at gstpad.c:4177
#4 gst_pad_push_data (pad=pad@entry=0x22c18f0, type=type@entry=4112, data=data@entry=0x7f369c01aad0) at gstpad.c:4429
#5 0x00007f36c08f34d3 in gst_pad_push (pad=0x22c18f0, buffer=buffer@entry=0x7f369c01aad0) at gstpad.c:4548
#6 0x00007f36bd652124 in gst_single_queue_push_one (allow_drop=<synthetic pointer>, object=0x7f369c01aad0, sq=0x22e77f0, mq=0x22ba120) at gstmultiqueue.c:1417
#7 gst_multi_queue_loop (pad=<optimized out>) at gstmultiqueue.c:1701
#8 0x00007f36c091ded1 in gst_task_func (task=0x22b03b0) at gsttask.c:332
#9 0x00007f36c11fe27e in g_thread_pool_thread_proxy (data=<optimized out>) at gthreadpool.c:307
#10 0x00007f36c11fd8e5 in g_thread_proxy (data=0x22bf280) at gthread.c:778
#11 0x00007f36c0f776fa in start_thread (arg=0x7f36b5530700) at pthread_create.c:333
#12 0x00007f36c0cadb5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
Thread 6 (Thread 0x7f36b5d31700 (LWP 21372)):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f36c121b8cf in g_cond_wait (cond=cond@entry=0x21ba9e0, mutex=mutex@entry=0x21ba9b8) at gthread-posix.c:1397
#2 0x00007f36bd40a602 in gst_data_queue_push (queue=0x21baa10, item=item@entry=0x7f3694004120) at gstdataqueue.c:520
#3 0x00007f36bd650ad5 in gst_multi_queue_chain (pad=<optimized out>, parent=<optimized out>, buffer=0x7f36a4029d20) at gstmultiqueue.c:1890
#4 0x00007f36c08eb59f in gst_pad_chain_data_unchecked (data=0x7f36a4029d20, type=4112, pad=0x22c16b0) at gstpad.c:4177
#5 gst_pad_push_data (pad=pad@entry=0x22c1470, type=type@entry=4112, data=data@entry=0x7f36a4029d20) at gstpad.c:4429
#6 0x00007f36c08f34d3 in gst_pad_push (pad=pad@entry=0x22c1470, buffer=0x7f36a4029d20) at gstpad.c:4548
#7 0x00007f36bd3f58d5 in gst_base_src_loop (pad=0x22c1470) at gstbasesrc.c:2850
#8 0x00007f36c091ded1 in gst_task_func (task=0x22b04d0) at gsttask.c:332
#9 0x00007f36c11fe27e in g_thread_pool_thread_proxy (data=<optimized out>) at gthreadpool.c:307
#10 0x00007f36c11fd8e5 in g_thread_proxy (data=0x22eaad0) at gthread.c:778
#11 0x00007f36c0f776fa in start_thread (arg=0x7f36b5d31700) at pthread_create.c:333
#12 0x00007f36c0cadb5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
Thread 5 (Thread 0x7f36b6532700 (LWP 21371)):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f36c121b8cf in g_cond_wait (cond=cond@entry=0x22d83a8, mutex=mutex@entry=0x22d8380) at gthread-posix.c:1397
#2 0x00007f36bd656166 in gst_queue_chain_buffer_or_list (parent=0x22d8100, obj=0x7f369c0226f0, is_list=0, pad=<optimized out>) at gstqueue.c:1225
#3 0x00007f36c08eb59f in gst_pad_chain_data_unchecked (data=0x7f369c0226f0, type=4112, pad=0x22c0ff0) at gstpad.c:4177
#4 gst_pad_push_data (pad=pad@entry=0x22c0db0, type=type@entry=4112, data=data@entry=0x7f369c0226f0) at gstpad.c:4429
#5 0x00007f36c08f34d3 in gst_pad_push (pad=0x22c0db0, buffer=0x7f369c0226f0) at gstpad.c:4548
#6 0x00007f36bd3f9fad in gst_base_transform_chain (pad=<optimized out>, parent=0x22d64e0, buffer=<optimized out>) at gstbasetransform.c:2369
#7 0x00007f36c08eb59f in gst_pad_chain_data_unchecked (data=0x7f369c0226f0, type=4112, pad=0x22c0b70) at gstpad.c:4177
#8 gst_pad_push_data (pad=pad@entry=0x22c0930, type=type@entry=4112, data=data@entry=0x7f369c0226f0) at gstpad.c:4429
#9 0x00007f36c08f34d3 in gst_pad_push (pad=0x22c0930, buffer=0x7f369c0226f0) at gstpad.c:4548
#10 0x00007f36bd3f9fad in gst_base_transform_chain (pad=<optimized out>, parent=0x22d42d0, buffer=<optimized out>) at gstbasetransform.c:2369
#11 0x00007f36c08eb59f in gst_pad_chain_data_unchecked (data=0x7f369c0226f0, type=4112, pad=0x22c06f0) at gstpad.c:4177
#12 gst_pad_push_data (pad=pad@entry=0x22c04b0, type=type@entry=4112, data=data@entry=0x7f369c0226f0) at gstpad.c:4429
#13 0x00007f36c08f34d3 in gst_pad_push (pad=0x22c04b0, buffer=0x7f369c0226f0) at gstpad.c:4548
#14 0x00007f36bd3f9fad in gst_base_transform_chain (pad=<optimized out>, parent=0x22c4bd0, buffer=<optimized out>) at gstbasetransform.c:2369
#15 0x00007f36c08eb59f in gst_pad_chain_data_unchecked (data=0x7f369c0114b0, type=4112, pad=0x22c0270) at gstpad.c:4177
#16 gst_pad_push_data (pad=pad@entry=0x22c0030, type=type@entry=4112, data=data@entry=0x7f369c0114b0) at gstpad.c:4429
#17 0x00007f36c08f34d3 in gst_pad_push (pad=0x22c0030, buffer=buffer@entry=0x7f369c0114b0) at gstpad.c:4548
#18 0x00007f36bc8cb788 in gst_aggregator_finish_buffer (self=self@entry=0x22bf940, buffer=0x7f369c0114b0) at gstaggregator.c:579
#19 0x00007f36bcfb4e86 in gst_audio_aggregator_aggregate (agg=0x22bf940, timeout=0) at gstaudioaggregator.c:1357
#20 0x00007f36bc8cbe53 in gst_aggregator_aggregate_func (self=0x22bf940) at gstaggregator.c:816
#21 0x00007f36c091ded1 in gst_task_func (task=0x22b0290) at gsttask.c:332
#22 0x00007f36c11fe27e in g_thread_pool_thread_proxy (data=<optimized out>) at gthreadpool.c:307
#23 0x00007f36c11fd8e5 in g_thread_proxy (data=0x22bf2d0) at gthread.c:778
#24 0x00007f36c0f776fa in start_thread (arg=0x7f36b6532700) at pthread_create.c:333
#25 0x00007f36c0cadb5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
Thread 4 (Thread 0x7f36b6d33700 (LWP 21370)):
#0 0x00007f36c0ca1f51 in __GI_ppoll (fds=0x7f36ac01deb0, nfds=1, timeout=<optimized out>, timeout@entry=0x7f36b6d32410, sigmask=sigmask@entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:50
#1 0x00007f36c0900878 in ppoll (__ss=0x0, __timeout=0x7f36b6d32410, __nfds=<optimized out>, __fds=<optimized out>) at /usr/include/x86_64-linux-gnu/bits/poll2.h:77
#2 gst_poll_wait (set=0x22eab70, timeout=timeout@entry=24000000) at gstpoll.c:1248
#3 0x00007f36b7599032 in gst_shout2send_render (basesink=0x22f5210, buf=0x7f369c0501f0) at gstshout2.c:648
#4 0x00007f36bd3eecca in gst_base_sink_chain_unlocked (basesink=basesink@entry=0x22f5210, obj=obj@entry=0x7f369c0501f0, is_list=is_list@entry=0, pad=<optimized out>) at gstbasesink.c:3532
#5 0x00007f36bd3f0150 in gst_base_sink_chain_main (basesink=0x22f5210, pad=<optimized out>, obj=0x7f369c0501f0, is_list=0) at gstbasesink.c:3655
#6 0x00007f36c08eb59f in gst_pad_chain_data_unchecked (data=0x7f369c0501f0, type=4112, pad=0x22ee030) at gstpad.c:4177
#7 gst_pad_push_data (pad=pad@entry=0x22c1d70, type=type@entry=4112, data=data@entry=0x7f369c0501f0) at gstpad.c:4429
#8 0x00007f36c08f34d3 in gst_pad_push (pad=0x22c1d70, buffer=0x7f369c0501f0) at gstpad.c:4548
#9 0x00007f36bcd7e834 in gst_audio_encoder_finish_frame (enc=enc@entry=0x22ebe20, buf=0x7f369c0501f0, samples=<optimized out>, samples@entry=1152) at gstaudioencoder.c:1001
#10 0x00007f36b79ebd12 in gst_lamemp3enc_finish_frames (lame=lame@entry=0x22ebe20) at gstlamemp3enc.c:692
#11 0x00007f36b79ec157 in gst_lamemp3enc_handle_frame (enc=0x22ebe20, in_buf=0x7f369c019400) at gstlamemp3enc.c:807
#12 0x00007f36bcd7f43d in gst_audio_encoder_push_buffers (enc=enc@entry=0x22ebe20, force=force@entry=0) at gstaudioencoder.c:1127
#13 0x00007f36bcd80568 in gst_audio_encoder_chain (pad=<optimized out>, parent=0x22ebe20, buffer=0x7f369c022e60) at gstaudioencoder.c:1346
#14 0x00007f36c08eb59f in gst_pad_chain_data_unchecked (data=0x7f369c022e60, type=4112, pad=0x22c1b30) at gstpad.c:4177
#15 gst_pad_push_data (pad=pad@entry=0x22e0050, type=type@entry=4112, data=data@entry=0x7f369c022e60) at gstpad.c:4429
#16 0x00007f36c08f34d3 in gst_pad_push (pad=pad@entry=0x22e0050, buffer=buffer@entry=0x7f369c022e60) at gstpad.c:4548
#17 0x00007f36c08dc573 in gst_proxy_pad_chain_default (pad=0x22e2170, parent=<optimized out>, buffer=0x7f369c022e60) at gstghostpad.c:126
#18 0x00007f36c08eb59f in gst_pad_chain_data_unchecked (data=0x7f369c022e60, type=4112, pad=0x22e2170) at gstpad.c:4177
#19 gst_pad_push_data (pad=pad@entry=0x22c1230, type=type@entry=4112, data=data@entry=0x7f369c022e60) at gstpad.c:4429
#20 0x00007f36c08f34d3 in gst_pad_push (pad=0x22c1230, buffer=buffer@entry=0x7f369c022e60) at gstpad.c:4548
#21 0x00007f36bd655a79 in gst_queue_push_one (queue=0x22d8100) at gstqueue.c:1362
#22 gst_queue_loop (pad=<optimized out>) at gstqueue.c:1509
#23 0x00007f36c091ded1 in gst_task_func (task=0x22b0170) at gsttask.c:332
#24 0x00007f36c11fe27e in g_thread_pool_thread_proxy (data=<optimized out>) at gthreadpool.c:307
#25 0x00007f36c11fd8e5 in g_thread_proxy (data=0x22eaca0) at gthread.c:778
#26 0x00007f36c0f776fa in start_thread (arg=0x7f36b6d33700) at pthread_create.c:333
#27 0x00007f36c0cadb5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
Thread 3 (Thread 0x7f36be083700 (LWP 21369)):
#0 0x00007f36c0ca1e8d in poll () at ../sysdeps/unix/syscall-template.S:84
#1 0x00007f36c11d71dc in g_main_context_poll (priority=2147483647, n_fds=2, fds=0x7f36b00010c0, timeout=<optimized out>, context=0x21c4a70) at gmain.c:4264
#2 g_main_context_iterate (context=0x21c4a70, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3964
#3 0x00007f36c11d7562 in g_main_loop_run (loop=0x22a96e0) at gmain.c:4163
#4 0x00007f36c17f8276 in gdbus_shared_thread_func (user_data=0x21c4a40) at gdbusprivate.c:246
#5 0x00007f36c11fd8e5 in g_thread_proxy (data=0x223c540) at gthread.c:778
#6 0x00007f36c0f776fa in start_thread (arg=0x7f36be083700) at pthread_create.c:333
#7 0x00007f36c0cadb5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
Thread 2 (Thread 0x7f36be884700 (LWP 21368)):
#0 0x00007f36c0ca1e8d in poll () at ../sysdeps/unix/syscall-template.S:84
#1 0x00007f36c11d71dc in g_main_context_poll (priority=2147483647, n_fds=1, fds=0x7f36b80008c0, timeout=<optimized out>, context=0x22a57a0) at gmain.c:4264
#2 g_main_context_iterate (context=context@entry=0x22a57a0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3964
#3 0x00007f36c11d72ec in g_main_context_iteration (context=0x22a57a0, may_block=may_block@entry=1) at gmain.c:4030
#4 0x00007f36c11d7329 in glib_worker_main (data=<optimized out>) at gmain.c:5801
#5 0x00007f36c11fd8e5 in g_thread_proxy (data=0x223c4f0) at gthread.c:778
#6 0x00007f36c0f776fa in start_thread (arg=0x7f36be884700) at pthread_create.c:333
#7 0x00007f36c0cadb5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
Thread 1 (Thread 0x7f36c216e700 (LWP 21367)):
#0 __lll_lock_wait () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
#1 0x00007f36c0f79e82 in __GI___pthread_mutex_lock (mutex=0x2313fd0) at ../nptl/pthread_mutex_lock.c:115
#2 0x00007f36bd64cc18 in gst_multi_queue_sink_activate_mode (pad=0x231d490, parent=<optimized out>, mode=GST_PAD_MODE_PUSH, active=0) at gstmultiqueue.c:1948
#3 0x00007f36c08ef68d in activate_mode_internal (pad=pad@entry=0x231d490, parent=parent@entry=0x22ba120, mode=mode@entry=GST_PAD_MODE_PUSH, active=active@entry=0) at gstpad.c:1176
#4 0x00007f36c08efdcd in gst_pad_set_active (pad=0x231d490, active=active@entry=0) at gstpad.c:1077
#5 0x00007f36bd64be95 in gst_multi_queue_release_pad (element=0x22ba120, pad=0x231d490) at gstmultiqueue.c:803
#6 0x00007f36c1d53a69 in my_app_core_common_input_bin_remove_input_unlocked (self=self@entry=0x22b40f0, model=model@entry=0x2301780 "Media.Input.File.MyApp.Model", id=id@entry=0x22f6660 "1ec0798f-7abb-4f09-91ca-ec79683ea509") at input_bin.c:1223
#7 0x00007f36c1d53ff3 in my_app_core_common_input_bin_add_input_unlocked (self=0x22b40f0, model=0x2301780 "Media.Input.File.MyApp.Model", id=0x22f6660 "1ec0798f-7abb-4f09-91ca-ec79683ea509") at input_bin.c:839
#8 0x00007f36c1d5524b in my_app_core_common_input_bin_sync_inputs (self=<optimized out>, target_linked_inputs=target_linked_inputs@entry=0x22f7020, target_linked_inputs_length1=target_linked_inputs_length1@entry=2) at input_bin.c:663
#9 0x00007f36c1d4fec9 in my_app_core_common_player_stream_real_sync_inputs (base=<optimized out>, linked_inputs=0x22f7020, linked_inputs_length1=2) at player.c:1252
#10 0x00007f36c1d4e41e in _dbus_my_app_core_common_daemon_media_output_base_sync_linked_inputs (self=0x21b10a0, _parameters_=<optimized out>, invocation=0x7f3690001ca0) at daemon/media/output/base.c:879
#11 0x00007f36c17e89bc in call_in_idle_cb (user_data=0x7f3690001ca0) at gdbusconnection.c:4832
#12 0x00007f36c11d6e9a in g_main_dispatch (context=0x21af730) at gmain.c:3237
#13 g_main_context_dispatch (context=context@entry=0x21af730) at gmain.c:3898
#14 0x00007f36c11d7240 in g_main_context_iterate (context=0x21af730, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3969
#15 0x00007f36c11d7562 in g_main_loop_run (loop=0x21af7f0) at gmain.c:4163
#16 0x00007f36c1abb969 in my_app_common_app_template_base_start_real (self=self@entry=0x21b10a0) at app/template/base.c:682
#17 0x00007f36c1abbf79 in my_app_common_app_template_base_start (self=self@entry=0x21b10a0) at app/template/base.c:470
#18 0x0000000000401ab8 in my_app_core_media_output_stream_rk_diffusor_main (argv=0x7fffbafd3d58, argv_length1=2) at main.c:38
#19 0x00007f36c0bc7830 in __libc_start_main (main=0x401980 <main>, argc=2, argv=0x7fffbafd3d58, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffbafd3d48) at ../csu/libc-start.c:291
#20 0x00000000004019b9 in _start ()
```
Version: 1.8.2https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/183GST_PARAM_USER_SHIFT should represent minimum shift count2022-11-10T09:20:47ZBugzilla Migration UserGST_PARAM_USER_SHIFT should represent minimum shift count## Submitted by Heinrich Fink `@heinrich.fink`
**[Link to original bug (#770079)](https://bugzilla.gnome.org/show_bug.cgi?id=770079)**
## Description
Created attachment 333552
Do not shift GST_PARAM_USER_SHIFT
The following c...## Submitted by Heinrich Fink `@heinrich.fink`
**[Link to original bug (#770079)](https://bugzilla.gnome.org/show_bug.cgi?id=770079)**
## Description
Created attachment 333552
Do not shift GST_PARAM_USER_SHIFT
The following code would rightfully result in a compiler warning:
#define TME_API_PARAM_EXPOSED (1 << (GST_PARAM_USER_SHIFT + 1))
warning: shift count >= width of type [-Wshift-count-overflow]
if ((pspec->flags & TME_API_PARAM_EXPOSED) == 0)
`^`~~~~~~~~~~~~~~~~~~~~
... because GST_PARAM_USER_SHIFT is already a shifted high integer value. See attached patch for a fix to restore the expected behavior of GST_PARAM_USER_SHIFT.
**Patch 333552**, "Do not shift GST_PARAM_USER_SHIFT":
[0001-paramspecs-Do-not-shift-GST_PARAM_USER_SHIFT-itself.patch](/uploads/6e2bd55284f5ea0341188875cb8d9a5e/0001-paramspecs-Do-not-shift-GST_PARAM_USER_SHIFT-itself.patch)https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/184pipeline stuck after 10x speed -> 1x speed -> pause2022-11-10T09:20:47ZBugzilla Migration Userpipeline stuck after 10x speed -> 1x speed -> pause## Submitted by Michael Olbrich `@mol`
**[Link to original bug (#770135)](https://bugzilla.gnome.org/show_bug.cgi?id=770135)**
## Description
Created attachment 333619
gst-play hack
My application sometimes gets stuck when sw...## Submitted by Michael Olbrich `@mol`
**[Link to original bug (#770135)](https://bugzilla.gnome.org/show_bug.cgi?id=770135)**
## Description
Created attachment 333619
gst-play hack
My application sometimes gets stuck when switching to PAUSED state. The state transition never finishes. With gdb I can see, that the video sink waits in gst_base_sink_wait_preroll() but not the audio sink.
I've reproduced this with big_buck_bunny_1080p_stereo.avi[1] and gst-play from master with the attached patch to generate the correct speed change sequence:
So far I've only seen this
- 5 seconds normal playback
- 10 seconds with 10x speed and GST_SEEK_FLAG_TRICKMODE_NO_AUDIO
- 1 second normal playback
- pause
-> PAUSED state is never reached
[1] https://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_1080p_stereo.avi
**Patch 333619**, "gst-play hack":
[0001-gst-play-hack-fast-forward-play-pause-sequence.patch](/uploads/9c185979b961d8ebaa52893e9a5055c1/0001-gst-play-hack-fast-forward-play-pause-sequence.patch)https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/190tee: adding inactive pad to running element2022-11-10T09:20:47ZBugzilla Migration Usertee: adding inactive pad to running element## Submitted by Miguel París Díaz `@mparisdiaz`
**[Link to original bug (#772115)](https://bugzilla.gnome.org/show_bug.cgi?id=772115)**
## Description
Created attachment 336431
Test that reproduces the problem
I have found th...## Submitted by Miguel París Díaz `@mparisdiaz`
**[Link to original bug (#772115)](https://bugzilla.gnome.org/show_bug.cgi?id=772115)**
## Description
Created attachment 336431
Test that reproduces the problem
I have found the next problem in the tee running the attached program:
GStreamer-WARNING **: adding inactive pad 'src_46' to running element 'tee0', you need to use gst_pad_set_active(pad,TRUE) before adding it.
**Attachment 336431**, "Test that reproduces the problem":
[main.c](/uploads/91b4891e48f54e9f23e2bae9c1a46554/main.c)
Version: 1.8.3https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/200bin: add disabled test documenting locked-state and base-time problems2022-11-10T09:20:47ZBugzilla Migration Userbin: add disabled test documenting locked-state and base-time problems## Submitted by Stian Selnes `@stianse`
**[Link to original bug (#773097)](https://bugzilla.gnome.org/show_bug.cgi?id=773097)**
## Description
The added test describes a problem with locked-state and base-time. Currently
the test ...## Submitted by Stian Selnes `@stianse`
**[Link to original bug (#773097)](https://bugzilla.gnome.org/show_bug.cgi?id=773097)**
## Description
The added test describes a problem with locked-state and base-time. Currently
the test fails with:
'123456789' (123456789) is not equal to 'gst_element_get_base_time (identity)' (0).
The consequence is that the identity element will never get a base-time even when
it later is set to playing.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/201core(debug): hard to distinguish related log at multi-instance env2022-11-10T09:20:47ZBugzilla Migration Usercore(debug): hard to distinguish related log at multi-instance env## Submitted by Eunhae Choi
**[Link to original bug (#773463)](https://bugzilla.gnome.org/show_bug.cgi?id=773463)**
## Description
This is for debug env.
When we do debug with log message, it is hard to recoginize which element...## Submitted by Eunhae Choi
**[Link to original bug (#773463)](https://bugzilla.gnome.org/show_bug.cgi?id=773463)**
## Description
This is for debug env.
When we do debug with log message, it is hard to recoginize which element/object is included in which pipeline in multi-instance environment.
We've added family-id for grouping for each pipeline at downstream (I've attached the patch).
To get better idea and make it public, I registered this bug.
Please share your idea and suggest better solution.
Thank you.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/202baseparse: fix draining with less data than min frame size available2022-11-10T09:20:47ZBugzilla Migration Userbaseparse: fix draining with less data than min frame size available## Submitted by Tim Müller `@tpm`
**[Link to original bug (#773666)](https://bugzilla.gnome.org/show_bug.cgi?id=773666)**
## Description
Created attachment 338771
baseparse: fix draining with less data than min frame size availabl...## Submitted by Tim Müller `@tpm`
**[Link to original bug (#773666)](https://bugzilla.gnome.org/show_bug.cgi?id=773666)**
## Description
Created attachment 338771
baseparse: fix draining with less data than min frame size available
Came across this when debugging some issues with rawvideoparse in a not-negotiated flow error scenario:
gst-launch-1.0 fakesrc sizetype=random ! queue ! rawvideoparse format=rgb ! appsink caps=video/x-raw,format=I420
First it would not return the flow error properly. After fixing that it would hit an assert in rawvideoparse
gstrawbaseparse.c:519:gst_raw_base_parse_handle_frame: assertion failed: (in_size >= frame_size)
Reason is that basesrc sends an EOS in response to the flow error, which makes basesrc drain, and the draining code passes less than the configured minimum framesize to the rawvideoparse subclass, which is unexpected.
Not tested the patch a lot, so saving it for now.
**Patch 338771**, "baseparse: fix draining with less data than min frame size available":
[0001-baseparse-fix-draining-with-less-data-than-min-frame.patch](/uploads/3878a1a3d4e0ea601595fc2b873d5148/0001-baseparse-fix-draining-with-less-data-than-min-frame.patch)https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/204GstStream: need API to deactivate streams2022-11-10T09:20:47ZBugzilla Migration UserGstStream: need API to deactivate streams## Submitted by Tim Müller `@tpm`
**[Link to original bug (#774321)](https://bugzilla.gnome.org/show_bug.cgi?id=774321)**
## Description
+++ This bug was initially created as a clone of [Bug 646638](https://bugzilla.gnome.org/show_b...## Submitted by Tim Müller `@tpm`
**[Link to original bug (#774321)](https://bugzilla.gnome.org/show_bug.cgi?id=774321)**
## Description
+++ This bug was initially created as a clone of [Bug 646638](https://bugzilla.gnome.org/show_bug.cgi?id=646638) +++
We now have new API to select and thus also deselect streams in form of the SELECT_STREAMS event.
We also want API that can be used to deactivate streams, which goes one step further, and would instruct the demuxer to not even read/demux/expose it.
This could be used for example in a thumbnailing application to deactivate decoding of all audio streams, or in GES which uses separate sources/decodebins for audio/video from the same input file.
Question is if we only want to be able to deactivate streams, or if we also want to allow re-activating them again later at runtime.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/205gdp: parsing GstStream in stream-start event issue2022-11-10T09:20:47ZBugzilla Migration Usergdp: parsing GstStream in stream-start event issue## Submitted by Nicolas Huet
**[Link to original bug (#774412)](https://bugzilla.gnome.org/show_bug.cgi?id=774412)**
## Description
Created attachment 339808
mpegts gdp test file
https://cgit.freedesktop.org/gstreamer/gstream...## Submitted by Nicolas Huet
**[Link to original bug (#774412)](https://bugzilla.gnome.org/show_bug.cgi?id=774412)**
## Description
Created attachment 339808
mpegts gdp test file
https://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=63f6f05d66537877365a1099ac176dc3afbb9f6b introduced variable GstStream. This is added in the stream-start event by tsdemux.
First, running the command:
gst-launch-1.0 -v filesrc location= mpegts.gdp ! gdpdepay ! tsdemux ! identity silent=false ! ac3parse ! gdppay ! filesink location= eac3.gdp
We can see the variable stream (stream=(GstStream)"\(GstStream\)\ stream1"):
E (type: stream-start (10254), GstEventStreamStart, stream-id=(string)fd91ddf0b44530850315c637f356514d:1282/000000e6, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, stream=(GstStream)"\(GstStream\)\ stream1", group-id=(uint)0;) 0x75b02450
Then trying to gdpdepay eac3.gdp:
gst-launch-1.0 -v --gst-debug=*gdp*:5 filesrc location= eac3.gdp ! gdpdepay ! fakesink silent=false
We have:
Could not parse payload string: GstEventStreamStart, stream-id=(string)fd91ddf0b44530850315c637f356514d:1282/000000e6, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, stream=(GstStream)"\(GstStream\)\ stream1", group-id=(uint)0;
Removing the stream variable makes it working.
It seems that something is missing in gstvalue or gststructure ?
**Attachment 339808**, "mpegts gdp test file":
[mpegts.gdp](/uploads/147a4c6890f6d554394603c99616bc2e/mpegts.gdp)
Version: 1.10.0https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/207Need new error code for signal loss2022-11-10T09:20:47ZBugzilla Migration UserNeed new error code for signal loss## Submitted by Vivia Nikolaidou `@vivia`
**[Link to original bug (#774667)](https://bugzilla.gnome.org/show_bug.cgi?id=774667)**
## Description
+++ This bug was initially created as a clone of [Bug 774629](https://bugzilla.gnome.or...## Submitted by Vivia Nikolaidou `@vivia`
**[Link to original bug (#774667)](https://bugzilla.gnome.org/show_bug.cgi?id=774667)**
## Description
+++ This bug was initially created as a clone of [Bug 774629](https://bugzilla.gnome.org/show_bug.cgi?id=774629) +++
Tim-Philipp Müller changed [bug 774629](https://bugzilla.gnome.org/show_bug.cgi?id=774629)
What Removed Added
CC t.i.m@zen.co.uk
Comment # 5 on [bug 774629](https://bugzilla.gnome.org/show_bug.cgi?id=774629) from Tim-Philipp Müller
I think we should be making use of the new _WITH_DETAILS API for
error/warning/info messages here, since the error code itself is really quite
meaningless and the app can't rely on the error string (might be translated in
future) or the debug string (should not be looked at).
Or add a new error code for it.
Or use a different kind of message (maybe progress messages?)https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/209validate: Deadlock when doing PAUSE->PLAYING dance on BUFFERING messages whil...2022-11-10T09:20:47ZBugzilla Migration Uservalidate: Deadlock when doing PAUSE->PLAYING dance on BUFFERING messages while transcoding in filesink## Submitted by Thibault Saunier `@thiblahute`
**[Link to original bug (#775993)](https://bugzilla.gnome.org/show_bug.cgi?id=775993)**
## Description
Created attachment 341827
validate: transcode: No buffering handling when the si...## Submitted by Thibault Saunier `@thiblahute`
**[Link to original bug (#775993)](https://bugzilla.gnome.org/show_bug.cgi?id=775993)**
## Description
Created attachment 341827
validate: transcode: No buffering handling when the sink is not synced on the clock
In gst-validate-transcoder-1.0 we respect do the BUFFERING message and PAUSE the pipeline when starting buffering and go back to PLAYING when this is done, and that even if the sink is not synchronized on the clock.
Validate test: validate.http.transcode.to_vorbis_and_vp8_in_webm.raw_video_mkv
In racy/rare conditions we get a deadlock when `prerolling` going to PAUSED with the following stack trace:
```
Thread 7 (Thread 0x7fbb6a020700 (LWP 21809)):
#0 0x00007fbb7225db7d in poll () at /lib64/libc.so.6
#1 0x00007fbb7257218c in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#2 0x00007fbb7257229c in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#3 0x00007fbb725722d9 in glib_worker_main () at /lib64/libglib-2.0.so.0
#4 0x00007fbb725988e5 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#5 0x00007fbb73bb861a in start_thread () at /lib64/libpthread.so.0
#6 0x00007fbb722695fd in clone () at /lib64/libc.so.6
Thread 6 (Thread 0x7fbb541e8700 (LWP 21847)):
#0 0x00007fbb72263809 in syscall () at /lib64/libc.so.6
#1 0x00007fbb725b68df in g_cond_wait () at /lib64/libglib-2.0.so.0
#2 0x00007fbb5649e455 in gst_queue2_wait_free_space (queue=0x7fbb4c03c000) at gstqueue2.c:1826
#3 0x00007fbb564a2d7e in gst_queue2_chain_buffer_or_buffer_list (queue=0x7fbb4c03c000, item=0x7fbb4c0413b0, item_type=GST_QUEUE2_ITEM_TYPE_BUFFER) at gstqueue2.c:2754
#4 0x00007fbb564a3341 in gst_queue2_chain (pad=0x7fbb4c0364f0, parent=0x7fbb4c03c000, buffer=0x7fbb4c0413b0) at gstqueue2.c:2815
#5 0x00007fbb75208f13 in gst_validate_pad_monitor_chain_func (pad=0x7fbb4c0364f0, parent=0x7fbb4c03c000, buffer=0x7fbb4c0413b0) at gst-validate-pad-monitor.c:2121
#6 0x00007fbb7366eb35 in gst_pad_chain_data_unchecked (pad=0x7fbb4c0364f0, type=4112, data=0x7fbb4c0413b0) at gstpad.c:4203
#7 0x00007fbb7366f8ce in gst_pad_push_data (pad=0x125f030, type=4112, data=0x7fbb4c0413b0) at gstpad.c:4455
#8 0x00007fbb7366fff6 in gst_pad_push (pad=0x125f030, buffer=0x7fbb4c0413b0) at gstpad.c:4574
#9 0x00007fbb564ad065 in gst_type_find_element_chain (pad=0x125edf0, parent=0x127c090, buffer=0x7fbb4c0413b0) at gsttypefindelement.c:896
#10 0x00007fbb75208f13 in gst_validate_pad_monitor_chain_func (pad=0x125edf0, parent=0x127c090, buffer=0x7fbb4c0413b0) at gst-validate-pad-monitor.c:2121
#11 0x00007fbb7366eb35 in gst_pad_chain_data_unchecked (pad=0x125edf0, type=4112, data=0x7fbb4c0413b0) at gstpad.c:4203
#12 0x00007fbb7366f8ce in gst_pad_push_data (pad=0x125e970, type=4112, data=0x7fbb4c0413b0) at gstpad.c:4455
#13 0x00007fbb7366fff6 in gst_pad_push (pad=0x125e970, buffer=0x7fbb4c0413b0) at gstpad.c:4574
#14 0x00007fbb7397b1b3 in gst_base_src_loop (pad=0x125e970) at gstbasesrc.c:2855
#15 0x00007fbb736aa69f in gst_task_func (task=0x127d170) at gsttask.c:334
#16 0x00007fbb736ab858 in default_func (tdata=0x1272ec0, pool=0x1013910) at gsttaskpool.c:68
#17 0x00007fbb7259927e in g_thread_pool_thread_proxy () at /lib64/libglib-2.0.so.0
#18 0x00007fbb725988e5 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#19 0x00007fbb73bb861a in start_thread () at /lib64/libpthread.so.0
#20 0x00007fbb722695fd in clone () at /lib64/libc.so.6
Thread 5 (Thread 0x7fbb537cd700 (LWP 21853)):
#0 0x00007fbb72263809 in syscall () at /lib64/libc.so.6
#1 0x00007fbb725b68df in g_cond_wait () at /lib64/libglib-2.0.so.0
#2 0x00007fbb73994ecb in gst_data_queue_push (queue=0x7fbb4c040480, item=0x7fbb4417d440) at gstdataqueue.c:520
#3 0x00007fbb5648bcea in gst_multi_queue_chain (pad=0x7fbb4c0376f0, parent=0x7fbb44044090, buffer=0x7fbb4c018ab0) at gstmultiqueue.c:2112
#4 0x00007fbb75208f13 in gst_validate_pad_monitor_chain_func (pad=0x7fbb4c0376f0, parent=0x7fbb44044090, buffer=0x7fbb4c018ab0) at gst-validate-pad-monitor.c:2121
#5 0x00007fbb7366eb35 in gst_pad_chain_data_unchecked (pad=0x7fbb4c0376f0, type=4112, data=0x7fbb4c018ab0) at gstpad.c:4203
#6 0x00007fbb7366f8ce in gst_pad_push_data (pad=0x7fbb4c037270, type=4112, data=0x7fbb4c018ab0) at gstpad.c:4455
#7 0x00007fbb7366fff6 in gst_pad_push (pad=0x7fbb4c037270, buffer=0x7fbb4c018ab0) at gstpad.c:4574
#8 0x00007fbb5621bd6b in gst_matroska_demux_parse_blockgroup_or_simpleblock (demux=0x7fbb4403c130, ebml=0x7fbb537cc4f0, cluster_time=1333, cluster_offset=4609563, is_simpleblock=1) at matroska-demux.c:3842
#9 0x00007fbb5621e35b in gst_matroska_demux_parse_id (demux=0x7fbb4403c130, id=163, length=115204, needed=4) at matroska-demux.c:4507
#10 0x00007fbb5622023d in gst_matroska_demux_chain (pad=0x7fbb4c036df0, parent=0x7fbb4403c130, buffer=0x0) at matroska-demux.c:4889
#11 0x00007fbb75208f13 in gst_validate_pad_monitor_chain_func (pad=0x7fbb4c036df0, parent=0x7fbb4403c130, buffer=0x7fbb4c041080) at gst-validate-pad-monitor.c:2121
#12 0x00007fbb7366eb35 in gst_pad_chain_data_unchecked (pad=0x7fbb4c036df0, type=4112, data=0x7fbb4c041080) at gstpad.c:4203
#13 0x00007fbb7366f8ce in gst_pad_push_data (pad=0x125fdb0, type=4112, data=0x7fbb4c041080) at gstpad.c:4455
#14 0x00007fbb7366fff6 in gst_pad_push (pad=0x125fdb0, buffer=0x7fbb4c041080) at gstpad.c:4574
#15 0x00007fbb564ad065 in gst_type_find_element_chain (pad=0x125fb70, parent=0x127c810, buffer=0x7fbb4c041080) at gsttypefindelement.c:896
#16 0x00007fbb75208f13 in gst_validate_pad_monitor_chain_func (pad=0x125fb70, parent=0x127c810, buffer=0x7fbb4c041080) at gst-validate-pad-monitor.c:2121
#17 0x00007fbb7366eb35 in gst_pad_chain_data_unchecked (pad=0x125fb70, type=4112, data=0x7fbb4c041080) at gstpad.c:4203
#18 0x00007fbb7366f8ce in gst_pad_push_data (pad=0x125ca30, type=4112, data=0x7fbb4c041080) at gstpad.c:4455
#19 0x00007fbb7366fff6 in gst_pad_push (pad=0x125ca30, buffer=0x7fbb4c041080) at gstpad.c:4574
#20 0x00007fbb73651501 in gst_proxy_pad_chain_default (pad=0x1236a10, parent=0x7fbb4c034140, buffer=0x7fbb4c041080) at gstghostpad.c:126
#21 0x00007fbb7366eb35 in gst_pad_chain_data_unchecked (pad=0x1236a10, type=4112, data=0x7fbb4c041080) at gstpad.c:4203
#22 0x00007fbb7366f8ce in gst_pad_push_data (pad=0x7fbb4c036730, type=4112, data=0x7fbb4c041080) at gstpad.c:4455
#23 0x00007fbb7366fff6 in gst_pad_push (pad=0x7fbb4c036730, buffer=0x7fbb4c041080) at gstpad.c:4574
#24 0x00007fbb564a3931 in gst_queue2_push_one (queue=0x7fbb4c03c000) at gstqueue2.c:2908
#25 0x00007fbb564a4486 in gst_queue2_loop (pad=0x7fbb4c036730) at gstqueue2.c:3030
#26 0x00007fbb736aa69f in gst_task_func (task=0x127d710) at gsttask.c:334
#27 0x00007fbb736ab858 in default_func (tdata=0x7fbb4c01d130, pool=0x1013910) at gsttaskpool.c:68
#28 0x00007fbb7259927e in g_thread_pool_thread_proxy () at /lib64/libglib-2.0.so.0
#29 0x00007fbb725988e5 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#30 0x00007fbb73bb861a in start_thread () at /lib64/libpthread.so.0
#31 0x00007fbb722695fd in clone () at /lib64/libc.so.6
Thread 4 (Thread 0x7fbb529ca700 (LWP 21860)):
#0 0x00007fbb72263809 in syscall () at /lib64/libc.so.6
#1 0x00007fbb725b68df in g_cond_wait () at /lib64/libglib-2.0.so.0
#2 0x00007fbb56494a87 in gst_queue_chain_buffer_or_list (pad=0x7fbb48024050, parent=0x7fbb4800c4b0, obj=0x7fbb44048a00, is_list=0) at gstqueue.c:1222
#3 0x00007fbb56495226 in gst_queue_chain (pad=0x7fbb48024050, parent=0x7fbb4800c4b0, buffer=0x7fbb44048a00) at gstqueue.c:1320
#4 0x00007fbb75208f13 in gst_validate_pad_monitor_chain_func (pad=0x7fbb48024050, parent=0x7fbb4800c4b0, buffer=0x7fbb44048a00) at gst-validate-pad-monitor.c:2121
#5 0x00007fbb7366eb35 in gst_pad_chain_data_unchecked (pad=0x7fbb48024050, type=4112, data=0x7fbb44048a00) at gstpad.c:4203
#6 0x00007fbb7366f8ce in gst_pad_push_data (pad=0x7fbb480041e0, type=4112, data=0x7fbb44048a00) at gstpad.c:4455
#7 0x00007fbb7366fff6 in gst_pad_push (pad=0x7fbb480041e0, buffer=0x7fbb44048a00) at gstpad.c:4574
#8 0x00007fbb73651501 in gst_proxy_pad_chain_default (pad=0x1237640, parent=0x12300d0, buffer=0x7fbb44048a00) at gstghostpad.c:126
#9 0x00007fbb7366eb35 in gst_pad_chain_data_unchecked (pad=0x1237640, type=4112, data=0x7fbb44048a00) at gstpad.c:4203
#10 0x00007fbb7366f8ce in gst_pad_push_data (pad=0x12373d0, type=4112, data=0x7fbb44048a00) at gstpad.c:4455
#11 0x00007fbb7366fff6 in gst_pad_push (pad=0x12373d0, buffer=0x7fbb44048a00) at gstpad.c:4574
#12 0x00007fbb73651501 in gst_proxy_pad_chain_default (pad=0x125dcb0, parent=0x12373d0, buffer=0x7fbb44048a00) at gstghostpad.c:126
#13 0x00007fbb7366eb35 in gst_pad_chain_data_unchecked (pad=0x125dcb0, type=4112, data=0x7fbb44048a00) at gstpad.c:4203
#14 0x00007fbb7366f8ce in gst_pad_push_data (pad=0x7fbb44006310, type=4112, data=0x7fbb44048a00) at gstpad.c:4455
#15 0x00007fbb7366fff6 in gst_pad_push (pad=0x7fbb44006310, buffer=0x7fbb44048a00) at gstpad.c:4574
#16 0x00007fbb73651501 in gst_proxy_pad_chain_default (pad=0x125d5c0, parent=0x7fbb44006310, buffer=0x7fbb44048a00) at gstghostpad.c:126
#17 0x00007fbb7366eb35 in gst_pad_chain_data_unchecked (pad=0x125d5c0, type=4112, data=0x7fbb44048a00) at gstpad.c:4203
#18 0x00007fbb7366f8ce in gst_pad_push_data (pad=0x7fbb4c037930, type=4112, data=0x7fbb44048a00) at gstpad.c:4455
#19 0x00007fbb7366fff6 in gst_pad_push (pad=0x7fbb4c037930, buffer=0x7fbb44048a00) at gstpad.c:4574
#20 0x00007fbb564892a7 in gst_single_queue_push_one (mq=0x7fbb44044090, sq=0x7fbb44043ab0, object=0x7fbb44048a00, allow_drop=0x7fbb529c9cf4) at gstmultiqueue.c:1611
#21 0x00007fbb5648ad2f in gst_multi_queue_loop (pad=0x7fbb4c037930) at gstmultiqueue.c:1923
#22 0x00007fbb736aa69f in gst_task_func (task=0x127dcb0) at gsttask.c:334
#23 0x00007fbb736ab858 in default_func (tdata=0x7fbb44004910, pool=0x1013910) at gsttaskpool.c:68
#24 0x00007fbb7259927e in g_thread_pool_thread_proxy () at /lib64/libglib-2.0.so.0
#25 0x00007fbb725988e5 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#26 0x00007fbb73bb861a in start_thread () at /lib64/libpthread.so.0
#27 0x00007fbb722695fd in clone () at /lib64/libc.so.6
Thread 3 (Thread 0x7fbb51610700 (LWP 21865)):
#0 0x00007fbb72263809 in syscall () at /lib64/libc.so.6
#1 0x00007fbb725b68df in g_cond_wait () at /lib64/libglib-2.0.so.0
#2 0x00007fbb56494a87 in gst_queue_chain_buffer_or_list (pad=0x7fbb480084c0, parent=0x7fbb4800c1c0, obj=0x7fbb4c018230, is_list=0) at gstqueue.c:1222
#3 0x00007fbb56495226 in gst_queue_chain (pad=0x7fbb480084c0, parent=0x7fbb4800c1c0, buffer=0x7fbb4c018230) at gstqueue.c:1320
#4 0x00007fbb75208f13 in gst_validate_pad_monitor_chain_func (pad=0x7fbb480084c0, parent=0x7fbb4800c1c0, buffer=0x7fbb4c018230) at gst-validate-pad-monitor.c:2121
#5 0x00007fbb7366eb35 in gst_pad_chain_data_unchecked (pad=0x7fbb480084c0, type=4112, data=0x7fbb4c018230) at gstpad.c:4203
#6 0x00007fbb7366f8ce in gst_pad_push_data (pad=0x7fbb48009000, type=4112, data=0x7fbb4c018230) at gstpad.c:4455
#7 0x00007fbb7366fff6 in gst_pad_push (pad=0x7fbb48009000, buffer=0x7fbb4c018230) at gstpad.c:4574
#8 0x00007fbb739851b0 in gst_base_transform_chain (pad=0x7fbb48008dc0, parent=0x7fbb480122b0, buffer=0x7fbb4c018230) at gstbasetransform.c:2378
#9 0x00007fbb75208f13 in gst_validate_pad_monitor_chain_func (pad=0x7fbb48008dc0, parent=0x7fbb480122b0, buffer=0x7fbb4c018230) at gst-validate-pad-monitor.c:2121
#10 0x00007fbb7366eb35 in gst_pad_chain_data_unchecked (pad=0x7fbb48008dc0, type=4112, data=0x7fbb4c018230) at gstpad.c:4203
#11 0x00007fbb7366f8ce in gst_pad_push_data (pad=0x7fbb480096c0, type=4112, data=0x7fbb4c018230) at gstpad.c:4455
#12 0x00007fbb7366fff6 in gst_pad_push (pad=0x7fbb480096c0, buffer=0x7fbb4c018230) at gstpad.c:4574
#13 0x00007fbb566d5e39 in gst_stream_combiner_chain (pad=0x7fbb48025b50, parent=0x1270bf0, buf=0x7fbb4c018230) at gststreamcombiner.c:111
#14 0x00007fbb75208f13 in gst_validate_pad_monitor_chain_func (pad=0x7fbb48025b50, parent=0x1270bf0, buffer=0x7fbb4c018230) at gst-validate-pad-monitor.c:2121
#15 0x00007fbb7366eb35 in gst_pad_chain_data_unchecked (pad=0x7fbb48025b50, type=4112, data=0x7fbb4c018230) at gstpad.c:4203
#16 0x00007fbb7366f8ce in gst_pad_push_data (pad=0x7fbb48024dd0, type=4112, data=0x7fbb4c018230) at gstpad.c:4455
#17 0x00007fbb7366fff6 in gst_pad_push (pad=0x7fbb48024dd0, buffer=0x7fbb4c018230) at gstpad.c:4574
#18 0x00007fbb740dbe95 in gst_video_encoder_finish_frame (encoder=0x7fbb480403e0, frame=0x0) at gstvideoencoder.c:2204
#19 0x00007fbb51fbd2e1 in gst_vpx_enc_process (encoder=0x7fbb480403e0) at gstvpxenc.c:1732
#20 0x00007fbb51fbdf63 in gst_vpx_enc_handle_frame (video_encoder=0x7fbb480403e0, frame=0x7fbb4c0417f0) at gstvpxenc.c:1921
#21 0x00007fbb740d903a in gst_video_encoder_chain (pad=0x7fbb48025010, parent=0x7fbb480403e0, buf=0x7fbb4c041900) at gstvideoencoder.c:1461
#22 0x00007fbb75208f13 in gst_validate_pad_monitor_chain_func (pad=0x7fbb48025010, parent=0x7fbb480403e0, buffer=0x7fbb4c041900) at gst-validate-pad-monitor.c:2121
#23 0x00007fbb7366eb35 in gst_pad_chain_data_unchecked (pad=0x7fbb48025010, type=4112, data=0x7fbb4c041900) at gstpad.c:4203
#24 0x00007fbb7366f8ce in gst_pad_push_data (pad=0x7fbb480422a0, type=4112, data=0x7fbb4c041900) at gstpad.c:4455
#25 0x00007fbb7366fff6 in gst_pad_push (pad=0x7fbb480422a0, buffer=0x7fbb4c041900) at gstpad.c:4574
#26 0x00007fbb739851b0 in gst_base_transform_chain (pad=0x7fbb48042060, parent=0x7fbb480125f0, buffer=0x7fbb4c041900) at gstbasetransform.c:2378
#27 0x00007fbb75208f13 in gst_validate_pad_monitor_chain_func (pad=0x7fbb48042060, parent=0x7fbb480125f0, buffer=0x7fbb4c041900) at gst-validate-pad-monitor.c:2121
#28 0x00007fbb7366eb35 in gst_pad_chain_data_unchecked (pad=0x7fbb48042060, type=4112, data=0x7fbb4c041900) at gstpad.c:4203
#29 0x00007fbb7366f8ce in gst_pad_push_data (pad=0x7fbb48052710, type=4112, data=0x7fbb4c041900) at gstpad.c:4455
#30 0x00007fbb7366fff6 in gst_pad_push (pad=0x7fbb48052710, buffer=0x7fbb4c041900) at gstpad.c:4574
#31 0x00007fbb51615c7b in gst_video_rate_flush_prev (videorate=0x7fbb480570d0, duplicate=0, next_intime=100000000) at gstvideorate.c:707
#32 0x00007fbb51619109 in gst_video_rate_transform_ip (trans=0x7fbb480570d0, buffer=0x7fbb4c018340) at gstvideorate.c:1434
#33 0x00007fbb7398489f in default_generate_output (trans=0x7fbb480570d0, outbuf=0x7fbb5160f068) at gstbasetransform.c:2184
#34 0x00007fbb73984fe0 in gst_base_transform_chain (pad=0x7fbb480524d0, parent=0x7fbb480570d0, buffer=0x7fbb4c018340) at gstbasetransform.c:2342
#35 0x00007fbb75208f13 in gst_validate_pad_monitor_chain_func (pad=0x7fbb480524d0, parent=0x7fbb480570d0, buffer=0x7fbb4c018340) at gst-validate-pad-monitor.c:2121
#36 0x00007fbb7366eb35 in gst_pad_chain_data_unchecked (pad=0x7fbb480524d0, type=4112, data=0x7fbb4c018340) at gstpad.c:4203
#37 0x00007fbb7366f8ce in gst_pad_push_data (pad=0x7fbb480434a0, type=4112, data=0x7fbb4c018340) at gstpad.c:4455
#38 0x00007fbb7366fff6 in gst_pad_push (pad=0x7fbb480434a0, buffer=0x7fbb4c018340) at gstpad.c:4574
#39 0x00007fbb739851b0 in gst_base_transform_chain (pad=0x7fbb48043260, parent=0x7fbb4804f610, buffer=0x7fbb4c018340) at gstbasetransform.c:2378
#40 0x00007fbb75208f13 in gst_validate_pad_monitor_chain_func (pad=0x7fbb48043260, parent=0x7fbb4804f610, buffer=0x7fbb4c018340) at gst-validate-pad-monitor.c:2121
#41 0x00007fbb7366eb35 in gst_pad_chain_data_unchecked (pad=0x7fbb48043260, type=4112, data=0x7fbb4c018340) at gstpad.c:4203
#42 0x00007fbb7366f8ce in gst_pad_push_data (pad=0x7fbb48043020, type=4112, data=0x7fbb4c018340) at gstpad.c:4455
#43 0x00007fbb7366fff6 in gst_pad_push (pad=0x7fbb48043020, buffer=0x7fbb4c018340) at gstpad.c:4574
#44 0x00007fbb739851b0 in gst_base_transform_chain (pad=0x7fbb48042de0, parent=0x7fbb4804cc50, buffer=0x7fbb4c018340) at gstbasetransform.c:2378
#45 0x00007fbb75208f13 in gst_validate_pad_monitor_chain_func (pad=0x7fbb48042de0, parent=0x7fbb4804cc50, buffer=0x7fbb4c018340) at gst-validate-pad-monitor.c:2121
#46 0x00007fbb7366eb35 in gst_pad_chain_data_unchecked (pad=0x7fbb48042de0, type=4112, data=0x7fbb4c018340) at gstpad.c:4203
#47 0x00007fbb7366f8ce in gst_pad_push_data (pad=0x7fbb48042ba0, type=4112, data=0x7fbb4c018340) at gstpad.c:4455
#48 0x00007fbb7366fff6 in gst_pad_push (pad=0x7fbb48042ba0, buffer=0x7fbb4c018340) at gstpad.c:4574
#49 0x00007fbb739851b0 in gst_base_transform_chain (pad=0x7fbb48042960, parent=0x7fbb4804b0d0, buffer=0x7fbb4c018340) at gstbasetransform.c:2378
#50 0x00007fbb75208f13 in gst_validate_pad_monitor_chain_func (pad=0x7fbb48042960, parent=0x7fbb4804b0d0, buffer=0x7fbb4c018340) at gst-validate-pad-monitor.c:2121
#51 0x00007fbb7366eb35 in gst_pad_chain_data_unchecked (pad=0x7fbb48042960, type=4112, data=0x7fbb4c018340) at gstpad.c:4203
#52 0x00007fbb7366f8ce in gst_pad_push_data (pad=0x7fbb48052dd0, type=4112, data=0x7fbb4c018340) at gstpad.c:4455
#53 0x00007fbb7366fff6 in gst_pad_push (pad=0x7fbb48052dd0, buffer=0x7fbb4c018340) at gstpad.c:4574
#54 0x00007fbb566d6ba4 in gst_stream_splitter_chain (pad=0x7fbb48009b40, parent=0x113f8c0, buf=0x7fbb4c018340) at gststreamsplitter.c:140
#55 0x00007fbb75208f13 in gst_validate_pad_monitor_chain_func (pad=0x7fbb48009b40, parent=0x113f8c0, buffer=0x7fbb4c018340) at gst-validate-pad-monitor.c:2121
#56 0x00007fbb7366eb35 in gst_pad_chain_data_unchecked (pad=0x7fbb48009b40, type=4112, data=0x7fbb4c018340) at gstpad.c:4203
#57 0x00007fbb7366f8ce in gst_pad_push_data (pad=0x7fbb48024290, type=4112, data=0x7fbb4c018340) at gstpad.c:4455
#58 0x00007fbb7366fff6 in gst_pad_push (pad=0x7fbb48024290, buffer=0x7fbb4c018340) at gstpad.c:4574
#59 0x00007fbb56495393 in gst_queue_push_one (queue=0x7fbb4800c4b0) at gstqueue.c:1359
#60 0x00007fbb564961ab in gst_queue_loop (pad=0x7fbb48024290) at gstqueue.c:1506
#61 0x00007fbb736aa69f in gst_task_func (task=0x7fbb4403e290) at gsttask.c:334
#62 0x00007fbb736ab858 in default_func (tdata=0x7fbb48001c60, pool=0x1013910) at gsttaskpool.c:68
#63 0x00007fbb7259927e in g_thread_pool_thread_proxy () at /lib64/libglib-2.0.so.0
#64 0x00007fbb725988e5 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#65 0x00007fbb73bb861a in start_thread () at /lib64/libpthread.so.0
#66 0x00007fbb722695fd in clone () at /lib64/libc.so.6
Thread 2 (Thread 0x7fbb50e0f700 (LWP 21868)):
#0 0x00007fbb72263809 in syscall () at /lib64/libc.so.6
#1 0x00007fbb725b68df in g_cond_wait () at /lib64/libglib-2.0.so.0
#2 0x00007fbb73966fab in gst_base_sink_wait_preroll (sink=0x1239ea0) at gstbasesink.c:2266
#3 0x00007fbb739674e0 in gst_base_sink_do_preroll (sink=0x1239ea0, obj=0x7fbb44049990) at gstbasesink.c:2360
#4 0x00007fbb73967dea in gst_base_sink_do_sync (basesink=0x1239ea0, obj=0x7fbb44049990, late=0x7fbb50e0e19c, step_end=0x7fbb50e0e198) at gstbasesink.c:2562
#5 0x00007fbb7396c47a in gst_base_sink_chain_unlocked (basesink=0x1239ea0, pad=0x125e070, obj=0x7fbb44049990, is_list=0) at gstbasesink.c:3518
#6 0x00007fbb7396d339 in gst_base_sink_chain_main (basesink=0x1239ea0, pad=0x125e070, obj=0x7fbb44049990, is_list=0) at gstbasesink.c:3674
#7 0x00007fbb7396d4a8 in gst_base_sink_chain (pad=0x125e070, parent=0x1239ea0, buf=0x7fbb44049990) at gstbasesink.c:3703
#8 0x00007fbb75208f13 in gst_validate_pad_monitor_chain_func (pad=0x125e070, parent=0x1239ea0, buffer=0x7fbb44049990) at gst-validate-pad-monitor.c:2121
#9 0x00007fbb7366eb35 in gst_pad_chain_data_unchecked (pad=0x125e070, type=4112, data=0x7fbb44049990) at gstpad.c:4203
#10 0x00007fbb7366f8ce in gst_pad_push_data (pad=0x1236050, type=4112, data=0x7fbb44049990) at gstpad.c:4455
#11 0x00007fbb7366fff6 in gst_pad_push (pad=0x1236050, buffer=0x7fbb44049990) at gstpad.c:4574
#12 0x00007fbb73651501 in gst_proxy_pad_chain_default (pad=0x125c0f0, parent=0x1236050, buffer=0x7fbb44049990) at gstghostpad.c:126
#13 0x00007fbb7366eb35 in gst_pad_chain_data_unchecked (pad=0x125c0f0, type=4112, data=0x7fbb44049990) at gstpad.c:4203
#14 0x00007fbb7366f8ce in gst_pad_push_data (pad=0x125e2b0, type=4112, data=0x7fbb44049990) at gstpad.c:4455
#15 0x00007fbb7366fff6 in gst_pad_push (pad=0x125e2b0, buffer=0x7fbb44049990) at gstpad.c:4574
#16 0x00007fbb5620b365 in gst_ebml_write_flush_cache (ebml=0x11fa8e0, is_keyframe=0, timestamp=0) at ebml-write.c:271
#17 0x00007fbb5620c829 in gst_ebml_write_header (ebml=0x11fa8e0, doctype=0x7fbb5624f4a0 "webm", version=2) at ebml-write.c:940
#18 0x00007fbb562369f6 in gst_matroska_mux_start (mux=0x1224230) at matroska-mux.c:2768
#19 0x00007fbb56239d8a in gst_matroska_mux_handle_buffer (pads=0x126c0d0, data=0x7fbb48007400, buf=0x7fbb4c041a10, user_data=0x1224230) at matroska-mux.c:3794
#20 0x00007fbb739916f4 in gst_collect_pads_default_collected (pads=0x126c0d0, user_data=0x0) at gstcollectpads.c:1567
#21 0x00007fbb73990f02 in gst_collect_pads_check_collected (pads=0x126c0d0) at gstcollectpads.c:1368
#22 0x00007fbb73992fa9 in gst_collect_pads_chain (pad=0x7fbb48008040, parent=0x1224230, buffer=0x7fbb4c041a10) at gstcollectpads.c:2216
#23 0x00007fbb75208f13 in gst_validate_pad_monitor_chain_func (pad=0x7fbb48008040, parent=0x1224230, buffer=0x7fbb4c041a10) at gst-validate-pad-monitor.c:2121
#24 0x00007fbb7366eb35 in gst_pad_chain_data_unchecked (pad=0x7fbb48008040, type=4112, data=0x7fbb4c041a10) at gstpad.c:4203
#25 0x00007fbb7366f8ce in gst_pad_push_data (pad=0x7fbb48008700, type=4112, data=0x7fbb4c041a10) at gstpad.c:4455
#26 0x00007fbb7366fff6 in gst_pad_push (pad=0x7fbb48008700, buffer=0x7fbb4c041a10) at gstpad.c:4574
#27 0x00007fbb56495393 in gst_queue_push_one (queue=0x7fbb4800c1c0) at gstqueue.c:1359
#28 0x00007fbb564961ab in gst_queue_loop (pad=0x7fbb48008700) at gstqueue.c:1506
#29 0x00007fbb736aa69f in gst_task_func (task=0x7fbb4403e170) at gsttask.c:334
#30 0x00007fbb736ab858 in default_func (tdata=0x7fbb48003480, pool=0x1013910) at gsttaskpool.c:68
#31 0x00007fbb7259927e in g_thread_pool_thread_proxy () at /lib64/libglib-2.0.so.0
#32 0x00007fbb725988e5 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#33 0x00007fbb73bb861a in start_thread () at /lib64/libpthread.so.0
#34 0x00007fbb722695fd in clone () at /lib64/libc.so.6
Thread 1 (Thread 0x7fbb75635800 (LWP 21777)):
#0 0x00007fbb7225db7d in poll () at /lib64/libc.so.6
#1 0x00007fbb7257218c in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#2 0x00007fbb72572512 in g_main_loop_run () at /lib64/libglib-2.0.so.0
#3 0x0000000000405b73 in main (argc=3, argv=0x7ffc6bc97b88) at gst-validate-transcoding.c:967
```
Going to PAUSED when BUFFERING on a pipeline that is not sync on the clock is useless so I attach here a patch that removes that behaviour in -validate but this case should still work and defenitely not deadlock.
**Patch 341827**, "validate: transcode: No buffering handling when the sink is not synced on the clock":
[0001-validate-transcode-No-buffering-handling-when-the-si.patch](/uploads/6d50d9759f267a9894e907474759fc81/0001-validate-transcode-No-buffering-handling-when-the-si.patch)https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/210tracerrecord: Enable tracer logging when a tracer record is created2022-11-10T09:20:47ZBugzilla Migration Usertracerrecord: Enable tracer logging when a tracer record is created## Submitted by Thibault Saunier `@thiblahute`
**[Link to original bug (#776320)](https://bugzilla.gnome.org/show_bug.cgi?id=776320)**
## Description
See commit message## Submitted by Thibault Saunier `@thiblahute`
**[Link to original bug (#776320)](https://bugzilla.gnome.org/show_bug.cgi?id=776320)**
## Description
See commit messagehttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/211NULL GstStructures cannot be deserialized2022-11-10T09:20:47ZBugzilla Migration UserNULL GstStructures cannot be deserialized## Submitted by Stefan Kost `@ensonic`
**[Link to original bug (#776336)](https://bugzilla.gnome.org/show_bug.cgi?id=776336)**
## Description
When serializing a nested structure where a substructure is NULL, it will be serializes as...## Submitted by Stefan Kost `@ensonic`
**[Link to original bug (#776336)](https://bugzilla.gnome.org/show_bug.cgi?id=776336)**
## Description
When serializing a nested structure where a substructure is NULL, it will be serializes as:
sub=(structure)"\(NULL\)"
This cannot be serialized. Do we want to add support for (NULL) in the structure parser?