1. 插件编写的原则及文件目录分析

gstreamer的相关路径,有两个路径,如下所示:

 

fsl-release-bsp/build-x11/tmp/work/imx6qsabresd-poky-linux-gnueabi/gst1.0-fsl-plugin/4.0.8-r0/gst1.0-fsl-plugins-4.0.8

 

fsl-release-bsp/build-x11/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5

 

先来看第一个目录下面:

aclocal.m4  autom4te.cache  config.guess configure.ac    COPYING-LGPL-2.1  gstreamer-fsl.pc.in  libs      Makefile.am  NEWS     tools

AUTHORS     ChangeLog       config.sub    COPYING         depcomp           INSTALL              ltmain.sh  Makefile.in plugins

autogen.sh  compile         configure     COPYING-LGPL-2  ext-includes     install-sh           m4         missing      README

在plugins目录下面是所有的插件,如下:

aiurdemux  beepdec compositor  mp3enc  overlay_sink v4l2  videoconvert  vpu

这些目录里面是相关的插件源码。

在libs目录下面,是于插件源码相关的库函数:

allocator  device-2d gstimxcommon.h  gstsutils  Makefile.am Makefile.in overlaycompositionmeta v4l2_core  video-overlay  video-tsm

在插件编写的过程中,需要使用到libs里面提供的库函数。

 

比如在v4l2类的插件中,有sink,src插件,在编写这些插件的过程中需要使用libs/v4l2-core里面提供的库函数。所以,核心就是查看插件的源码及这些库函数文件。

 

 

以v4l2为例,先来看看这个文件夹下有几个文件:

gstimxv4l2allocator.cgstimxv4l2allocator.h gstimxv4l2plugin.c gstimxv4l2sink.c gstimxv4l2sink.hgstimxv4l2src.c gstimxv4l2src.h Makefile.am Makefile.in

 

这几个函数的框架是这样的: gstimxv4l2plugin.c作为主入口函数文件,这个文件中会将v4l2相关的插件,通过plugin_init函数注册到系统中。需要注意的是,通过查看上面几个文件,可以看到有sink,src, allocator相关的文件,但是 allocator并不是插件,在编写sink, src插件的时候,需要 allocator提供的函数。

 

1. 首先是plugin_init函数

在这个函数中,通过gst_element_register函数来向系统中注册插件,想要注册几个插件就需要调用几次这个函数。如:

 

static gboolean
plugin_init (GstPlugin * plugin)
{
  if (!gst_element_register (plugin, "imxv4l2sink", IMX_GST_PLUGIN_RANK,
        GST_TYPE_IMX_V4L2SINK))
    return FALSE;

  if (!gst_element_register (plugin, "imxv4l2src", IMX_GST_PLUGIN_RANK,
        GST_TYPE_IMX_V4L2SRC))
    return FALSE;

  return TRUE;
}

IMX_GST_PLUGIN_DEFINE (imxv4l2, "IMX SoC v4l2-based video source/sink", plugin_init);

 

之后就是具体查看每一个插件是怎么编写的了。

 

在编写插件的过程中,官方提供了一个工具来构建这个插件的基本框架,这个按照官方《插件编写手册》里面的操作即可。

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值