Commit graph

19966 commits

Author SHA1 Message Date
Roman Shpuntov
31cb8500ee macOS gst-plugins-base/gl/cocoa: UI API called on a background thread: -[NSView removeFromSuperview]
The problem inside gstglwindow_cocoa.m, all UI operations must be called from main UI thread.

https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/568
Fixes #568
2019-03-20 18:44:12 +07:00
Thibault Saunier
6a99ad2c02 decodebin2: Make sure to remove probes when free GstDecodeGroup
Nothing guarantees that when we free a DecodeGroup the demuxer pads
have already been freed and thus the probes have been removed meaning
that in some case it is possible that the pad probes still get called
*after* the GstDecodeGroup is freed, leading to segfaults (as we use
the freed group in that function).

Sample stack trace when that happens:

  #0  sink_pad_query_probe (pad=pad@entry=0x7fe654027180, info=info@entry=0x7ffe433bf270, user_data=0x7fe668076f80) at ../subprojects/gst-plugins-base/gst/playback/gstdecodebin2.c:3004
  3004          if (last_group->reqpads) {
  [Current thread is 1 (Thread 0x7fe69d8a0880 (LWP 24366))]
  Missing separate debuginfos, use: dnf debuginfo-install elfutils-libelf-0.176-1.fc29.x86_64 elfutils-libs-0.176-1.fc29.x86_64 libXcursor-1.1.15-4.fc29.x86_64 libXi-1.7.9-8.fc29.x86_64 libgpg-error-1.33-1.fc29.x86_64 libvpx-1.7.0-7.fc29.x86_64 soundtouch-2.1.1-1.fc29.x86_64
  (gdb) bt
  #0  0x00007fe68f7f3430 in sink_pad_query_probe (pad=pad@entry=0x7fe654027180 [GstMultiQueuePad], info=info@entry=0x7ffe433bf270, user_data=0x7fe668076f80) at ../subprojects/gst-plugins-base/gst/playback/gstdecodebin2.c:3004
  #1  0x00007fe69e79815e in probe_hook_marshal (hook=0x7fe63003a840, data=0x7ffe433bf160) at ../subprojects/gstreamer/gst/gstpad.c:3565
  #2  0x00007fe69e5774cc in g_hook_list_marshal (hook_list=hook_list@entry=0x7fe654027218, may_recurse=may_recurse@entry=1, marshaller=marshaller@entry=0x7fe69e797d40 <probe_hook_marshal>, data=data@entry=0x7ffe433bf160) at ghook.c:672
  #3  0x00007fe69e797823 in do_probe_callbacks (pad=pad@entry=0x7fe654027180 [GstMultiQueuePad], info=info@entry=0x7ffe433bf270, defaultval=defaultval@entry=GST_FLOW_OK) at ../subprojects/gstreamer/gst/gstpad.c:3727
  #4  0x00007fe69e7a25fd in gst_pad_peer_query (pad=pad@entry=0x7fe654027180 [GstMultiQueuePad], query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4194
  #5  0x00007fe69e7a2c2c in query_forward_func (pad=pad@entry=0x7fe654027180 [GstMultiQueuePad], data=data@entry=0x7ffe433bf3c0) at ../subprojects/gstreamer/gst/gstpad.c:3376
  #6  0x00007fe69e7a0aae in gst_pad_forward (pad=pad@entry=0x7fe6540273d0 [GstPad], forward=forward@entry=0x7fe69e7a2b70 <query_forward_func>, user_data=user_data@entry=0x7ffe433bf3c0) at ../subprojects/gstreamer/gst/gstpad.c:3008
  #7  0x00007fe69e7a0ea2 in gst_pad_query_default (pad=0x7fe6540273d0 [GstPad], parent=<optimized out>, query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:3447
  #8  0x00007fe69e6a60e9 in gst_validate_pad_monitor_query_func (pad=0x7fe6540273d0 [GstPad], parent=0x7fe61c035e00 [GstMultiQueue], query=0x7fe67803f140) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2378
  #9  0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0x7fe6540273d0 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #10 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0x7fe648019620 [GstPad], query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #11 0x00007fe69e7a2c2c in query_forward_func (pad=pad@entry=0x7fe648019620 [GstPad], data=data@entry=0x7ffe433bf6f0) at ../subprojects/gstreamer/gst/gstpad.c:3376
  #12 0x00007fe69e7a0aae in gst_pad_forward (pad=pad@entry=0x7fe62000a9b0 [GstPad], forward=forward@entry=0x7fe69e7a2b70 <query_forward_func>, user_data=user_data@entry=0x7ffe433bf6f0) at ../subprojects/gstreamer/gst/gstpad.c:3008
  #13 0x00007fe69e7a0ea2 in gst_pad_query_default (pad=pad@entry=0x7fe62000a9b0 [GstPad], parent=<optimized out>, query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:3447
  #14 0x00007fe69e0594d6 in gst_video_decoder_src_query_default (dec=0x7fe63001e290 [GstVP8Dec], query=0x7fe67803f140) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:1684
  #15 0x00007fe69e6a60e9 in gst_validate_pad_monitor_query_func (pad=0x7fe62000a9b0 [GstPad], parent=0x7fe63001e290 [GstVP8Dec], query=0x7fe67803f140) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2378
  #16 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0x7fe62000a9b0 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #17 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0x7fe630054300 [GstProxyPad], query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #18 0x00007fe69e7a2c2c in query_forward_func (pad=pad@entry=0x7fe630054300 [GstProxyPad], data=data@entry=0x7ffe433bfa80) at ../subprojects/gstreamer/gst/gstpad.c:3376
  #19 0x00007fe69e7a0aae in gst_pad_forward (pad=pad@entry=0x7fe660047810 [GstDecodePad], forward=forward@entry=0x7fe69e7a2b70 <query_forward_func>, user_data=user_data@entry=0x7ffe433bfa80) at ../subprojects/gstreamer/gst/gstpad.c:3008
  #20 0x00007fe69e7a0ea2 in gst_pad_query_default (pad=0x7fe660047810 [GstDecodePad], parent=<optimized out>, query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:3447
  #21 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0x7fe660047810 [GstDecodePad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #22 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0x7fe654076cf0 [GstProxyPad], query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #23 0x00007fe69e7a2c2c in query_forward_func (pad=pad@entry=0x7fe654076cf0 [GstProxyPad], data=data@entry=0x7ffe433bfce0) at ../subprojects/gstreamer/gst/gstpad.c:3376
  #24 0x00007fe69e7a0aae in gst_pad_forward (pad=pad@entry=0x7fe668037720 [GstGhostPad], forward=forward@entry=0x7fe69e7a2b70 <query_forward_func>, user_data=user_data@entry=0x7ffe433bfce0) at ../subprojects/gstreamer/gst/gstpad.c:3008
  #25 0x00007fe69e7a0ea2 in gst_pad_query_default (pad=0x7fe668037720 [GstGhostPad], parent=<optimized out>, query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:3447
  #26 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0x7fe668037720 [GstGhostPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #27 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0xa762c0 [GstPad], query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #28 0x00007fe69e7a2c2c in query_forward_func (pad=pad@entry=0xa762c0 [GstPad], data=data@entry=0x7ffe433bff40) at ../subprojects/gstreamer/gst/gstpad.c:3376
  #29 0x00007fe69e7a0aae in gst_pad_forward (pad=pad@entry=0xa76510 [GstPad], forward=forward@entry=0x7fe69e7a2b70 <query_forward_func>, user_data=user_data@entry=0x7ffe433bff40) at ../subprojects/gstreamer/gst/gstpad.c:3008
  #30 0x00007fe69e7a0ea2 in gst_pad_query_default (pad=pad@entry=0xa76510 [GstPad], parent=parent@entry=0x7fe67002b240 [GstQueue], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:3447
  #31 0x00007fe68f7bd321 in gst_queue_handle_src_query (pad=0xa76510 [GstPad], parent=0x7fe67002b240 [GstQueue], query=0x7fe67803f140) at ../subprojects/gstreamer/plugins/elements/gstqueue.c:1619
  #32 0x00007fe69e6a60e9 in gst_validate_pad_monitor_query_func (pad=0xa76510 [GstPad], parent=0x7fe67002b240 [GstQueue], query=0x7fe67803f140) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2378
  #33 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0xa76510 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #34 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0xa770a0 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #35 0x00007fe69e118c6b in gst_base_transform_default_query (trans=0xa6f4d0 [GstVideoConvert], direction=GST_PAD_SRC, query=0x7fe67803f140) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1557
  #36 0x00007fe69e6a60e9 in gst_validate_pad_monitor_query_func (pad=0xa772f0 [GstPad], parent=0xa6f4d0 [GstVideoConvert], query=0x7fe67803f140) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2378
  #37 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0xa772f0 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #38 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0xa779e0 [GstPad], query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #39 0x00007fe69e7a2c2c in query_forward_func (pad=pad@entry=0xa779e0 [GstPad], data=data@entry=0x7ffe433c0550) at ../subprojects/gstreamer/gst/gstpad.c:3376
  #40 0x00007fe69e7a0aae in gst_pad_forward (pad=pad@entry=0xa77c30 [GstPad], forward=forward@entry=0x7fe69e7a2b70 <query_forward_func>, user_data=user_data@entry=0x7ffe433c0550) at ../subprojects/gstreamer/gst/gstpad.c:3008
  #41 0x00007fe69e7a0ea2 in gst_pad_query_default (pad=pad@entry=0xa77c30 [GstPad], parent=parent@entry=0xa7f800 [GstDeinterlace], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:3447
  #42 0x00007fe68c0449a7 in gst_deinterlace_src_query (pad=0xa77c30 [GstPad], parent=0xa7f800 [GstDeinterlace], query=0x7fe67803f140) at ../subprojects/gst-plugins-good/gst/deinterlace/gstdeinterlace.c:3265
  #43 0x00007fe69e6a60e9 in gst_validate_pad_monitor_query_func (pad=0xa77c30 [GstPad], parent=0xa7f800 [GstDeinterlace], query=0x7fe67803f140) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2378
  #44 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0xa77c30 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #45 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0xa76760 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #46 0x00007fe69e118c6b in gst_base_transform_default_query (trans=0xa46860 [GstFramePositioner], direction=GST_PAD_SRC, query=0x7fe67803f140) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1557
  #47 0x00007fe69e6a60e9 in gst_validate_pad_monitor_query_func (pad=0xa769b0 [GstPad], parent=0xa46860 [GstFramePositioner], query=0x7fe67803f140) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2378
  #48 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0xa769b0 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #49 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0xa76c00 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #50 0x00007fe69e118c6b in gst_base_transform_default_query (trans=0xa7eb20 [GstVideoScale], direction=GST_PAD_SRC, query=0x7fe67803f140) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1557
  #51 0x00007fe69e6a60e9 in gst_validate_pad_monitor_query_func (pad=0xa76e50 [GstPad], parent=0xa7eb20 [GstVideoScale], query=0x7fe67803f140) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2378
  #52 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0xa76e50 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #53 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0xa77540 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #54 0x00007fe69e118c6b in gst_base_transform_default_query (trans=0xa6f980 [GstVideoRate], direction=GST_PAD_SRC, query=0x7fe67803f140) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1557
  #55 0x00007fe68f7369f0 in gst_video_rate_query (trans=0xa6f980 [GstVideoRate], direction=GST_PAD_SRC, query=0x7fe67803f140) at ../subprojects/gst-plugins-base/gst/videorate/gstvideorate.c:1115
  #56 0x00007fe69e6a60e9 in gst_validate_pad_monitor_query_func (pad=0xa77790 [GstPad], parent=0xa6f980 [GstVideoRate], query=0x7fe67803f140) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2378
  #57 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0xa77790 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #58 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0xa82120 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #59 0x00007fe69e118c6b in gst_base_transform_default_query (trans=0xa172a0 [GstCapsFilter], direction=GST_PAD_SRC, query=0x7fe67803f140) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1557
  #60 0x00007fe69e6a60e9 in gst_validate_pad_monitor_query_func (pad=0xa82370 [GstPad], parent=0xa172a0 [GstCapsFilter], query=0x7fe67803f140) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2378
  #61 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0xa82370 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #62 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0xa44c70 [GstProxyPad], query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #63 0x00007fe69e7a2c2c in query_forward_func (pad=pad@entry=0xa44c70 [GstProxyPad], data=data@entry=0x7ffe433c13a0) at ../subprojects/gstreamer/gst/gstpad.c:3376
  #64 0x00007fe69e7a0aae in gst_pad_forward (pad=pad@entry=0x7fe6700271e0 [GstGhostPad], forward=forward@entry=0x7fe69e7a2b70 <query_forward_func>, user_data=user_data@entry=0x7ffe433c13a0) at ../subprojects/gstreamer/gst/gstpad.c:3008
  #65 0x00007fe69e7a0ea2 in gst_pad_query_default (pad=0x7fe6700271e0 [GstGhostPad], parent=<optimized out>, query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:3447
  #66 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0x7fe6700271e0 [GstGhostPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #67 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0xa447b0 [GstProxyPad], query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #68 0x00007fe69e7a2c2c in query_forward_func (pad=pad@entry=0xa447b0 [GstProxyPad], data=data@entry=0x7ffe433c1600) at ../subprojects/gstreamer/gst/gstpad.c:3376
  #69 0x00007fe69e7a0aae in gst_pad_forward (pad=pad@entry=0x7fe670026f60 [GstGhostPad], forward=forward@entry=0x7fe69e7a2b70 <query_forward_func>, user_data=user_data@entry=0x7ffe433c1600) at ../subprojects/gstreamer/gst/gstpad.c:3008
  #70 0x00007fe69e7a0ea2 in gst_pad_query_default (pad=0x7fe670026f60 [GstGhostPad], parent=<optimized out>, query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:3447
  #71 0x00007fe68f54bb18 in ghostpad_query_function (ghostpad=0x7fe670026f60 [GstGhostPad], parent=0xa2a870 [NleSource], query=0x7fe67803f140) at ../subprojects/gst-editing-services/plugins/nle/nleghostpad.c:556
  #72 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0x7fe670026f60 [GstGhostPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #73 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0x7fe61c00ab30 [GstGhostPad], query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #74 0x00007fe69e7a2c2c in query_forward_func (pad=pad@entry=0x7fe61c00ab30 [GstGhostPad], data=data@entry=0x7ffe433c18c0) at ../subprojects/gstreamer/gst/gstpad.c:3376
  #75 0x00007fe69e7a0aae in gst_pad_forward (pad=pad@entry=0x7fe6680ccab0 [GstProxyPad], forward=forward@entry=0x7fe69e7a2b70 <query_forward_func>, user_data=user_data@entry=0x7ffe433c18c0) at ../subprojects/gstreamer/gst/gstpad.c:3008
  #76 0x00007fe69e7a0ea2 in gst_pad_query_default (pad=0x7fe6680ccab0 [GstProxyPad], parent=<optimized out>, query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:3447
  #77 0x00007fe68f54b6a9 in internalpad_query_function (internal=0x7fe6680ccab0 [GstProxyPad], parent=0x7fe61c00ab30 [GstGhostPad], query=0x7fe67803f140) at ../subprojects/gst-editing-services/plugins/nle/nleghostpad.c:448
  #78 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0x7fe6680ccab0 [GstProxyPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #79 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0x7fe66800e510 [GESSmartMixerPad], query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #80 0x00007fe69e7a2c2c in query_forward_func (pad=pad@entry=0x7fe66800e510 [GESSmartMixerPad], data=data@entry=0x7ffe433c1b80) at ../subprojects/gstreamer/gst/gstpad.c:3376
  #81 0x00007fe69e7a0aae in gst_pad_forward (pad=pad@entry=0x7fe6680cc5f0 [GstProxyPad], forward=forward@entry=0x7fe69e7a2b70 <query_forward_func>, user_data=user_data@entry=0x7ffe433c1b80) at ../subprojects/gstreamer/gst/gstpad.c:3008
  #82 0x00007fe69e7a0ea2 in gst_pad_query_default (pad=0x7fe6680cc5f0 [GstProxyPad], parent=<optimized out>, query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:3447
  #83 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0x7fe6680cc5f0 [GstProxyPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #84 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0x7fe66805ee60 [GstGhostPad], query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #85 0x00007fe69e7a2c2c in query_forward_func (pad=pad@entry=0x7fe66805ee60 [GstGhostPad], data=data@entry=0x7ffe433c1de0) at ../subprojects/gstreamer/gst/gstpad.c:3376
  #86 0x00007fe69e7a0aae in gst_pad_forward (pad=pad@entry=0x7fe654077d90 [GstProxyPad], forward=forward@entry=0x7fe69e7a2b70 <query_forward_func>, user_data=user_data@entry=0x7ffe433c1de0) at ../subprojects/gstreamer/gst/gstpad.c:3008
  #87 0x00007fe69e7a0ea2 in gst_pad_query_default (pad=0x7fe654077d90 [GstProxyPad], parent=<optimized out>, query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:3447
  #88 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0x7fe654077d90 [GstProxyPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #89 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0x7fe654027ac0 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #90 0x00007fe69e118c6b in gst_base_transform_default_query (trans=0x7fe6680c71d0 [GstVideoConvert], direction=GST_PAD_SRC, query=0x7fe67803f140) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1557
  #91 0x00007fe69e6a60e9 in gst_validate_pad_monitor_query_func (pad=0x7fe654026a90 [GstPad], parent=0x7fe6680c71d0 [GstVideoConvert], query=0x7fe67803f140) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2378
  #92 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0x7fe654026a90 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #93 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0x7fe6680cc850 [GstProxyPad], query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #94 0x00007fe69e7a2c2c in query_forward_func (pad=pad@entry=0x7fe6680cc850 [GstProxyPad], data=data@entry=0x7ffe433c22d0) at ../subprojects/gstreamer/gst/gstpad.c:3376
  #95 0x00007fe69e7a0aae in gst_pad_forward (pad=pad@entry=0x7fe6680374a0 [GstGhostPad], forward=forward@entry=0x7fe69e7a2b70 <query_forward_func>, user_data=user_data@entry=0x7ffe433c22d0) at ../subprojects/gstreamer/gst/gstpad.c:3008
  #96 0x00007fe69e7a0ea2 in gst_pad_query_default (pad=0x7fe6680374a0 [GstGhostPad], parent=<optimized out>, query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:3447
  #97 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0x7fe6680374a0 [GstGhostPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #98 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0x7fe6680c7e20 [GstCompositorPad], query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #99 0x00007fe69e7a2c2c in query_forward_func (pad=pad@entry=0x7fe6680c7e20 [GstCompositorPad], data=data@entry=0x7ffe433c2530) at ../subprojects/gstreamer/gst/gstpad.c:3376
  #100 0x00007fe69e7a0aae in gst_pad_forward (pad=pad@entry=0xa24170 [GstAggregatorPad], forward=forward@entry=0x7fe69e7a2b70 <query_forward_func>, user_data=user_data@entry=0x7ffe433c2530) at ../subprojects/gstreamer/gst/gstpad.c:3008
  #101 0x00007fe69e7a0ea2 in gst_pad_query_default (pad=0xa24170 [GstAggregatorPad], parent=<optimized out>, query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:3447
  #102 0x00007fe69e0e5512 in gst_aggregator_default_src_query (self=0xa21e90 [GstCompositor], query=0x7fe67803f140) at ../subprojects/gstreamer/libs/gst/base/gstaggregator.c:1909
  #103 0x00007fe69e0547be in gst_video_aggregator_src_query (agg=0xa21e90 [GstCompositor], query=0x7fe67803f140) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideoaggregator.c:2022
  #104 0x00007fe69e6a60e9 in gst_validate_pad_monitor_query_func (pad=0xa24170 [GstAggregatorPad], parent=0xa21e90 [GstCompositor], query=0x7fe67803f140) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2378
  #105 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0xa24170 [GstAggregatorPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #106 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0x9aac10 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #107 0x00007fe69e118c6b in gst_base_transform_default_query (trans=0xa28280 [GstIdentity], direction=GST_PAD_SRC, query=0x7fe67803f140) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1557
  #108 0x00007fe68f79dfc4 in gst_identity_query (base=0xa28280 [GstIdentity], direction=GST_PAD_SRC, query=0x7fe67803f140) at ../subprojects/gstreamer/plugins/elements/gstidentity.c:957
  #109 0x00007fe69e6a60e9 in gst_validate_pad_monitor_query_func (pad=0x9aae60 [GstPad], parent=0xa28280 [GstIdentity], query=0x7fe67803f140) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2378
  #110 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0x9aae60 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #111 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0x99cc40 [GstProxyPad], query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #112 0x00007fe69e7a2c2c in query_forward_func (pad=pad@entry=0x99cc40 [GstProxyPad], data=data@entry=0x7ffe433c2c00) at ../subprojects/gstreamer/gst/gstpad.c:3376
  #113 0x00007fe69e7a0aae in gst_pad_forward (pad=pad@entry=0x9aee40 [GstGhostPad], forward=forward@entry=0x7fe69e7a2b70 <query_forward_func>, user_data=user_data@entry=0x7ffe433c2c00) at ../subprojects/gstreamer/gst/gstpad.c:3008
  #114 0x00007fe69e7a0ea2 in gst_pad_query_default (pad=0x9aee40 [GstGhostPad], parent=<optimized out>, query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:3447
  #115 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0x9aee40 [GstGhostPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #116 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0x99d100 [GstProxyPad], query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #117 0x00007fe69e7a2c2c in query_forward_func (pad=pad@entry=0x99d100 [GstProxyPad], data=data@entry=0x7ffe433c2e60) at ../subprojects/gstreamer/gst/gstpad.c:3376
  #118 0x00007fe69e7a0aae in gst_pad_forward (pad=pad@entry=0x9af0c0 [GstGhostPad], forward=forward@entry=0x7fe69e7a2b70 <query_forward_func>, user_data=user_data@entry=0x7ffe433c2e60) at ../subprojects/gstreamer/gst/gstpad.c:3008
  #119 0x00007fe69e7a0ea2 in gst_pad_query_default (pad=0x9af0c0 [GstGhostPad], parent=<optimized out>, query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:3447
  #120 0x00007fe68f54bb18 in ghostpad_query_function (ghostpad=0x9af0c0 [GstGhostPad], parent=0x99ce70 [NleOperation], query=0x7fe67803f140) at ../subprojects/gst-editing-services/plugins/nle/nleghostpad.c:556
  #121 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0x9af0c0 [GstGhostPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #122 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0x99c2c0 [GstProxyPad], query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #123 0x00007fe69e7a2c2c in query_forward_func (pad=pad@entry=0x99c2c0 [GstProxyPad], data=data@entry=0x7ffe433c3120) at ../subprojects/gstreamer/gst/gstpad.c:3376
  #124 0x00007fe69e7a0aae in gst_pad_forward (pad=pad@entry=0x9ae1c0 [GstGhostPad], forward=forward@entry=0x7fe69e7a2b70 <query_forward_func>, user_data=user_data@entry=0x7ffe433c3120) at ../subprojects/gstreamer/gst/gstpad.c:3008
  #125 0x00007fe69e7a0ea2 in gst_pad_query_default (pad=0x9ae1c0 [GstGhostPad], parent=<optimized out>, query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:3447
  #126 0x00007fe68f54bb18 in ghostpad_query_function (ghostpad=0x9ae1c0 [GstGhostPad], parent=0xa16290 [NleComposition], query=0x7fe67803f140) at ../subprojects/gst-editing-services/plugins/nle/nleghostpad.c:556
  #127 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0x9ae1c0 [GstGhostPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #128 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0x9aa080 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #129 0x00007fe69e118c6b in gst_base_transform_default_query (trans=0xa165a0 [GstCapsFilter], direction=GST_PAD_SRC, query=0x7fe67803f140) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1557
  #130 0x00007fe69e6a60e9 in gst_validate_pad_monitor_query_func (pad=0x9aa9c0 [GstPad], parent=0xa165a0 [GstCapsFilter], query=0x7fe67803f140) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2378
  #131 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0x9aa9c0 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #132 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0x99c9e0 [GstProxyPad], query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #133 0x00007fe69e7a2c2c in query_forward_func (pad=pad@entry=0x99c9e0 [GstProxyPad], data=data@entry=0x7ffe433c3670) at ../subprojects/gstreamer/gst/gstpad.c:3376
  #134 0x00007fe69e7a0aae in gst_pad_forward (pad=pad@entry=0x9aebc0 [GstGhostPad], forward=forward@entry=0x7fe69e7a2b70 <query_forward_func>, user_data=user_data@entry=0x7ffe433c3670) at ../subprojects/gstreamer/gst/gstpad.c:3008
  #135 0x00007fe69e7a0ea2 in gst_pad_query_default (pad=0x9aebc0 [GstGhostPad], parent=<optimized out>, query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:3447
  #136 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0x9aebc0 [GstGhostPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #137 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0x99d820 [GstProxyPad], query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #138 0x00007fe69e7a2c2c in query_forward_func (pad=pad@entry=0x99d820 [GstProxyPad], data=data@entry=0x7ffe433c38d0) at ../subprojects/gstreamer/gst/gstpad.c:3376
  #139 0x00007fe69e7a0aae in gst_pad_forward (pad=pad@entry=0x9af840 [GstGhostPad], forward=forward@entry=0x7fe69e7a2b70 <query_forward_func>, user_data=user_data@entry=0x7ffe433c38d0) at ../subprojects/gstreamer/gst/gstpad.c:3008
  #140 0x00007fe69e7a0ea2 in gst_pad_query_default (pad=0x9af840 [GstGhostPad], parent=<optimized out>, query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:3447
  #141 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0x9af840 [GstGhostPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #142 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0x7fe6780247d0 [GstPad], query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #143 0x00007fe69e7a2c2c in query_forward_func (pad=pad@entry=0x7fe6780247d0 [GstPad], data=data@entry=0x7ffe433c3b30) at ../subprojects/gstreamer/gst/gstpad.c:3376
  #144 0x00007fe69e7a0aae in gst_pad_forward (pad=pad@entry=0x7fe684032780 [GstTeePad], forward=forward@entry=0x7fe69e7a2b70 <query_forward_func>, user_data=user_data@entry=0x7ffe433c3b30) at ../subprojects/gstreamer/gst/gstpad.c:3008
  #145 0x00007fe69e7a0ea2 in gst_pad_query_default (pad=0x7fe684032780 [GstTeePad], parent=<optimized out>, query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:3447
  #146 0x00007fe69e6a60e9 in gst_validate_pad_monitor_query_func (pad=0x7fe684032780 [GstTeePad], parent=0x7383f0 [GstTee], query=0x7fe67803f140) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2378
  #147 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0x7fe684032780 [GstTeePad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #148 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0x7fe670026060 [GstGhostPad], query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #149 0x00007fe69e7a2c2c in query_forward_func (pad=pad@entry=0x7fe670026060 [GstGhostPad], data=data@entry=0x7ffe433c3e60) at ../subprojects/gstreamer/gst/gstpad.c:3376
  #150 0x00007fe69e7a0aae in gst_pad_forward (pad=pad@entry=0x99dce0 [GstProxyPad], forward=forward@entry=0x7fe69e7a2b70 <query_forward_func>, user_data=user_data@entry=0x7ffe433c3e60) at ../subprojects/gstreamer/gst/gstpad.c:3008
  #151 0x00007fe69e7a0ea2 in gst_pad_query_default (pad=0x99dce0 [GstProxyPad], parent=<optimized out>, query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:3447
  #152 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0x99dce0 [GstProxyPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #153 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0xa8d6b0 [GstPad], query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #154 0x00007fe69e7a2c2c in query_forward_func (pad=pad@entry=0xa8d6b0 [GstPad], data=data@entry=0x7ffe433c40c0) at ../subprojects/gstreamer/gst/gstpad.c:3376
  #155 0x00007fe69e7a0aae in gst_pad_forward (pad=pad@entry=0xa8d900 [GstPad], forward=forward@entry=0x7fe69e7a2b70 <query_forward_func>, user_data=user_data@entry=0x7ffe433c40c0) at ../subprojects/gstreamer/gst/gstpad.c:3008
  #156 0x00007fe69e7a0ea2 in gst_pad_query_default (pad=0xa8d900 [GstPad], parent=<optimized out>, query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:3447
  #157 0x00007fe69e6a60e9 in gst_validate_pad_monitor_query_func (pad=0xa8d900 [GstPad], parent=0x9f6060 [GstStreamSynchronizer], query=0x7fe67803f140) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2378
  #158 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0xa8d900 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #159 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0xad5a80 [GstGhostPad], query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #160 0x00007fe69e7a2c2c in query_forward_func (pad=pad@entry=0xad5a80 [GstGhostPad], data=data@entry=0x7ffe433c43f0) at ../subprojects/gstreamer/gst/gstpad.c:3376
  #161 0x00007fe69e7a0aae in gst_pad_forward (pad=pad@entry=0x7fe6680275b0 [GstProxyPad], forward=forward@entry=0x7fe69e7a2b70 <query_forward_func>, user_data=user_data@entry=0x7ffe433c43f0) at ../subprojects/gstreamer/gst/gstpad.c:3008
  #162 0x00007fe69e7a0ea2 in gst_pad_query_default (pad=0x7fe6680275b0 [GstProxyPad], parent=<optimized out>, query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:3447
  #163 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0x7fe6680275b0 [GstProxyPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #164 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0xa39580 [GstPad], query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #165 0x00007fe69e7a2c2c in query_forward_func (pad=pad@entry=0xa39580 [GstPad], data=data@entry=0x7ffe433c4650) at ../subprojects/gstreamer/gst/gstpad.c:3376
  #166 0x00007fe69e7a0aae in gst_pad_forward (pad=pad@entry=0x7fe6780240e0 [GstPad], forward=forward@entry=0x7fe69e7a2b70 <query_forward_func>, user_data=user_data@entry=0x7ffe433c4650) at ../subprojects/gstreamer/gst/gstpad.c:3008
  #167 0x00007fe69e7a0ea2 in gst_pad_query_default (pad=pad@entry=0x7fe6780240e0 [GstPad], parent=parent@entry=0x7fe66800e7b0 [GstQueue], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:3447
  #168 0x00007fe68f7bd321 in gst_queue_handle_src_query (pad=0x7fe6780240e0 [GstPad], parent=0x7fe66800e7b0 [GstQueue], query=0x7fe67803f140) at ../subprojects/gstreamer/plugins/elements/gstqueue.c:1619
  #169 0x00007fe69e6a60e9 in gst_validate_pad_monitor_query_func (pad=0x7fe6780240e0 [GstPad], parent=0x7fe66800e7b0 [GstQueue], query=0x7fe67803f140) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2378
  #170 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0x7fe6780240e0 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #171 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0xad5580 [GstGhostPad], query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #172 0x00007fe69e7a2c2c in query_forward_func (pad=pad@entry=0xad5580 [GstGhostPad], data=data@entry=0x7ffe433c49d0) at ../subprojects/gstreamer/gst/gstpad.c:3376
  #173 0x00007fe69e7a0aae in gst_pad_forward (pad=pad@entry=0x7fe6680270f0 [GstProxyPad], forward=forward@entry=0x7fe69e7a2b70 <query_forward_func>, user_data=user_data@entry=0x7ffe433c49d0) at ../subprojects/gstreamer/gst/gstpad.c:3008
  #174 0x00007fe69e7a0ea2 in gst_pad_query_default (pad=0x7fe6680270f0 [GstProxyPad], parent=<optimized out>, query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:3447
  #175 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0x7fe6680270f0 [GstProxyPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #176 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0x7fe6780255b0 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #177 0x00007fe69e118c6b in gst_base_transform_default_query (trans=0x7fe674032fa0 [GstVideoConvert], direction=GST_PAD_SRC, query=0x7fe67803f140) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1557
  #178 0x00007fe69e6a60e9 in gst_validate_pad_monitor_query_func (pad=0x7fe678025a50 [GstPad], parent=0x7fe674032fa0 [GstVideoConvert], query=0x7fe67803f140) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2378
  #179 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0x7fe678025a50 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #180 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0x7fe678025800 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #181 0x00007fe69e118c6b in gst_base_transform_default_query (trans=0x7fe6740346d0 [GstVideoScale], direction=GST_PAD_SRC, query=0x7fe67803f140) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1557
  #182 0x00007fe69e6a60e9 in gst_validate_pad_monitor_query_func (pad=0x7fe678025360 [GstPad], parent=0x7fe6740346d0 [GstVideoScale], query=0x7fe67803f140) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2378
  #183 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0x7fe678025360 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #184 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0x7fe678024580 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #185 0x00007fe69e118c6b in gst_base_transform_default_query (trans=0x7fe674011950 [GstVideoBalance], direction=GST_PAD_SRC, query=0x7fe67803f140) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1557
  #186 0x00007fe69e6a60e9 in gst_validate_pad_monitor_query_func (pad=0x7fe678025110 [GstPad], parent=0x7fe674011950 [GstVideoBalance], query=0x7fe67803f140) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2378
  #187 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0x7fe678025110 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #188 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0xa8d460 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #189 0x00007fe69e118c6b in gst_base_transform_default_query (trans=0x7fe674037330 [GstVideoConvert], direction=GST_PAD_SRC, query=0x7fe67803f140) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1557
  #190 0x00007fe69e6a60e9 in gst_validate_pad_monitor_query_func (pad=0x7fe678024ec0 [GstPad], parent=0x7fe674037330 [GstVideoConvert], query=0x7fe67803f140) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2378
  #191 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0x7fe678024ec0 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #192 0x00007fe69e7a263b in gst_pad_peer_query (pad=pad@entry=0x7fe668027350 [GstProxyPad], query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #193 0x00007fe69e7a2c2c in query_forward_func (pad=pad@entry=0x7fe668027350 [GstProxyPad], data=data@entry=0x7ffe433c5670) at ../subprojects/gstreamer/gst/gstpad.c:3376
  #194 0x00007fe69e7a0aae in gst_pad_forward (pad=pad@entry=0xad5800 [GstGhostPad], forward=forward@entry=0x7fe69e7a2b70 <query_forward_func>, user_data=user_data@entry=0x7ffe433c5670) at ../subprojects/gstreamer/gst/gstpad.c:3008
  #195 0x00007fe69e7a0ea2 in gst_pad_query_default (pad=0xad5800 [GstGhostPad], parent=<optimized out>, query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:3447
  #196 0x00007fe68f84ad95 in gst_play_sink_convert_bin_query (pad=0xad5800 [GstGhostPad], parent=<optimized out>, query=0x7fe67803f140) at ../subprojects/gst-plugins-base/gst/playback/gstplaysinkconvertbin.c:525
  #197 0x00007fe69e7a1ee0 in gst_pad_query (pad=pad@entry=0xad5800 [GstGhostPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4071
  #198 0x00007fe69e7a263b in gst_pad_peer_query (pad=0xa380b0 [GstPad], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstpad.c:4203
  #199 0x00007fe69e10564c in default_element_query (element=0xa369f0 [GstFakeSink], query=0x7fe67803f140) at ../subprojects/gstreamer/libs/gst/base/gstbasesink.c:5034
  #200 0x00007fe69e77f8f0 in gst_element_query (element=0xa369f0 [GstFakeSink], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstelement.c:1959
  #201 0x00007fe69e7584f7 in bin_query_generic_fold (vitem=<optimized out>, ret=0x7ffe433c59d0, fold=0x7ffe433c5a60) at ../subprojects/gstreamer/gst/gstbin.c:4232
  #202 0x00007fe69e78ffcc in gst_iterator_fold (it=it@entry=0x744820, func=func@entry=0x7fe69e758460 <bin_query_generic_fold>, ret=ret@entry=0x7ffe433c59d0, user_data=user_data@entry=0x7ffe433c5a60) at ../subprojects/gstreamer/gst/gstiterator.c:617
  #203 0x00007fe69e758b82 in bin_iterate_fold (bin=bin@entry=0xa19d80 [GstBin], iter=iter@entry=0x744820, fold_init=fold_init@entry=0x0, fold_done=fold_done@entry=0x0, fold_func=fold_func@entry=0x7fe69e758460 <bin_query_generic_fold>, fold_data=fold_data@entry=0x7ffe433c5a60, default_return=0) at ../subprojects/gstreamer/gst/gstbin.c:4259
  #204 0x00007fe69e75e776 in gst_bin_query (element=0xa19d80 [GstBin], query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstbin.c:4379
  #205 0x00007fe69e77f8f0 in gst_element_query (element=0xa19d80 [GstBin], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstelement.c:1959
  #206 0x00007fe69e7584f7 in bin_query_generic_fold (vitem=<optimized out>, ret=0x7ffe433c5ba0, fold=0x7ffe433c5c30) at ../subprojects/gstreamer/gst/gstbin.c:4232
  #207 0x00007fe69e78ffcc in gst_iterator_fold (it=it@entry=0x744cf0, func=func@entry=0x7fe69e758460 <bin_query_generic_fold>, ret=ret@entry=0x7ffe433c5ba0, user_data=user_data@entry=0x7ffe433c5c30) at ../subprojects/gstreamer/gst/gstiterator.c:617
  #208 0x00007fe69e758b82 in bin_iterate_fold (bin=bin@entry=0x9f42e0 [GstPlaySink], iter=iter@entry=0x744cf0, fold_init=fold_init@entry=0x0, fold_done=fold_done@entry=0x0, fold_func=fold_func@entry=0x7fe69e758460 <bin_query_generic_fold>, fold_data=fold_data@entry=0x7ffe433c5c30, default_return=0) at ../subprojects/gstreamer/gst/gstbin.c:4259
  #209 0x00007fe69e75e776 in gst_bin_query (element=0x9f42e0 [GstPlaySink], query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstbin.c:4379
  #210 0x00007fe69e77f8f0 in gst_element_query (element=0x9f42e0 [GstPlaySink], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstelement.c:1959
  #211 0x00007fe69e7584f7 in bin_query_generic_fold (vitem=<optimized out>, ret=0x7ffe433c5d70, fold=0x7ffe433c5e00) at ../subprojects/gstreamer/gst/gstbin.c:4232
  #212 0x00007fe69e78ffcc in gst_iterator_fold (it=it@entry=0x7448d0, func=func@entry=0x7fe69e758460 <bin_query_generic_fold>, ret=ret@entry=0x7ffe433c5d70, user_data=user_data@entry=0x7ffe433c5e00) at ../subprojects/gstreamer/gst/gstiterator.c:617
  #213 0x00007fe69e758b82 in bin_iterate_fold (bin=bin@entry=0x9ee0a0 [GESPipeline], iter=iter@entry=0x7448d0, fold_init=fold_init@entry=0x0, fold_done=fold_done@entry=0x0, fold_func=fold_func@entry=0x7fe69e758460 <bin_query_generic_fold>, fold_data=fold_data@entry=0x7ffe433c5e00, default_return=0) at ../subprojects/gstreamer/gst/gstbin.c:4259
  #214 0x00007fe69e75e776 in gst_bin_query (element=0x9ee0a0 [GESPipeline], query=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstbin.c:4379
  #215 0x00007fe69e77f8f0 in gst_element_query (element=0x9ee0a0 [GESPipeline], query=query@entry=0x7fe67803f140) at ../subprojects/gstreamer/gst/gstelement.c:1959
  #216 0x00007fe69e6b5d01 in _check_position (rate=0x7ffe433c5ee0, position=0x7ffe433c5ee8, act=0xaa82a0, scenario=0x9fe250 [GstValidateScenario]) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:1658
  #217 0x00007fe69e6b5d01 in execute_next_action (scenario=scenario@entry=0x9fe250 [GstValidateScenario]) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:2107
  #218 0x00007fe69e587b31 in g_timeout_dispatch (source=0xaa7da0, callback=0x7fe69e6b5830 <execute_next_action>, user_data=0x9fe250) at gmain.c:4667
  #219 0x00007fe69e58706d in g_main_dispatch (context=0x71bc50) at gmain.c:3182
  #220 0x00007fe69e58706d in g_main_context_dispatch (context=context@entry=0x71bc50) at gmain.c:3847
  #221 0x00007fe69e587438 in g_main_context_iterate (context=context@entry=0x71bc50, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3920
  #222 0x00007fe69e5874d0 in g_main_context_iteration (context=context@entry=0x71bc50, may_block=may_block@entry=1) at gmain.c:3981
  #223 0x00007fe69e3dfd25 in g_application_run (application=0x71c1f0 [GESLauncher], argc=argc@entry=6, argv=argv@entry=0x7ffe433c61c8) at gapplication.c:2470
  #224 0x000000000040393c in main (argc=6, argv=0x7ffe433c61c8) at ../subprojects/gst-editing-services/tools/ges-launch.c:88
  (gdb) p last_group
  $1 = (GstDecodeGroup *) 0x52c
  (gdb) p group
  $2 = (GstDecodeGroup *) 0x7fe668076f80
  (gdb) p group->parent
  $3 = (GstDecodeChain *) 0x7fe6680774c0
  (gdb) p group->parent->next_group
  There is no member named next_group.
  (gdb) group->parent->next_groups
  Undefined command: "group->parent->next_groups".  Try "help".
  (gdb) p group->parent->next_groups
  $4 = 0x7fe660004280 = {0x528, 0x529, 0x52a, 0x52b, 0x52c}
  (gdb) p *group->parent->next_groups
  $5 = {data=0x528, next=0x7fe668077500, prev=0x7fe64c04ab80}
  (gdb) p *group
  $6 = {dbin = 0x52a, parent = 0x7fe6680774c0, multiqueue = 0x7fe668077500, overrunsig = 167503724544, overrun = 1, no_more_pads = 0, drained = 1745725152, children = 0xa19220 = {0x73d400, <error reading variable>
  (gdb)  Quit
  (gdb)
2019-03-18 11:37:43 +00:00
Wonchul Lee
a75e47e815 appsrc: Fix docs typo
Fix typo empty-percent to min-percent
2019-03-16 14:57:56 +00:00
Antonio Ospite
1eb9c5b309 rtpbasepayload: print list size in log output instead of -1
It is weird to see "Preparing to push packet with size 4294967295" in
the logs, so print the list length in case of a buffer list.
2019-03-15 17:38:58 +01:00
Tobias Ronge
f672277509 gstrtspconnection: Security loophole making heap overflow
The former code allowed an attacker to create a heap overflow by
sending a longer than allowed session id in a response and including a
semicolon to change the maximum length. With this change, the parser
will never go beyond 512 bytes.
2019-03-14 10:24:30 +01:00
Guillaume Desmottes
2e939afd73 video-color: add more color primaries formats
They correspond to index 10, 11, 12 and 22 from ITU-T H.273,
Table 2 – Interpretation of colour primaries (ColourPrimaries) value
2019-03-12 16:53:54 +01:00
Nirbheek Chauhan
045137d340 glwindow/win32: Don't use condition variables for message synchronization
Using a single condition variable for synchronization across all GL
messages is very slow on Windows and uses up to 20% CPU usage in some
workloads due to lock contention and false broadcasts.

Using per-message event handles reduces the CPU usage to negligible
amounts despite having to allocate a new event handle for each
message.
2019-03-12 03:21:57 +00:00
Nirbheek Chauhan
36ec18c230 glmemory: Disable GL timing queries when debugging
This can be very expensive in some workloads, taking up to 11% of the
total execution time.
2019-03-12 03:21:57 +00:00
Nirbheek Chauhan
21bc1040d4 glframebuffer: Don't do expensive checks with low gst debug levels
Framebuffer checks can be very expensive, taking up to 3-5% of the
total CPU consumed by the application.
2019-03-12 03:21:57 +00:00
Lucas Stach
c71dd72b21 gl/wayland: fix glib mainloop integration
Implement the prepare and check functions according to the
documentation by returning TRUE when events should be dispatched
via the dispatch function.

As wl_display_read_events never blocks we can call it unconditionally
without looking at the poll status.

This simplifies the implementation and gets rid of a race where the
mainloop could get blocked due to nobody actually reading the events
from the wayland connection.
2019-03-11 13:54:16 +01:00
Tim-Philipp Müller
eed2e9d52b tests: audiodecoder: speed up audiodecoder_buffer_after_segment test
We're creating buffers with one sample here for some reason. The
actual value of the segment stop is irrelevant for what we're testing
here, so lower it to 10ms so that we create fewer buffers which speeds
things up on slow machines and in valgrind.
2019-03-09 17:17:11 +00:00
Mathieu Duponchelle
a35d500eae videoaggregator: fix buffer skipping with pad offsets
The ->skip_buffer implementation in videoaggregator replicates
the behaviour of the aggregate method to determine whether a
buffer can be skipped
(https://bugzilla.gnome.org/show_bug.cgi?id=781928).

This fixes a typo that made it so the start time of the buffer
was calculated against the output segment, not the segment of
the relevant sinkpad, which caused buffers to be skipped when
for example a sinkpad had received a segment which base had
been modified by a pad offset somewhere along the way.

This simply makes the calculation of the buffer start time
identical to the calculation in aggregate()
2019-03-08 07:40:25 +00:00
Matthew Waters
6a37bf9bb9 gl: Don't restore the viewport on function exit
Doing so involves retrieving the current viewport from OpenGL which as
with any glGet operation, is expensive.

This means that the various sinks need to reset the viewport on draw.

In the process, fix resizing on cocoa.
2019-03-08 17:49:05 +11:00
Thibault Saunier
7bcd72f5b6 Revert "Revert "discoverer: Serialize/load "next" StreamInfo in GVariants""
This reverts commit 747f5a75c3.

This was never meant to be reverted in the first place but sliped in
during developement
2019-03-07 19:52:44 -03:00
Thibault Saunier
0149f87626 tools:discoverer: Add an option to print the cache directory 2019-03-07 20:59:29 +00:00
Thibault Saunier
747f5a75c3 Revert "discoverer: Serialize/load "next" StreamInfo in GVariants"
This reverts commit 6ca357f5b67590c694a95013f5eb5fdd04cf46a9.
2019-03-07 20:59:29 +00:00
Thibault Saunier
19c86b4494 discoverer: Remove padding from private headers 2019-03-07 20:59:29 +00:00
Thibault Saunier
c8eee6f0c6 dicoverer: Do not add container infos to the stream list
They are not added on actual discovery

See https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/398
2019-03-07 20:59:29 +00:00
Thibault Saunier
4014995d0c discoverer: Serialize/load "next" StreamInfo in GVariants
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/398
2019-03-07 20:59:29 +00:00
Thibault Saunier
54920276b0 discoverer: Implement GstDiscovererInfo caching
This uses the gst_discoverer_info_from/to_variant API and saves
the variants on disc (in the user data cache dir) allowing much
faster retrieval of the information after the cache has been built.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/398
2019-03-07 20:59:29 +00:00
Olivier Crête
6a8c15f3bd video-aggregator: Sync property values to output timestamp
The properties need to be change at every output frame based on the output
time because they may change even though the input frame is not changing.
2019-03-07 14:43:06 -05:00
Matthew Waters
4e13980e10 gl: fix a few other leaks when not getting to PAUSED 2019-03-07 02:01:09 +11:00
Matthew Waters
86aa568383 glcolorconvert: Ensure we free the internal convert object
If we only ever make it to READY, transform_caps can create an
internal convert object that will never be freed by basetransform's
stop vmethod (PAUSED->READY).
2019-03-06 23:32:18 +11:00
Matthew Waters
d5b18ae58f tests/glbin: setting a full reference means we need to unref
Fixes the element leaks in the full variants of the glbin test.
2019-03-06 23:32:18 +11:00
Tim-Philipp Müller
273da3ed2f tests: vorbisec: fix leaks in unit test 2019-03-06 10:51:40 +00:00
Tim-Philipp Müller
9f664f62ee tests: glmatrix: fix leaks in unit test 2019-03-06 10:51:40 +00:00
Tim-Philipp Müller
afe5ed8ad7 tests: glmemory: fix leaks in unit test 2019-03-06 10:51:40 +00:00
Tim-Philipp Müller
82dc6a4858 tests: videoencoder: fix leaks in unit test 2019-03-06 10:51:40 +00:00
Tim-Philipp Müller
3221167750 tests: audio: fix leaks in unit test 2019-03-06 10:51:40 +00:00
Tim-Philipp Müller
6f6c73b223 tests: audiomixer: fix leaks in unit test 2019-03-06 10:51:40 +00:00
Tim-Philipp Müller
9854d5151a tests: audioconvert: fix leaks in unit test 2019-03-06 10:51:40 +00:00
Tim-Philipp Müller
d58b7cf75c gl: .gitignore generated wayland xdg shell files 2019-03-06 10:49:48 +00:00
Tim-Philipp Müller
81ccfdd6fd video: fix pipeline leak in gst_video_convert_sample_async() 2019-03-06 10:04:48 +00:00
Tim-Philipp Müller
50aa1622e1 vorbisdec: fix leak of header buffers
handle_header_buffer() does no take ownership of
the buffer passed.

Fixes leaks in various unit tests.
2019-03-06 09:14:46 +00:00
Matthew Waters
13fc711eca gloverlaycompositor: Also free the texcoord GL buffer
Fix a typo that was attempting to free the position GL buffer twice
(without any consequences as there was a if (buffer) check)

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/561
2019-03-06 01:08:04 +00:00
Tim-Philipp Müller
8d1122013b audiodecoder: add _finish_subframe() method
This allows us to output audio samples without discarding
any input frames, which is useful for some formats/codecs
(e.g. the MonkeysAudio decoder implementation in ffmpeg
which will might return e.g. 16 output buffers for an
input buffer for certain files).

In the past decoder implementations just concatenated
the returned audio buffers until a full frame had been
decoded, but that's no longer possible to do efficiently
when the decoder returns audio samples in non-interleaved
layout.

Allowing subframes to be output before the entire input
frame is decoded can also be useful to decrease startup
latency/delay.

https://gitlab.freedesktop.org/gstreamer/gst-libav/issues/49
2019-03-05 19:49:13 +00:00
Marc Leeman
2e5f5e67ce rtp: add H265 to lookup for media info 2019-03-05 14:33:17 +01:00
Nicolas Dufresne
3f3719da41 videooverlay: Fix render-rectangle range
The range was set to -1 to MAXINT, but the x,y value can be negative.
Relax the restriction so that we can now have negative coordinates.
2019-03-04 17:05:04 -05:00
Seungha Yang
541d598fad tests: audiorate: Don't compare string with enum
../subprojects/gst-plugins-base/tests/check/elements/audiorate.c(192): warning C4047

Meaningful validation at that point seems to checking output GstAudioFormat
of gst_audio_format_from_string()
2019-03-04 22:49:23 +09:00
Tim-Philipp Müller
be5ed3e964 Back to development 2019-03-04 09:05:02 +00:00
Tim-Philipp Müller
b0faf032d2 meson: subprojects: use gl-headers from gstreamer gitlab 2019-02-28 16:10:35 +00:00
Tim-Philipp Müller
a62f757647 meson: don't build icles when tests are disabled
They are manual tests, so let them be controlled
via the tests option.
2019-02-28 15:46:02 +00:00
Matthew Waters
55bcdcf01a gl: actually use the highp specifier
675415bf2e contained a typo that incorrectly
used the mediump specifier instead of highp.
2019-02-28 23:39:21 +11:00
Matthew Waters
675415bf2e gl: try to use highp precision where supported
The use of mediump as a specifier in GLSL shaders will have limited
resolution and when used as texture coordinates may become inaccurate
over texture sizes of 1024.
2019-02-28 17:26:32 +11:00
Tim-Philipp Müller
af17302526 Release 1.15.2 2019-02-26 11:43:44 +00:00
Tim-Philipp Müller
2864c635f7 Update docs 2019-02-26 11:43:42 +00:00
Tim-Philipp Müller
385027e4c5 Update translations 2019-02-26 11:43:41 +00:00
Vivia Nikolaidou
8ecc3b9730 videorate: Add max-duplication-time property
This will only duplicate buffers if the gap between two consecutive
buffers is up to fill-until nsec. If it's larger, it will only output
the new buffer and mark it as discont.
2019-02-21 15:50:55 +00:00
Nirbheek Chauhan
b5c44dd47e meson: Remove outdated msvc-specific disabling code
This was done ages ago when the meson build files were newly added
but now we do the appropriate disabling in Cerbero instead since this
does not apply to gst-build.

https://gitlab.freedesktop.org/gstreamer/cerbero/issues/121
2019-02-21 19:19:09 +05:30
Tim-Philipp Müller
a1d757b1ee tests: video: add basic sanity check of pstrides for formats
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/merge_requests/117
2019-02-20 09:49:26 +00:00