gstreamer将不同的接收器/源上限链接到插件

gstreamer将不同的接收器/源上限链接到插件,gstreamer,Gstreamer,我有一个插件,可以处理原始视频,并可以在工作中调整它的大小。 这个插件有两个(兼容)视频输入和一个视频输出。 输入和输出的上限可能不同 但当我尝试在接收器和源端使用不同的封盖时,它无法链接 例子 这很有效 gst-launch-1.0 videotestsrc ! video/x-raw,format=BGR,width=800,height=600 ! my_plugin name=t ! video/x-raw,format=BGR,width=800,height=600 ! fakesi

我有一个插件,可以处理原始视频,并可以在工作中调整它的大小。 这个插件有两个(兼容)视频输入和一个视频输出。 输入和输出的上限可能不同

但当我尝试在接收器和源端使用不同的封盖时,它无法链接

例子

这很有效

gst-launch-1.0 videotestsrc ! video/x-raw,format=BGR,width=800,height=600 ! my_plugin name=t ! video/x-raw,format=BGR,width=800,height=600 ! fakesink videotestsrc ! video/x-raw,format=BGR,width=800,height=600 ! t.
但事实并非如此。[警告:错误管道:无法将t链接到fakesink0]

gst-launch-1.0 videotestsrc ! video/x-raw,format=BGR,width=800,height=600 ! my_plugin make_small=1 name=t ! video/x-raw,format=BGR,width=750,height=600 ! fakesink videotestsrc ! video/x-raw,format=BGR,width=800,height=600 ! t.
我阅读了
docs/design/draft klass.txt
,查看了videoscale插件说明,并更改了我的插件说明,如

Factory Details:
  ..
  Klass                    Mixer/Effect/Converter/Video/Scaler
  ..
但它仍然不起作用。我想念什么


编辑。我的问题是因为对所有接收器/源电极使用了
GST\u PAD\u SET\u PROXY\u CAPS()
。根据该函数简化事件管理并保证这些CAP兼容。

使用
GST\u PAD\u SET\u PROXY\u caps()
是一个答案。

回答您自己的问题是可以的,但您应该编辑答案,使其足够完整,以便对可能有相同问题的其他人很容易有用。对此表示抱歉。现在可以了吗?