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>
Explicitly calls gst_vtenc_pause_output_loop when going PAUSED->READY to make sure GST_PAD_STREAM_LOCK is not taken.
Before this change, a deadlock would occur if pipeline got stopped right after one output buffer was generated by vtenc.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5933>
Instead of passing along the system frame number, we pass along a reference to
the GstVideoCodecFrame.
In order for all internal cleanup to happen properly, this also requires
switching to the proper AVPacket creation/destruction methods (av_packet_alloc()
and av_packet_unref())
Fixes#2568
Co-authored-by: Edward Hervey <edward@centricular.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5186>
Until now when doing `+test-clip blue +effect effect1 + effect effect2`
leaded to the following pseudo pipeline
videotestsrc ! effect2 ! effect1
given the `ges-launch` syntax this is quite unexpected and this needed
fixing
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5735>
This allows user to be in control of when scaling happens in the pipeline.
It can be plugged as an effect and scaling will be forced to happen in
the effect instead of in the compositor.
Without this, it would not be possible for users to, for example,
crop a video source before scaling to the target source size.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5735>
Modify the fix_output_format in vpp to directly generate caps with
negotiated src caps, and we have the correct dma caps negotiation in
fix_output_format function. And thus, we can remove the redundant
negotiation of using function pad_accept_memory in vpp.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5845>
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>
The pool currently defaults to performing a layout transition to
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, with some special exceptions for
video usages. This may not be a legal transition depending on the usage.
Provide an API to explicitly control the initial image layout.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5881>
When implementing NDK media support, it would be useful to also have JNI
implementation in the same binary as NDK media compatibility is lower.
As such, implement a rudimentary vtable system for gstamc-codec and
gstamc-format, and allow choosing the implementation at static_init()
time.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4115>
This allows the implementations to do custom logic behind the hood. For
example, when NDK implementation is added, the entrypoint can chooses to
statically initialize the NDK implementations or the JNI one.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4115>