Framerate caps seems don't work with gltestsrc

Hello.

Please look at this piece of code…

//...

//src = gst_element_factory_make("videotestsrc", NULL);
src = gst_element_factory_make("gltestsrc", NULL);
fpssink = gst_element_factory_make("fpsdisplaysink", NULL);

pipeline = gst_pipeline_new("main-pipeline");
gst_bin_add_many(GST_BIN(data.pipeline), src, fpssink, NULL);

video_caps = gst_caps_from_string("video/x-raw, framerate=120/1"); // Fail on any framerate
g_assert(gst_element_link_filtered(src, fpssink, video_caps));

Assertion on last line will fail. But if i change src to videotestsrc then it will work just as needed. FPS will be limited to value from caps filter.

part of debug log

0:00:00.412195194 732430 0x561318e95220 DEBUG GST_ELEMENT_FACTORY gstelementfactory.c:523:gst_element_factory_create_with_properties: created element “capsfilter”
0:00:00.412200829 732430 0x561318e95220 INFO GST_STATES gstbin.c:2070:gst_bin_get_state_func: getting state
0:00:00.412207623 732430 0x561318e95220 DEBUG GST_STATES gstelement.c:2504:gst_element_get_state_func: getting state, timeout 0:00:00.000000000
0:00:00.412212564 732430 0x561318e95220 DEBUG GST_STATES gstelement.c:2516:gst_element_get_state_func: RETURN is SUCCESS
0:00:00.412217695 732430 0x561318e95220 DEBUG GST_STATES gstelement.c:2583:gst_element_get_state_func: state current: NULL, pending: VOID_PENDING, result: SUCCESS
0:00:00.412222403 732430 0x561318e95220 DEBUG GST_PARENTAGE gstbin.c:1525:gst_bin_add: adding element capsfilter0 to bin main-pipeline
0:00:00.412227119 732430 0x561318e95220 DEBUG bin gstbin.c:1167:gst_bin_add_func: element :capsfilter0
0:00:00.412231880 732430 0x561318e95220 DEBUG GST_REFCOUNTING gstobject.c:710:gst_object_set_parent: set parent (ref and sink)
0:00:00.412236877 732430 0x561318e95220 DEBUG GST_PARENTAGE gstelement.c:3495:gst_element_set_bus_func: setting bus to 0x561319868360
0:00:00.412243665 732430 0x561318e95220 DEBUG GST_CLOCK gstelement.c:501:gst_element_set_base_time: set base_time=0:00:00.000000000, old 0:00:00.000000000
0:00:00.412249699 732430 0x561318e95220 DEBUG GST_CLOCK gstelement.c:563:gst_element_set_start_time: set start_time=0:00:00.000000000, old 0:00:00.000000000
0:00:00.412254146 732430 0x561318e95220 DEBUG GST_CLOCK gstelement.c:442:gst_element_set_clock: setting clock (nil)
0:00:00.412259009 732430 0x561318e95220 DEBUG bin gstbin.c:1279:gst_bin_add_func: added SUCCESS element
0:00:00.412265243 732430 0x561318e95220 DEBUG GST_PARENTAGE gstbin.c:1363:gst_bin_add_func: added element “capsfilter0”
0:00:00.412273578 732430 0x561318e95220 DEBUG GST_STATES gstelement.c:2974:gst_element_set_state_func: set_state to NULL
0:00:00.412278934 732430 0x561318e95220 DEBUG GST_STATES gstelement.c:3008:gst_element_set_state_func: current NULL, old_pending VOID_PENDING, next VOID_PENDING, old return SUCCESS
0:00:00.412283742 732430 0x561318e95220 DEBUG GST_STATES gstelement.c:3044:gst_element_set_state_func: final: setting state from NULL to NULL
0:00:00.412288858 732430 0x561318e95220 DEBUG GST_STATES gstelement.c:3362:gst_element_change_state_func: element is already in the NULL state
0:00:00.412292815 732430 0x561318e95220 DEBUG GST_STATES gstelement.c:3135:gst_element_change_state: element changed state SUCCESS
0:00:00.412297155 732430 0x561318e95220 INFO GST_STATES gstelement.c:2823:gst_element_continue_state: completed state change to NULL
0:00:00.412302087 732430 0x561318e95220 DEBUG GST_STATES gstelement.c:3058:gst_element_set_state_func: returned SUCCESS
0:00:00.412312081 732430 0x561318e95220 DEBUG capsfilter gstcapsfilter.c:217:gst_capsfilter_set_property: set new caps video/x-raw, framerate=(fraction)120/1
0:00:00.412316974 732430 0x561318e95220 INFO GST_EVENT gstevent.c:1654:gst_event_new_reconfigure: creating reconfigure event
0:00:00.412322634 732430 0x561318e95220 DEBUG GST_EVENT gstevent.c:336:gst_event_new_custom: creating new event 0x561319a81810 reconfigure 61441
0:00:00.412327367 732430 0x561318e95220 DEBUG GST_PADS gstpad.c:5724:gst_pad_push_event_unchecked:capsfilter0:sink We’re flushing
0:00:00.412331566 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:2842:gst_base_transform_reconfigure_sink: Renegotiate event wasn’t handled
0:00:00.412338464 732430 0x561318e95220 INFO GST_ELEMENT_PADS gstutils.c:1818:gst_element_link_pads_full: trying to link element gltestsrc0:(any) to element capsfilter0:sink
0:00:00.412343881 732430 0x561318e95220 INFO GST_ELEMENT_PADS gstelement.c:1015:gst_element_get_static_pad: found pad capsfilter0:sink
0:00:00.412347904 732430 0x561318e95220 DEBUG GST_ELEMENT_PADS gstutils.c:1927:gst_element_link_pads_full: looping through allowed src and dest pads
0:00:00.412352236 732430 0x561318e95220 DEBUG GST_ELEMENT_PADS gstutils.c:1930:gst_element_link_pads_full: trying src pad gltestsrc0:src
0:00:00.412356960 732430 0x561318e95220 INFO GST_PADS gstutils.c:1634:prepare_link_maybe_ghosting: gltestsrc0 and capsfilter0 in same bin, no need for ghost pads
0:00:00.412375091 732430 0x561318e95220 DEBUG GST_BUS gstbus.c:339:gst_bus_post: [msg 0x561319b11bd0] posting on bus structure-change message: 0x561319b11bd0, time 99:99:99.999999999, seq-num 24, element ‘sink’, GstMessageStructureChange, type=(GstStructureChangeType)link, owner=(GstElement)“(GstGLTestSrc)\ gltestsrc0”, busy=(boolean)true;
0:00:00.412383509 732430 0x561318e95220 DEBUG bin gstbin.c:3704:gst_bin_handle_message_func: [msg 0x561319b11bd0] handling child sink message of type structure-change
0:00:00.412389295 732430 0x561318e95220 DEBUG bin gstbin.c:882:find_message: no message found matching types 00001000
0:00:00.412393352 732430 0x561318e95220 DEBUG bin gstbin.c:889:find_message: structure-change
0:00:00.412398073 732430 0x561318e95220 DEBUG bin gstbin.c:928:bin_replace_message: got new message 0x561319b11bd0, structure-change from sink
0:00:00.412402309 732430 0x561318e95220 DEBUG GST_BUS gstbus.c:381:gst_bus_post: [msg 0x561319b11bd0] dropped
0:00:00.412407607 732430 0x561318e95220 INFO GST_PADS gstpad.c:2449:gst_pad_link_prepare: trying to link gltestsrc0:src and capsfilter0:sink
0:00:00.412412768 732430 0x561318e95220 DEBUG GST_CAPS gstutils.c:3113:gst_pad_query_caps:gltestsrc0:src get pad caps with filter (NULL)
0:00:00.412418421 732430 0x561318e95220 DEBUG query gstquery.c:672:gst_query_new_custom: creating new query 0x561319b1f740 caps
0:00:00.412423584 732430 0x561318e95220 DEBUG GST_PADS gstpad.c:4269:gst_pad_query:gltestsrc0:src doing query 0x561319b1f740 (caps)
0:00:00.412430739 732430 0x561318e95220 DEBUG basesrc gstbasesrc.c:1405:gst_base_src_default_query: query caps returns 1
0:00:00.412435871 732430 0x561318e95220 DEBUG GST_PADS gstpad.c:4292:gst_pad_query:gltestsrc0:src sent query 0x561319b1f740 (caps), result 1
0:00:00.412445092 732430 0x561318e95220 DEBUG GST_CAPS gstutils.c:3120:gst_pad_query_caps:gltestsrc0:src query returned video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], texture-target=(string)2D
0:00:00.412451303 732430 0x561318e95220 DEBUG GST_CAPS gstutils.c:3113:gst_pad_query_caps:capsfilter0:sink get pad caps with filter (NULL)
0:00:00.412456059 732430 0x561318e95220 DEBUG query gstquery.c:672:gst_query_new_custom: creating new query 0x561319b1f740 caps
0:00:00.412460580 732430 0x561318e95220 DEBUG GST_PADS gstpad.c:4269:gst_pad_query:capsfilter0:sink doing query 0x561319b1f740 (caps)
0:00:00.421258567 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:678:gst_base_transform_query_caps:capsfilter0:sink peer filter caps (NULL)
0:00:00.421271514 732430 0x561318e95220 DEBUG GST_CAPS gstutils.c:3159:gst_pad_peer_query_caps:capsfilter0:src get pad peer caps with filter (NULL)
0:00:00.421284560 732430 0x561318e95220 DEBUG query gstquery.c:672:gst_query_new_custom: creating new query 0x561319b21670 caps
0:00:00.421302147 732430 0x561318e95220 DEBUG GST_PADS gstpad.c:4401:gst_pad_peer_query:capsfilter0:src peer query 0x561319b21670 (caps)
0:00:00.421307681 732430 0x561318e95220 INFO GST_PADS gstpad.c:4458:gst_pad_peer_query:capsfilter0:src pad has no peer
0:00:00.421314912 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:687:gst_base_transform_query_caps:capsfilter0:sink peer caps ANY
0:00:00.421319880 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:690:gst_base_transform_query_caps:capsfilter0:sink other template ANY
0:00:00.421324460 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:692:gst_base_transform_query_caps:capsfilter0:sink intersected ANY
0:00:00.421329504 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:471:gst_base_transform_transform_caps: transform caps (direction = 1)
0:00:00.421335147 732430 0x561318e95220 DEBUG capsfilter gstcapsfilter.c:301:gst_capsfilter_transform_caps: input: ANY
0:00:00.421339686 732430 0x561318e95220 DEBUG capsfilter gstcapsfilter.c:302:gst_capsfilter_transform_caps: filter: (NULL)
0:00:00.421347505 732430 0x561318e95220 DEBUG capsfilter gstcapsfilter.c:303:gst_capsfilter_transform_caps: caps filter: video/x-raw, framerate=(fraction)120/1
0:00:00.421352641 732430 0x561318e95220 DEBUG capsfilter gstcapsfilter.c:305:gst_capsfilter_transform_caps: intersect: video/x-raw, framerate=(fraction)120/1
0:00:00.421357737 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:498:gst_base_transform_transform_caps: to: video/x-raw, framerate=(fraction)120/1
0:00:00.421362726 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:700:gst_base_transform_query_caps:capsfilter0:sink transformed video/x-raw, framerate=(fraction)120/1
0:00:00.421367659 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:707:gst_base_transform_query_caps:capsfilter0:sink our template ANY
0:00:00.421372817 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:710:gst_base_transform_query_caps:capsfilter0:sink intersected video/x-raw, framerate=(fraction)120/1
0:00:00.421377960 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:734:gst_base_transform_query_caps: returning video/x-raw, framerate=(fraction)120/1
0:00:00.421394002 732430 0x561318e95220 DEBUG GST_PADS gstpad.c:4292:gst_pad_query:capsfilter0:sink sent query 0x561319b1f740 (caps), result 1
0:00:00.421399658 732430 0x561318e95220 DEBUG GST_CAPS gstutils.c:3120:gst_pad_query_caps:capsfilter0:sink query returned video/x-raw, framerate=(fraction)120/1
0:00:00.421410090 732430 0x561318e95220 DEBUG GST_CAPS gstpad.c:2299:gst_pad_link_check_compatible_unlocked:gltestsrc0:src src caps video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], texture-target=(string)2D
0:00:00.421417764 732430 0x561318e95220 DEBUG GST_CAPS gstpad.c:2301:gst_pad_link_check_compatible_unlocked:capsfilter0:sink sink caps video/x-raw, framerate=(fraction)120/1
0:00:00.421422673 732430 0x561318e95220 DEBUG GST_CAPS gstpad.c:2319:gst_pad_link_check_compatible_unlocked: caps are not compatible
0:00:00.421427042 732430 0x561318e95220 INFO GST_PADS gstpad.c:2462:gst_pad_link_prepare: caps are incompatible
0:00:00.421433552 732430 0x561318e95220 INFO GST_PADS gstpad.c:2572:gst_pad_link_full: link between gltestsrc0:src and capsfilter0:sink failed: no common format
0:00:00.421454707 732430 0x561318e95220 DEBUG GST_BUS gstbus.c:339:gst_bus_post: [msg 0x561319b21670] posting on bus structure-change message: 0x561319b21670, time 99:99:99.999999999, seq-num 25, element ‘sink’, GstMessageStructureChange, type=(GstStructureChangeType)link, owner=(GstElement)“(GstGLTestSrc)\ gltestsrc0”, busy=(boolean)false;
0:00:00.421463792 732430 0x561318e95220 DEBUG bin gstbin.c:3704:gst_bin_handle_message_func: [msg 0x561319b21670] handling child sink message of type structure-change
0:00:00.421471634 732430 0x561318e95220 DEBUG bin gstbin.c:956:bin_remove_messages:capsfilter0:sink deleting message 0x561319b11bd0 of type structure-change (types 0x00001000)
0:00:00.421478459 732430 0x561318e95220 DEBUG GST_BUS gstbus.c:381:gst_bus_post: [msg 0x561319b21670] dropped
0:00:00.421484470 732430 0x561318e95220 DEBUG GST_ELEMENT_PADS gstutils.c:1993:gst_element_link_pads_full: trying dest pad capsfilter0:sink
0:00:00.421489600 732430 0x561318e95220 DEBUG GST_ELEMENT_PADS gstutils.c:1148:gst_element_get_compatible_pad: finding pad compatible with capsfilter0:sink
0:00:00.421497192 732430 0x561318e95220 INFO GST_PADS gstutils.c:1079:gst_pad_check_link: trying to link gltestsrc0:src and capsfilter0:sink
0:00:00.421502254 732430 0x561318e95220 DEBUG GST_CAPS gstutils.c:3113:gst_pad_query_caps:capsfilter0:sink get pad caps with filter (NULL)
0:00:00.421507532 732430 0x561318e95220 DEBUG query gstquery.c:672:gst_query_new_custom: creating new query 0x561319b2b300 caps
0:00:00.421512964 732430 0x561318e95220 DEBUG GST_PADS gstpad.c:4269:gst_pad_query:capsfilter0:sink doing query 0x561319b2b300 (caps)
0:00:00.421517816 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:678:gst_base_transform_query_caps:capsfilter0:sink peer filter caps (NULL)
0:00:00.421522469 732430 0x561318e95220 DEBUG GST_CAPS gstutils.c:3159:gst_pad_peer_query_caps:capsfilter0:src get pad peer caps with filter (NULL)
0:00:00.421527831 732430 0x561318e95220 DEBUG query gstquery.c:672:gst_query_new_custom: creating new query 0x561319b2b010 caps
0:00:00.421532881 732430 0x561318e95220 DEBUG GST_PADS gstpad.c:4401:gst_pad_peer_query:capsfilter0:src peer query 0x561319b2b010 (caps)
0:00:00.421537415 732430 0x561318e95220 INFO GST_PADS gstpad.c:4458:gst_pad_peer_query:capsfilter0:src pad has no peer
0:00:00.421542320 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:687:gst_base_transform_query_caps:capsfilter0:sink peer caps ANY
0:00:00.421546694 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:690:gst_base_transform_query_caps:capsfilter0:sink other template ANY
0:00:00.421550974 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:692:gst_base_transform_query_caps:capsfilter0:sink intersected ANY
0:00:00.421555638 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:471:gst_base_transform_transform_caps: transform caps (direction = 1)
0:00:00.421560109 732430 0x561318e95220 DEBUG capsfilter gstcapsfilter.c:301:gst_capsfilter_transform_caps: input: ANY
0:00:00.421564483 732430 0x561318e95220 DEBUG capsfilter gstcapsfilter.c:302:gst_capsfilter_transform_caps: filter: (NULL)
0:00:00.421569483 732430 0x561318e95220 DEBUG capsfilter gstcapsfilter.c:303:gst_capsfilter_transform_caps: caps filter: video/x-raw, framerate=(fraction)120/1
0:00:00.421574423 732430 0x561318e95220 DEBUG capsfilter gstcapsfilter.c:305:gst_capsfilter_transform_caps: intersect: video/x-raw, framerate=(fraction)120/1
0:00:00.421579258 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:498:gst_base_transform_transform_caps: to: video/x-raw, framerate=(fraction)120/1
0:00:00.421584388 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:700:gst_base_transform_query_caps:capsfilter0:sink transformed video/x-raw, framerate=(fraction)120/1
0:00:00.421588748 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:707:gst_base_transform_query_caps:capsfilter0:sink our template ANY
0:00:00.421593648 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:710:gst_base_transform_query_caps:capsfilter0:sink intersected video/x-raw, framerate=(fraction)120/1
0:00:00.421598869 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:734:gst_base_transform_query_caps: returning video/x-raw, framerate=(fraction)120/1
0:00:00.421604755 732430 0x561318e95220 DEBUG GST_PADS gstpad.c:4292:gst_pad_query:capsfilter0:sink sent query 0x561319b2b300 (caps), result 1
0:00:00.421609542 732430 0x561318e95220 DEBUG GST_CAPS gstutils.c:3120:gst_pad_query_caps:capsfilter0:sink query returned video/x-raw, framerate=(fraction)120/1
0:00:00.421613770 732430 0x561318e95220 DEBUG GST_CAPS gstutils.c:3113:gst_pad_query_caps:gltestsrc0:src get pad caps with filter (NULL)
0:00:00.421618560 732430 0x561318e95220 DEBUG query gstquery.c:672:gst_query_new_custom: creating new query 0x561319b2a610 caps
0:00:00.421623089 732430 0x561318e95220 DEBUG GST_PADS gstpad.c:4269:gst_pad_query:gltestsrc0:src doing query 0x561319b2a610 (caps)
0:00:00.421630186 732430 0x561318e95220 DEBUG basesrc gstbasesrc.c:1405:gst_base_src_default_query: query caps returns 1
0:00:00.421638566 732430 0x561318e95220 DEBUG GST_PADS gstpad.c:4292:gst_pad_query:gltestsrc0:src sent query 0x561319b2a610 (caps), result 1
0:00:00.421646227 732430 0x561318e95220 DEBUG GST_CAPS gstutils.c:3120:gst_pad_query_caps:gltestsrc0:src query returned video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], texture-target=(string)2D
0:00:00.421652704 732430 0x561318e95220 DEBUG GST_ELEMENT_PADS gstutils.c:1216:gst_element_get_compatible_pad: incompatible pads
0:00:00.421656922 732430 0x561318e95220 DEBUG GST_ELEMENT_PADS gstutils.c:1223:gst_element_get_compatible_pad: unreffing pads
0:00:00.421662357 732430 0x561318e95220 DEBUG GST_ELEMENT_PADS gstutils.c:1244:gst_element_get_compatible_pad: Could not find a compatible unlinked always pad to link to capsfilter0:sink, now checking request pads
0:00:00.421669012 732430 0x561318e95220 DEBUG GST_CAPS gstutils.c:3113:gst_pad_query_caps:capsfilter0:sink get pad caps with filter (NULL)
0:00:00.421674084 732430 0x561318e95220 DEBUG query gstquery.c:672:gst_query_new_custom: creating new query 0x561319b1f740 caps
0:00:00.421679100 732430 0x561318e95220 DEBUG GST_PADS gstpad.c:4269:gst_pad_query:capsfilter0:sink doing query 0x561319b1f740 (caps)
0:00:00.421683667 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:678:gst_base_transform_query_caps:capsfilter0:sink peer filter caps (NULL)
0:00:00.421688461 732430 0x561318e95220 DEBUG GST_CAPS gstutils.c:3159:gst_pad_peer_query_caps:capsfilter0:src get pad peer caps with filter (NULL)
0:00:00.421693491 732430 0x561318e95220 DEBUG query gstquery.c:672:gst_query_new_custom: creating new query 0x561319b2ad40 caps
0:00:00.421698245 732430 0x561318e95220 DEBUG GST_PADS gstpad.c:4401:gst_pad_peer_query:capsfilter0:src peer query 0x561319b2ad40 (caps)
0:00:00.421702754 732430 0x561318e95220 INFO GST_PADS gstpad.c:4458:gst_pad_peer_query:capsfilter0:src pad has no peer
0:00:00.421707285 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:687:gst_base_transform_query_caps:capsfilter0:sink peer caps ANY
0:00:00.421711695 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:690:gst_base_transform_query_caps:capsfilter0:sink other template ANY
0:00:00.421715917 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:692:gst_base_transform_query_caps:capsfilter0:sink intersected ANY
0:00:00.421720193 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:471:gst_base_transform_transform_caps: transform caps (direction = 1)
0:00:00.421724686 732430 0x561318e95220 DEBUG capsfilter gstcapsfilter.c:301:gst_capsfilter_transform_caps: input: ANY
0:00:00.421728837 732430 0x561318e95220 DEBUG capsfilter gstcapsfilter.c:302:gst_capsfilter_transform_caps: filter: (NULL)
0:00:00.421733867 732430 0x561318e95220 DEBUG capsfilter gstcapsfilter.c:303:gst_capsfilter_transform_caps: caps filter: video/x-raw, framerate=(fraction)120/1
0:00:00.421738572 732430 0x561318e95220 DEBUG capsfilter gstcapsfilter.c:305:gst_capsfilter_transform_caps: intersect: video/x-raw, framerate=(fraction)120/1
0:00:00.421743342 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:498:gst_base_transform_transform_caps: to: video/x-raw, framerate=(fraction)120/1
0:00:00.421748220 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:700:gst_base_transform_query_caps:capsfilter0:sink transformed video/x-raw, framerate=(fraction)120/1
0:00:00.421752552 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:707:gst_base_transform_query_caps:capsfilter0:sink our template ANY
0:00:00.421757275 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:710:gst_base_transform_query_caps:capsfilter0:sink intersected video/x-raw, framerate=(fraction)120/1
0:00:00.421762086 732430 0x561318e95220 DEBUG basetransform gstbasetransform.c:734:gst_base_transform_query_caps: returning video/x-raw, framerate=(fraction)120/1
0:00:00.421767774 732430 0x561318e95220 DEBUG GST_PADS gstpad.c:4292:gst_pad_query:capsfilter0:sink sent query 0x561319b1f740 (caps), result 1
0:00:00.421772930 732430 0x561318e95220 DEBUG GST_CAPS gstutils.c:3120:gst_pad_query_caps:capsfilter0:sink query returned video/x-raw, framerate=(fraction)120/1
0:00:00.421808100 732430 0x561318e95220 DEBUG GST_ELEMENT_PADS gstutils.c:943:gst_element_get_compatible_pad_template: Looking for a suitable pad template in gltestsrc0 out of 1 templates…
0:00:00.421813092 732430 0x561318e95220 DEBUG GST_CAPS gstutils.c:958:gst_element_get_compatible_pad_template: compatible direction: found src pad template “src”
0:00:00.421818391 732430 0x561318e95220 DEBUG GST_CAPS gstutils.c:963:gst_element_get_compatible_pad_template: intersecting video/x-raw, framerate=(fraction)120/1
0:00:00.421824785 732430 0x561318e95220 DEBUG GST_CAPS gstutils.c:965:gst_element_get_compatible_pad_template: ..and video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], texture-target=(string)2D
0:00:00.421831115 732430 0x561318e95220 DEBUG GST_CAPS gstutils.c:971:gst_element_get_compatible_pad_template: caps are not compatible
0:00:00.421835403 732430 0x561318e95220 DEBUG GST_ELEMENT_PADS gstutils.c:986:gst_element_get_compatible_pad_template: No compatible pad template found
0:00:00.421842430 732430 0x561318e95220 INFO GST_ELEMENT_PADS gstutils.c:1270:gst_element_get_compatible_pad: Could not find a compatible pad to link to capsfilter0:sink
0:00:00.421847720 732430 0x561318e95220 DEBUG GST_ELEMENT_PADS gstutils.c:2028:gst_element_link_pads_full: no link possible from gltestsrc0 to capsfilter0:sink

Can somebody explain why?

gltestsrc will output caps with a feature which is not compatible with video/x-raw caps (interpreted as having a feature of memory:SystemMemory). You need to either use video/x-raw(ANY) or video/x-raw(memory:GLMemory). Look at the gst-inspect-1.0 gltestsrc output for details or the documentation on GstCapsFeatures: GstCapsFeatures