Commit graph

504 commits

Author SHA1 Message Date
Matthew Waters 7016a96bfe glcolorconvert: don't overread the end of an array
Reverse index iteration needs a - 1 for the initial value.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6595>
2024-04-10 13:32:57 +00:00
Matthew Waters 97b45246d1 glcolorconvert: remove unused swizzling using "rgba" chars
We use indices now instead.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6595>
2024-04-10 13:32:57 +00:00
Sanchayan Maity a9c4289da7 video-converter: Fix set config not having effect after start
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6594>
2024-04-10 09:47:52 +00:00
Sebastian Dröge 4b5a265571 pbutils: descriptions: Don't warn on MPEG-1 audio caps without layer field
While this is not ideal and won't give too accurate codec descriptions,
it is what tsdemux produces.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6511>
2024-04-04 09:39:49 +00:00
Robert Rosengren 8c5203ba0e audioringbuffer: set waiting to 0 when signaling
Reset the waiting thread counter in all places to be consistent
when sending signal for the audio ring buffer. This fix applies it to
pause, stop and release, which are states that will go into a callback
of the subclass. Having the waiting counter reset will avoid having
executing thread of the same subclass trying to take the mutex when
callong gst_audio_ring_buffer_advance.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6195>
2024-04-03 15:09:00 +00:00
Matthew Waters 2a02107c8d glcaopengllayer: NULL some fields when freed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6504>
2024-04-02 23:50:41 +00:00
Matthew Waters b080d01b68 glwindow/cocoa: keep a window reference across an async callback
Esnures that the window is alive when the callback is fired.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6504>
2024-04-02 23:50:41 +00:00
Matthew Waters 3c5bb4bf5d glbufferpool: protect release_buffer from multiple concurrent access
If two different threads attempt to release buffers at the same time, then the
keep-alive-slightly-longer GQueue may become corrupted.  Guard against that with
some locking.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6504>
2024-04-02 23:50:41 +00:00
Matthew Waters 49a7424d1e gl/context/cocoa: ensure pixel format lives as long as the context
Under some circumstances, the CGLPixelFormatObj was being destroyed too
early which could lead to potential use-after-frees.

Fix by returning a reference when asked for the pixel format.

Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3154
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6504>
2024-04-02 23:50:41 +00:00
Alexander Slobodeniuk b18b3d00b7 navigation: add missing sanity checks
On practice a failure happened due to a race condition, the instance
already have been freed, but it could also happen if the instance
would be null.
Instead of crashing this sanity check is a more suitable option,
since with G_DEBUG=fatal-warnings it will crash too.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6475>
2024-04-02 14:17:53 +00:00
Chao Guo 69f4d98844 glcolorconvert: Ensure glcolorconvert does not miss supported RGB formats
Add RGB16 and other RGB formats to rgb_formats to ensure glcolorconvert
does not miss the RGB formats it supports

Signed-off-by: Chao Guo <chao.guo@nxp.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6497>
2024-04-02 17:14:27 +09:00
Tim-Philipp Müller 4790a44d10 Revert "audiobasesink: Don't wait on gap events"
This reverts commit 8e923a8e2d.

This caused regressions, see #3303.

Without this commit, osxaudiosrc ! osxaudiosink won't work
right, but since that hasn't really been a huge problem
for years it's probably best to revert this until a proper
solution can be figured out.



(cherry picked from commit f04f86f3ee)



(cherry picked from commit 93255efece)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6405>
2024-03-21 03:19:03 +00:00
Thomas Klausner 4632c623bf shmallocator: fix build on Illumos
Closes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3370

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6321>
2024-03-13 18:48:27 +00:00
Nicolas Dufresne bcad005d05 glupload: Do not propose allocators with sysmem
None of the GL allocators actually offer a generic alloc() implementation. As a
side effect, they cannot be offered as they don't work with generic video
buffer pool.

Our specialized buffer pool can be dropped by tee or alphacombine as sharing the
same buffer pool over two branch is not supported by the pool API.

Fixes #3372

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6327>
2024-03-12 19:02:54 +00:00
Piotr Brzeziński 3243c5fe94 audiovisualizer: Don't wrap temporary memory in buffers
Avoids potentially ending up with the buffermemory pointing to already-freed or reused addresses.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6320>
2024-03-11 18:18:01 +00:00
Piotr Brzeziński 15e0affc98 audioencoder: Avoid wrapping temporarily mapped memory with a GstBuffer and passing that to subclass
Memory from gst_adapter_map() could live shorter than the GstMemory that the GstBuffer wraps around it, which in lucky
cases 'just' caused a re-use of the same memory for multiple (potentially still in use!) input buffers, but could easily
end up pointing to an already-freed memory.

