Plugins GStreamer插件中未调用类型查找函数

Plugins GStreamer插件中未调用类型查找函数,plugins,types,find,gstreamer,Plugins,Types,Find,Gstreamer,我有一个解码媒体类型的元素,例如mytype。我想注册类型,以便decodebin元素可以在需要时使用我的元素。我添加了我认为可以工作的代码,但从未调用过我的type_find()函数。你知道我做错了什么吗?下面是代码的样子: #define MY_CAPS (gst_static_caps_get(&my_caps)) static GstStaticCaps my_caps = GST_STATIC_CAPS("audio/x-mycaps"); static gchar *my_

我有一个解码媒体类型的元素,例如mytype。我想注册类型,以便decodebin元素可以在需要时使用我的元素。我添加了我认为可以工作的代码,但从未调用过我的type_find()函数。你知道我做错了什么吗?下面是代码的样子:

#define MY_CAPS (gst_static_caps_get(&my_caps))

static GstStaticCaps my_caps = GST_STATIC_CAPS("audio/x-mycaps");
static gchar *my_exts[] = { "mtype", NULL };

static void type_find(GstTypeFind *_type_find, gpointer callback)
{
   printf("Type Find Function\r\n");
   gst_type_find_suggest(_type_find, GST_TYPE_FIND_POSSIBLE, gst_static_caps_get(&my_caps));
}

gboolean plugin_init(GstPlugin *plugin)
{
   if(!gst_type_find_register(plugin, "mytype", GST_RANK_PRIMARY, type_find, my_exts, MY_CAPS, NULL, NULL))
     return FALSE;

   if(!gst_element_register(plugin, "myelement", GST_RANK_PRIMARY, MY_ELEMENT_TYPE)
      return FALSE;

   return(TRUE);
}

这个元素注册了吗?您可以使用gst inspect进行检查?是的,元件工作并解码,必须注册。我尝试过使用GST\u plugin\u PATH=/PATH/to/my/plugin注册我的插件,也尝试过使用--GST plugin load=/PATH/to/my/plugin/pluginname.la,即使插件和元素都已注册,类型也不会以任何方式注册。