<div dir="ltr">Hi dev.<br>Now I'm trying to change framerate of rtsp stream on runtime.<br>My test pipeline is like below.<br><br>rtspsrc ! depayloader ! decoder ! videorate ! video/x-raw,framerate=15/1 ! f.sink_1 \<br>rtspsrc ! depayloader ! decoder ! videorate ! video/x-raw,framerate=15/1 ! f.sink_2 \<div>funnel name=f ! videoscale ! videoconvert ! video/x-raw,width=640,height=384,format=RGB ! tensor_converter ! fakesink<br><br>After running pipeline 20sec,<br>I changed two capsfilter "video/x-raw,framerate=15/1" to "video/x-raw,framerate=1/1".<br>Other elements reconfigured well after changing capsfilter, But the third party plugin element "tensor_converter" doesn't perform reconfiguring process.<br><br>By tracing logs of tensor_conveter, I saw that tensor_converter get sink_query from capsfilter as framerate 1/1 but, cannot make any intersected caps.<br>below lines are part of source code of tensor_converter.<br>```<br>static GstCaps *<br>gst_tensor_converter_query_caps (GstTensorConverter * self, GstPad * pad,<br>    GstCaps * filter)<br>{<br>  GstCaps *caps;<br>  caps = gst_pad_get_current_caps (pad);<br><br>  if (!caps) {<br>    caps = gst_pad_get_pad_template_caps (pad);<br>  }<br><br>  if (pad == self->sinkpad) {<br>    GstCaps *media_caps;<br><br>    media_caps = gst_tensor_converter_get_possible_media_caps (self);<br>    if (media_caps) {<br>      /* intersect with pad caps */<br>      GstCaps *tmp = gst_caps_intersect_full (media_caps, caps,<br>          GST_CAPS_INTERSECT_FIRST);<br>      gst_caps_unref (caps);<br>      caps = tmp;<br><br>      gst_caps_unref (media_caps);<br>    }<br>  }<br><br>  silent_debug_caps (self, caps, "caps");<br>  silent_debug_caps (self, filter, "filter");<br><br>  if (filter) {<br>    GstCaps *intersection;<br>    intersection =<br>        gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST);<br><br>    gst_caps_unref (caps);<br>    caps = intersection;<br>  }<br><br>  silent_debug_caps (self, caps, "result");<br>  return caps;<br>}<br>```<br>log says  caps = gst_pad_get_current_caps (pad); return old caps<br>and media_caps = NULL, filter = new_caps<br>and then gst_caps_intersect_full return EMPTY.<br><br>So I wonder what should I do to change caps.<br><br></div><div>And Is there any other examples of caps negotiation?<br>I'm trying to trace negotiation call stacks but It little bit confusing me.<br><br>Regards.</div></div>