Manifested when an AudioToolbox encoder kept getting silence inserted in seemingly random circumstances, turned out
to be the memory being re-used by GStreamer at the same time that the AT API was processing it...

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6320>
2024-03-11 18:18:01 +00:00
François Laignel d83184cf9a sdp: accept empty attribute value represented as a NULL pointer
Some empty media attribute values are set to an empty string, others as a NULL
pointer. It seems that code is able to deal with both, except for the UTF8
validation.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6119>
2024-03-08 10:28:15 +00:00
Piotr Brzeziński ca0d4dd6cc macos: Fix glimagesink not respecting preferred size
Cocoa version of glwindow only checks the preferred size upon window creation. glimagesink sets the size right before
calling gst_gl_window_show(), which might be way after the window is created in some cases. If the size was set too
late, glimagesink on macOS would remain 320x240 unless manually resized.

This change makes sure to resize the existing window when _show() is called.

Curiously, this has always been an issue, but went from manifesting every once in a while to being almost completely
broken once old event loop workarounds were removed and gst_macos_main() was introduced.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6185>
2024-03-06 15:48:03 +00:00
Marvin Schmidt 1b74f039ab allocators: drmdumb: Remove extra semicolon after G_DECLARE_FINAL_TYPE
The `G_DECLARE_FINAL_TYPE` macro does not need to be terminated with a
semicolon and the extra semicolon breaks building e.g. libcamera with
clang because `-Wextra-semi` is used which produces the following
error in conjunction with `-Werror`:
```
gstreamer-1.0/gst/allocators/gstdrmdumb.h:61:43: error: extra ';' outside
of a function is incompatible with C++98 [-Werror,-Wc++98-compat-extra-semi]
   61 |     GST, DRM_DUMB_ALLOCATOR, GstAllocator);
      |                                           ^
1 error generated.
```

Fix this by removing the extra semicolon

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6239>
2024-02-28 23:56:53 +01:00
Sebastian Dröge eb641af450 rtp: Fix constant for maximum two-byte RTP header extension length
The value is stored as an 8 bit integer, with 0 meaning that there is
not data for this extension. That means that the maximum length is 255
bytes and not 256 bytes.

On the other hand, the one-byte RTP header extensions are storing the
length as a 4 bit integer with an offset of 1 (i.e. 0 means 1 byte
extension length), so here 16 is the correct maximum length.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6180>
2024-02-23 02:18:28 +00:00
Jeongki Kim 576dbcbd88 appsrc: clear eos flag on flush stop event
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6186>
2024-02-22 19:46:50 +00:00
Matthew Waters 3e13fc4f88 gl/x11: fix memory leak when retrieiving a foreign context's info
The FBConfig's were being leaked.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6160>
2024-02-22 10:24:24 +00:00
Sebastian Dröge 5ec73afe75 rtpbasedepayload: Add "extensions" property for the currently enabled extensions
This works the same way as the one from `rtpbasepayload`.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6163>
2024-02-21 12:17:24 +00:00
Sebastian Dröge 08d4527d22 rtpbasepayload: Use gst_value_array_append_and_take_value() as a micro optimization
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6163>
2024-02-21 12:17:24 +00:00
Sebastian Dröge ea261a58e0 rtpbasepayload: Also notify "extensions" property when changing list during negotiation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6163>
2024-02-21 12:17:24 +00:00
Loïc Molinari fb02516b75 video: Fix NV12_16L32S video frame size
The size of a NV12_16L32S video frame is bigger than expected because
it uses the size of a Y tile to compute the interleaved UV plane
size. Get the right UV tile size instead.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6118>
2024-02-16 17:07:03 +00:00
Tim-Philipp Müller 68d62a8433 realmedia: remove RealServer RTSP extension, RDT handling and PNM source
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6091>
2024-02-13 11:44:29 +00:00
Damian Hobson-Garcia 1ef7e9be73 GstShmAllocator: Map/unmap full buffer when padding is added
When allocating buffers with alignment parameters specified, it
may be necessary to overallocate memory to adjust to the requested
alignment.  Previously the padding length was not included in the mmaped
buffer size, leaving unmapped bytes at the end of the buffer.
This caused intermittent SEGV faults and valgrind failures when running
the wayland_threads example.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6104>
2024-02-12 16:19:35 -05:00
Edward Hervey a1cbe351ec musepack: Prefer using FFmpeg musepack decoder/demuxer
* Bump the rank of the musepack v7/v8 FFmpeg demuxers to SECONDARY
* Bump the rank of the musepack v7/v8 FFmpeg audio decoders to SECONDARY
* Demote the rank of the musepackdec element to MARGINAL

This is for two reasons:
* The musepack library is no longer maintained, whereas the FFmpeg
  implementation can/will receive fixes
* The `musepackdec` implementation was a all-in-one "parsing and decoding" blob
  which doesn't play nicely with decodebin3 and others

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3033

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6074>
2024-02-09 12:15:14 +00:00
Edward Hervey b0de86ff68 video-anc: New GstMeta for SMPTE ST-291M Ancillary Data
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5488>
2024-02-08 15:28:39 +00:00
Nicolas Dufresne 0fd76c2848 allocators: drm-dumb: Fix non-thread safe dmabuf allocator creation
If the allocation function get called from multiple threads at the same time,
multiple allocators may get created but only one get saved. Leading to other
allocators to be leaked. Simply create it once in the instance initialization.

