类型查找功能GStreamer的插件不调用(Type Find Function Not Calle

2019-10-17 15:57发布

我有解码的媒体类型,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);
}
文章来源: Type Find Function Not Called in GStreamer Plugin