Fixes: #2456
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6052>
2024-02-05 07:39:56 +00:00
Daniel Morin 13c5406747 rtspconnection: support redirect when using tunnel
- Support HTTP redirect codes (301,302,307,308) on response to GET.
  "Location" field is extracted and used for following GET and POST.
- Notify caller a redirect took place using return value
- log source and destination url on redirect

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5222>
2024-01-31 11:43:45 +00:00
Alexander Slobodeniuk 2d7d9f35f5 videoaggregator: fix bufferpool leak
that happens if it fails to activate the pool

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6025>
2024-01-31 09:49:48 +00:00
Christian Curtis Veng 3f675cb479 glcolorconvert: fix wrong RGB to YUV matrix with bt709
Converting from RGB to YUV: When comparing the info.colorimetry to
GST_VIDEO_COLORIMETRY_BT709 it does not make sense to look at the input
signal because that is of type of RGB. The plugin needs to look at the
output YUV-type and compare GST_VIDEO_COLORIMETRY_BT709 to that, because
that is the YUV-type the plugin needs to convert input-RGB into.
Converting from YUV to RGB: Comparing to the input is correct, but because
here the color encoding info BT601/BT709 is on input side of the plugin.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5998>
2024-01-29 20:38:15 +00:00
Thibault Saunier 2ccc8051b5 appsink: Signal condition when adding serialized events to the queue
Users might be waiting on any objects and the appsink should unblock
the waiter and return the object in that case.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5985>
2024-01-27 11:12:59 +00:00
Robert Mader 143f661318 gl: colorconvert: Add DMA_DRM passtrough support
By always passing through caps before adding additional caps supported
by conversion.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5948>
2024-01-25 20:39:37 +00:00
Robert Mader 7e71d4f753 gl: upload: Add DMA_DRM passthrough upload
A simple noop upload method that is used whenever up- and downstream
elements share common caps.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5948>
2024-01-25 20:39:37 +00:00
Sebastian Dröge 16bace45f0 glcolorconvert: Correct transform_caps direction
If GST_PAD_SINK is passed in this means that we're supposed to convert
from sink caps to src caps, not the other way around. In other words, if
GST_PAD_SINK is passed we're supposed to produce the possible output
caps.

Previously this was inverted. This had the effect that glcolorconvert
pretended to be able to convert *to* I420 without glDrawBuffers, which is
not possible, and pretended not to be able to convert *from* I420
without glDrawBuffers, which it always supports.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5941>
2024-01-19 00:49:44 +00:00
Seungha Yang 56f2c47400 appsrc: Release lock before pushing segment event
Do not hold lock during event push. Similar fix to the commit
2e5908d33f but another place

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5925>
2024-01-15 22:51:34 +09:00
Chao Guo ed4af574d8 viv-fb: fix build warning of [-Wunused-variable]
display_viv_fb is unused in gst_gl_display_viv_fb_finalize ().

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5913>
2024-01-15 07:24:47 +00:00
Chao Guo 17745ba5db gl/display: fix build warning of [-Wint-in-bool-context]
GST_GL_DISPLAY_TYPE_VIV_FB is enum constant but is used
as bool.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5913>
2024-01-15 07:24:47 +00:00
Chao Guo c1a9b77a1a glupload: fix build warning of [-Wincompatible-pointer-types]
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5913>
2024-01-15 07:24:47 +00:00
Thibault Saunier 991e0aaf3a gl: basefilter: Ensure we have a context before running allocation query
Even in the case where we are not in passthrough but the subclasses are
going to run the allocation query, we need to ensure that we have a
GLContext ready to be used. Otherwise we might end up with assertions
with `gloverlaycompositor` like:

```
 #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=140285688829504) at ./nptl/pthread_kill.c:44
 #1  __pthread_kill_internal (signo=6, threadid=140285688829504) at ./nptl/pthread_kill.c:78
 #2  __GI___pthread_kill (threadid=140285688829504, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
 #3  0x00007f985ed88476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
 #4  0x00007f985ed6e7f3 in __GI_abort () at ./stdlib/abort.c:79
 #5  0x00007f985faedb57 in g_assertion_message (domain=<optimized out>, file=<optimized out>, line=<optimized out>, func=0x7f9856251b80 <__func__.5> "gst_gl_buffer_pool_set_config", message=<optimized out>) at ../../../glib/gtestutils.c:3253
 #6  0x00007f985fb4770f in g_assertion_message_expr (domain=0x7f9856251883 "GStreamer-GL", file=0x7f9856251820 "../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbufferpool.c", line=132, func=0x7f9856251b80 <__func__.5> "gst_gl_buffer_pool_set_config", expr=<optimized out>) at ../../../glib/gtestutils.c:3279
 #7  0x00007f9856200e1f in gst_gl_buffer_pool_set_config (pool=0x7f977009d7e0, config=0x7f9704549050) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbufferpool.c:132
 #8  0x00007f985f99bcf7 in gst_buffer_pool_set_config (pool=0x7f977009d7e0, config=0x7f9704549050) at ../subprojects/gstreamer/gst/gstbufferpool.c:698
 #9  0x00007f985620e2be in gst_gl_filter_propose_allocation (trans=0x7f9754014a80, decide_query=0x0, query=0x7f97040310a0) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c:834
 #10 0x00007f98562b43c5 in gst_gl_overlay_compositor_element_propose_allocation (trans=0x7f9754014a80, decide_query=0x0, query=0x7f97040310a0) at ../subprojects/gst-plugins-base/ext/gl/gstgloverlaycompositorelement.c:188
 #11 0x00007f985f8e9ea8 in gst_base_transform_default_query (trans=0x7f9754014a80, direction=GST_PAD_SINK, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1537
 #12 0x00007f98561eed91 in gst_gl_base_filter_query (trans=0x7f9754014a80, direction=GST_PAD_SINK, query=0x7f97040310a0) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.c:319
 #13 0x00007f985f8ea223 in gst_base_transform_query (pad=0x7f977c07c7e0, parent=0x7f9754014a80, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1628
 #14 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f977c07c7e0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
 #15 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f977c07c340, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
 #16 0x00007f985f8e9817 in gst_base_transform_default_propose_allocation (trans=0x7f975401e2b0, decide_query=0x0, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1394
 #17 0x00007f985f8e9ea8 in gst_base_transform_default_query (trans=0x7f975401e2b0, direction=GST_PAD_SINK, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1537
 #18 0x00007f98561eed91 in gst_gl_base_filter_query (trans=0x7f975401e2b0, direction=GST_PAD_SINK, query=0x7f97040310a0) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.c:319
 #19 0x00007f985f8ea223 in gst_base_transform_query (pad=0x7f96e420b0c0, parent=0x7f975401e2b0, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1628
 #20 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f96e420b0c0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
 #21 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a0bf0f0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
 #22 0x00007f985f8e9817 in gst_base_transform_default_propose_allocation (trans=0x7f982a128790, decide_query=0x0, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1394
 #23 0x00007f9856289017 in _gst_gl_upload_element_propose_allocation (bt=0x7f982a128790, decide_query=0x0, query=0x7f97040310a0) at ../subprojects/gst-plugins-base/ext/gl/gstgluploadelement.c:239
 #24 0x00007f985f8e9ea8 in gst_base_transform_default_query (trans=0x7f982a128790, direction=GST_PAD_SINK, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1537
 #25 0x00007f98561eed91 in gst_gl_base_filter_query (trans=0x7f982a128790, direction=GST_PAD_SINK, query=0x7f97040310a0) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.c:319
 #26 0x00007f985f8ea223 in gst_base_transform_query (pad=0x7f96e405b630, parent=0x7f982a128790, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1628
 #27 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f96e405b630, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
 #28 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f9730289670, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
 #29 0x00007f985f9f0cb3 in query_forward_func (pad=0x7f9730289670, data=0x7f96cea60000) at ../subprojects/gstreamer/gst/gstpad.c:3458
 #30 0x00007f985f9ef9ac in gst_pad_forward (pad=0x7f98280f5d00, forward=0x7f985f9f0b90 <query_forward_func>, user_data=0x7f96cea60000) at ../subprojects/gstreamer/gst/gstpad.c:3084
 #31 0x00007f985f9f0ed1 in gst_pad_query_default (pad=0x7f98280f5d00, parent=0x7f98280cc540, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:3529
 #32 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f98280f5d00, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
 #33 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f978438b680, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
 #34 0x00007f985f9f0cb3 in query_forward_func (pad=0x7f978438b680, data=0x7f96cea60290) at ../subprojects/gstreamer/gst/gstpad.c:3458
 #35 0x00007f985f9ef9ac in gst_pad_forward (pad=0x7f98280f5a10, forward=0x7f985f9f0b90 <query_forward_func>, user_data=0x7f96cea60290) at ../subprojects/gstreamer/gst/gstpad.c:3084
 #36 0x00007f985f9f0ed1 in gst_pad_query_default (pad=0x7f98280f5a10, parent=0x7f97ec0147f0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:3529
 #37 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f98280f5a10, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
 #38 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f9784831a70, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
 #39 0x00007f985f9f0cb3 in query_forward_func (pad=0x7f9784831a70, data=0x7f96cea60520) at ../subprojects/gstreamer/gst/gstpad.c:3458
 #40 0x00007f985f9ef9ac in gst_pad_forward (pad=0x7f9770081da0, forward=0x7f985f9f0b90 <query_forward_func>, user_data=0x7f96cea60520) at ../subprojects/gstreamer/gst/gstpad.c:3084
 #41 0x00007f985f9f0ed1 in gst_pad_query_default (pad=0x7f9770081da0, parent=0x7f983c14e330, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:3529
 #42 0x00007f9812258e5c in ghostpad_query_function (ghostpad=0x7f9770081da0, parent=0x7f983c14e330, query=0x7f97040310a0) at ../subprojects/gst-editing-services/plugins/nle/nleghostpad.c:568
 #43 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f9770081da0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
 #44 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2713e0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
 #45 0x00007f985f9f0cb3 in query_forward_func (pad=0x7f982a2713e0, data=0x7f96cea60800) at ../subprojects/gstreamer/gst/gstpad.c:3458
 #46 0x00007f985f9ef9ac in gst_pad_forward (pad=0x7f982a2800c0, forward=0x7f985f9f0b90 <query_forward_func>, user_data=0x7f96cea60800) at ../subprojects/gstreamer/gst/gstpad.c:3084
 #47 0x00007f985f9f0ed1 in gst_pad_query_default (pad=0x7f982a2800c0, parent=0x7f982a2713e0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:3529
 #48 0x00007f9812258a94 in internalpad_query_function (internal=0x7f982a2800c0, parent=0x7f982a2713e0, query=0x7f97040310a0) at ../subprojects/gst-editing-services/plugins/nle/nleghostpad.c:460
 #49 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2800c0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
 #50 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2f4c80, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
 #51 0x00007f985f9f0cb3 in query_forward_func (pad=0x7f982a2f4c80, data=0x7f96cea60ae0) at ../subprojects/gstreamer/gst/gstpad.c:3458
 #52 0x00007f985f9ef9ac in gst_pad_forward (pad=0x7f982a2dfb00, forward=0x7f985f9f0b90 <query_forward_func>, user_data=0x7f96cea60ae0) at ../subprojects/gstreamer/gst/gstpad.c:3084
 #53 0x00007f985f9f0ed1 in gst_pad_query_default (pad=0x7f982a2dfb00, parent=0x7f982a2f4c80, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:3529
 #54 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2dfb00, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
 #55 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2fbc10, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
 #56 0x00007f985f8e9817 in gst_base_transform_default_propose_allocation (trans=0x7f982a2e87d0, decide_query=0x0, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1394
 #57 0x00007f985f8e9ea8 in gst_base_transform_default_query (trans=0x7f982a2e87d0, direction=GST_PAD_SINK, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1537
 #58 0x00007f985f8ea223 in gst_base_transform_query (pad=0x7f982a2fb9c0, parent=0x7f982a2e87d0, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1628
 #59 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2fb9c0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
 #60 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2fb770, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
 #61 0x00007f985f8e9817 in gst_base_transform_default_propose_allocation (trans=0x7f982a302780, decide_query=0x0, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1394
 #62 0x00007f985c008d9d in gst_video_rate_propose_allocation (trans=0x7f982a302780, decide_query=0x0, query=0x7f97040310a0) at ../subprojects/gst-plugins-base/gst/videorate/gstvideorate.c:1365
 #63 0x00007f985f8e9ea8 in gst_base_transform_default_query (trans=0x7f982a302780, direction=GST_PAD_SINK, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1537
 #64 0x00007f985c008cc5 in gst_video_rate_query (trans=0x7f982a302780, direction=GST_PAD_SINK, query=0x7f97040310a0) at ../subprojects/gst-plugins-base/gst/videorate/gstvideorate.c:1347
 #65 0x00007f985f8ea223 in gst_base_transform_query (pad=0x7f982a2fb520, parent=0x7f982a302780, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1628
 #66 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2fb520, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
 #67 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2889c0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
 #68 0x00007f98122048e6 in gst_base_auto_convert_internal_sink_query (pad=0x7f9750046af0, parent=0x0, query=0x7f97040310a0) at ../subprojects/gst-plugins-bad/gst/autoconvert/gstbaseautoconvert.c:1381
 #69 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f9750046af0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
 #70 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2c13e0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
 #71 0x00007f985f9f0cb3 in query_forward_func (pad=0x7f982a2c13e0, data=0x7f96cea61680) at ../subprojects/gstreamer/gst/gstpad.c:3458
 #72 0x00007f985f9ef9ac in gst_pad_forward (pad=0x7f982a2de340, forward=0x7f985f9f0b90 <query_forward_func>, user_data=0x7f96cea61680) at ../subprojects/gstreamer/gst/gstpad.c:3084
 #73 0x00007f985f9f0ed1 in gst_pad_query_default (pad=0x7f982a2de340, parent=0x7f982a2c13e0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:3529
 #74 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2de340, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
 #75 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2db760, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
 #76 0x00007f98561eebd1 in gst_gl_base_filter_query (trans=0x7f982a2d8df0, direction=GST_PAD_SINK, query=0x7f97040310a0) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.c:285
 #77 0x00007f985f8ea223 in gst_base_transform_query (pad=0x7f982a2db510, parent=0x7f982a2d8df0, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1628
 #78 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2db510, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
 #79 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2db2c0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
 #80 0x00007f98561eebd1 in gst_gl_base_filter_query (trans=0x7f982a2dc3d0, direction=GST_PAD_SINK, query=0x7f97040310a0) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.c:285
 #81 0x00007f985f8ea223 in gst_base_transform_query (pad=0x7f982a2db070, parent=0x7f982a2dc3d0, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1628
 #82 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2db070, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
 #83 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2dae20, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
 #84 0x00007f98561eebd1 in gst_gl_base_filter_query (trans=0x7f982a2d8a60, direction=GST_PAD_SINK, query=0x7f97040310a0) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.c:285
 #85 0x00007f985f8ea223 in gst_base_transform_query (pad=0x7f982a2dabd0, parent=0x7f982a2d8a60, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1628
 #86 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2dabd0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
 #87 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2c1170, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
 #88 0x00007f985f9f0cb3 in query_forward_func (pad=0x7f982a2c1170, data=0x7f96cea62060) at ../subprojects/gstreamer/gst/gstpad.c:3458
 #89 0x00007f985f9ef9ac in gst_pad_forward (pad=0x7f982a2de0e0, forward=0x7f985f9f0b90 <query_forward_func>, user_data=0x7f96cea62060) at ../subprojects/gstreamer/gst/gstpad.c:3084
 #90 0x00007f985f9f0ed1 in gst_pad_query_default (pad=0x7f982a2de0e0, parent=0x7f982a2c1170, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:3529
 #91 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2de0e0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
 #92 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2da980, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
 #93 0x00007f985f8e9817 in gst_base_transform_default_propose_allocation (trans=0x7f982a2c8c10, decide_query=0x0, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1394
 #94 0x00007f985f8e9ea8 in gst_base_transform_default_query (trans=0x7f982a2c8c10, direction=GST_PAD_SINK, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1537
 #95 0x00007f985f8ea223 in gst_base_transform_query (pad=0x7f982a2da730, parent=0x7f982a2c8c10, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1628
 #96 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2da730, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
 #97 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2da4e0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
 #98 0x00007f985f8e7ff9 in gst_base_transform_do_bufferpool (trans=0x7f982a2d1a50, outcaps=0x7f970407aac0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:948
 #99 0x00007f985f8e963e in gst_base_transform_setcaps (trans=0x7f982a2d1a50, pad=0x7f982a2da290, incaps=0x7f970407aac0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1351
 #100 0x00007f985f8e99c8 in gst_base_transform_reconfigure_unlocked (trans=0x7f982a2d1a50) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1431
 #101 0x00007f985f8e9d38 in gst_base_transform_default_query (trans=0x7f982a2d1a50, direction=GST_PAD_SINK, query=0x7f9704541620) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1515
 #102 0x00007f98561eed91 in gst_gl_base_filter_query (trans=0x7f982a2d1a50, direction=GST_PAD_SINK, query=0x7f9704541620) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.c:319
 #103 0x00007f985f8ea223 in gst_base_transform_query (pad=0x7f982a2da290, parent=0x7f982a2d1a50, query=0x7f9704541620) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1628
 #104 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2da290, query=0x7f9704541620) at ../subprojects/gstreamer/gst/gstpad.c:4202
 #105 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2da040, query=0x7f9704541620) at ../subprojects/gstreamer/gst/gstpad.c:4334
 #106 0x00007f985f8e9817 in gst_base_transform_default_propose_allocation (trans=0x7f982a2c88d0, decide_query=0x0, query=0x7f9704541620) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1394
 #107 0x00007f985f8e9ea8 in gst_base_transform_default_query (trans=0x7f982a2c88d0, direction=GST_PAD_SINK, query=0x7f9704541620) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1537
 #108 0x00007f985f8ea223 in gst_base_transform_query (pad=0x7f982a2d7d30, parent=0x7f982a2c88d0, query=0x7f9704541620) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1628
 #109 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2d7d30, query=0x7f9704541620) at ../subprojects/gstreamer/gst/gstpad.c:4202
 #110 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2b7d40, query=0x7f9704541620) at ../subprojects/gstreamer/gst/gstpad.c:4334
 #111 0x00007f985f9f0cb3 in query_forward_func (pad=0x7f982a2b7d40, data=0x7f96cea62cb0) at ../subprojects/gstreamer/gst/gstpad.c:3458
 #112 0x00007f985f9ef9ac in gst_pad_forward (pad=0x7f982a2c0f00, forward=0x7f985f9f0b90 <query_forward_func>, user_data=0x7f96cea62cb0) at ../subprojects/gstreamer/gst/gstpad.c:3084
 #113 0x00007f985f9f0ed1 in gst_pad_query_default (pad=0x7f982a2c0f00, parent=0x7f982a2ba620, query=0x7f9704541620) at ../subprojects/gstreamer/gst/gstpad.c:3529
 #114 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2c0f00, query=0x7f9704541620) at ../subprojects/gstreamer/gst/gstpad.c:4202
 #115 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2d7ae0, query=0x7f9704541620) at ../subprojects/gstreamer/gst/gstpad.c:4334
 #116 0x00007f98561eebd1 in gst_gl_base_filter_query (trans=0x7f982a2d86d0, direction=GST_PAD_SINK, query=0x7f9704541620) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.c:285
 #117 0x00007f985f8ea223 in gst_base_transform_query (pad=0x7f982a2d7890, parent=0x7f982a2d86d0, query=0x7f9704541620) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1628
 #118 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2d7890, query=0x7f9704541620) at ../subprojects/gstreamer/gst/gstpad.c:4202
 #119 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2d7640, query=0x7f9704541620) at ../subprojects/gstreamer/gst/gstpad.c:4334
 #120 0x00007f98561eebd1 in gst_gl_base_filter_query (trans=0x7f982a2d5b00, direction=GST_PAD_SINK, query=0x7f9704541620) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.c:285
 #121 0x00007f985f8ea223 in gst_base_transform_query (pad=0x7f982a2d73f0, parent=0x7f982a2d5b00, query=0x7f9704541620) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1628
 #122 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2d73f0, query=0x7f9704541620) at ../subprojects/gstreamer/gst/gstpad.c:4202
 #123 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2d71a0, query=0x7f9704541620) at ../subprojects/gstreamer/gst/gstpad.c:4334
 #124 0x00007f985f8e7ff9 in gst_base_transform_do_bufferpool (trans=0x7f982a2d8340, outcaps=0x7f9704004e30) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:948
 #125 0x00007f985f8e963e in gst_base_transform_setcaps (trans=0x7f982a2d8340, pad=0x7f982a2d6f50, incaps=0x7f9704002120) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1351
 #126 0x00007f985f8e99c8 in gst_base_transform_reconfigure_unlocked (trans=0x7f982a2d8340) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1431
 #127 0x00007f985f8e9d38 in gst_base_transform_default_query (trans=0x7f982a2d8340, direction=GST_PAD_SINK, query=0x7f97045afe90) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1515
 #128 0x00007f98561eed91 in gst_gl_base_filter_query (trans=0x7f982a2d8340, direction=GST_PAD_SINK, query=0x7f97045afe90) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.c:319
 #129 0x00007f985f8ea223 in gst_base_transform_query (pad=0x7f982a2d6f50, parent=0x7f982a2d8340, query=0x7f97045afe90) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1628
 #130 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2d6f50, query=0x7f97045afe90) at ../subprojects/gstreamer/gst/gstpad.c:4202
 #131 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2d6d00, query=0x7f97045afe90) at ../subprojects/gstreamer/gst/gstpad.c:4334
 #132 0x00007f985f8e7ff9 in gst_base_transform_do_bufferpool (trans=0x7f982a2d4920, outcaps=0x7f9704071fb0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:948
 #133 0x00007f985f8e963e in gst_base_transform_setcaps (trans=0x7f982a2d4920, pad=0x7f982a2d6ab0, incaps=0x7f97500020c0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1351
 #134 0x00007f985f8e99c8 in gst_base_transform_reconfigure_unlocked (trans=0x7f982a2d4920) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1431
 #135 0x00007f985f8eb797 in default_submit_input_buffer (trans=0x7f982a2d4920, is_discont=0, inbuf=0x7f972c009b70) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:2041
 #136 0x00007f985f8ecb28 in gst_base_transform_chain (pad=0x7f982a2d6ab0, parent=0x7f982a2d4920, buffer=0x7f972c009b70) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:2348
 #137 0x00007f985f9f47c2 in gst_pad_chain_data_unchecked (pad=0x7f982a2d6ab0, type=4112, data=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4463
 #138 0x00007f985f9f5a15 in gst_pad_push_data (pad=0x7f982a2d6860, type=4112, data=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4739
 #139 0x00007f985f9f61cc in gst_pad_push (pad=0x7f982a2d6860, buffer=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4858
 #140 0x00007f985f8ecd2e in gst_base_transform_chain (pad=0x7f982a2d6610, parent=0x7f982a2c8590, buffer=0x7f972c009b70) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:2391
 #141 0x00007f985f9f47c2 in gst_pad_chain_data_unchecked (pad=0x7f982a2d6610, type=4112, data=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4463
 #142 0x00007f985f9f5a15 in gst_pad_push_data (pad=0x7f982a2de5a0, type=4112, data=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4739
 #143 0x00007f985f9f61cc in gst_pad_push (pad=0x7f982a2de5a0, buffer=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4858
 #144 0x00007f985f9ce428 in gst_proxy_pad_chain_default (pad=0x7f982a2c1650, parent=0x7f982a290880, buffer=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstghostpad.c:127
 #145 0x00007f985f9f47c2 in gst_pad_chain_data_unchecked (pad=0x7f982a2c1650, type=4112, data=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4463
 #146 0x00007f985f9f5a15 in gst_pad_push_data (pad=0x7f97500468a0, type=4112, data=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4739
 #147 0x00007f985f9f61cc in gst_pad_push (pad=0x7f97500468a0, buffer=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4858
 #148 0x00007f9812203aa4 in gst_base_auto_convert_sink_chain (pad=0x7f982a288770, parent=0x7f982a22fbd0, buffer=0x7f972c009b70) at ../subprojects/gst-plugins-bad/gst/autoconvert/gstbaseautoconvert.c:1032
 #149 0x00007f985f9f47c2 in gst_pad_chain_data_unchecked (pad=0x7f982a288770, type=4112, data=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4463
 #150 0x00007f985f9f5a15 in gst_pad_push_data (pad=0x7f982a288520, type=4112, data=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4739
 #151 0x00007f985f9f61cc in gst_pad_push (pad=0x7f982a288520, buffer=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4858
 #152 0x00007f985f8ecd2e in gst_base_transform_chain (pad=0x7f982a2882d0, parent=0x7f982a274570, buffer=0x7f972c009b70) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:2391
 #153 0x00007f985f9f47c2 in gst_pad_chain_data_unchecked (pad=0x7f982a2882d0, type=4112, data=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4463
 #154 0x00007f985f9f5a15 in gst_pad_push_data (pad=0x7f982a288080, type=4112, data=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4739
 #155 0x00007f985f9f61cc in gst_pad_push (pad=0x7f982a288080, buffer=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4858
 #156 0x00007f982499b9f9 in gst_queue_push_one (queue=0x7f9829d61910) at ../subprojects/gstreamer/plugins/elements/gstqueue.c:1388
 #157 0x00007f982499c88d in gst_queue_loop (pad=0x7f982a288080) at ../subprojects/gstreamer/plugins/elements/gstqueue.c:1541
 #158 0x00007f985fa376bb in gst_task_func (task=0x7f976002eb90) at ../subprojects/gstreamer/gst/gsttask.c:399
 #159 0x00007f985fa38bf9 in default_func (tdata=0x7f975400c160, pool=0x7f984cb62380) at ../subprojects/gstreamer/gst/gsttaskpool.c:70
 #160 0x00007f985fb566b4 in g_thread_pool_thread_proxy (data=<optimized out>) at ../../../glib/gthreadpool.c:350
 #161 0x00007f985fb53a51 in g_thread_proxy (data=0x7f982a071580) at ../../../glib/gthread.c:827
 #162 0x00007f985eddaac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
 #163 0x00007f985ee6ca40 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
```

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5856>
2024-01-13 10:36:51 +00:00
Nirbheek Chauhan 1913ff18b1 audioaggregator: Sync property values to output timestamp
This is what videoaggregator already does since 2019, and it makes
sense. The properties need to change at every output frame based on
the output time because they may change even though the input frame is
not changing. See:

6a8c15f3bd

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3851>
2024-01-13 06:48:44 +00:00
Scott Moreau f0d15f335d gst-launch: accept option to set program name
The option --prog-name="PROGRAM-NAME" can be passed to set the program name.
The program name is used by gtk and gstreamer to set the class or app-id.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5263>
2024-01-12 17:11:11 +00:00
Sebastian Dröge 2e86fb691a video-format: Fix format order once again
RGBA should be before RBGA. Both the Python script and the gstreamer-rs
tests agree on that, but somehow this is not caught by the CI.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5837>
2023-12-20 05:33:43 +00:00
Olivier Crête f5d5f2cf1a meta: Add API to register metas in two steps
And also remove the specific registration APIs for
serializable meta.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5830>
2023-12-19 22:41:31 +00:00
Xavier Claessens 06d9d934f9 meta: Add serialize/deserialize API
This allows metas to be serialized to be transmitted or stored. This is
intended to be used for example by gdppay or unixfdsink.

Implemented on GstCustomMeta, GstVideoMeta, GstReferenceTimestampMeta,
and GstAudioMeta.

Sponsored-by: Netflix Inc.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5355>
2023-12-17 16:13:26 +00:00
Sebastian Dröge c4789e6de5 audio: Consider the expected timestamp for discont-wait handling
Otherwise if there is a huge gap it will only be considered a
discontinuity after another discont-time amount of buffers has passed.

Like this it will be immediately a discontinuity if the gap between the
expected and received time becomes bigger than the discont-time.

The last part of the test was actually testing for this behaviour and
expected the previous behaviour. Most other tests also had to be
adjusted because discont will now happen at slightly different times
than before.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5759>
2023-12-17 12:01:27 +00:00
Doug Nazar 155224de96 audioringbuffer: Don't try to map MONO channel
Avoids critical message:

gstaudioringbuffer.c: line 2155 (gst_audio_ring_buffer_set_channel_positions):
should not be reached

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5721>
2023-12-09 17:01:41 +00:00