参考链接
配置步骤
步骤基本与《一步一步创建GStreamer插件(ZZ) 》中所描述的相同,这里做简要整理
1、获取创建插件的模板gst-template
如果没有安装git,则首先安装git:
sudo apt-get install git-core
再获取模板:
git clone git://anongit.freedesktop.org/gstreamer/gst-template.git
2、产生文件gstexamplefilter.c gstexamplefilter.h
进入目录gst-template/gst-plugin/src
cd gst-template/gst-plugin/src
../tools/make_element ExampleFilter
这里需要注意,我在windows下始终无法运行make_element,无论是cmd终端还是PowerShell,因此按照网上方法在windows中开启,具体流程参照win10上linux子系统的开启、升级及使用。开启Ubuntu终端后,windows下的盘符在更目录的mnt下。
之后使用也会遇到一些问题,这里罗列一下:
a) 开启的linux子系统是完全新系统,除了按照必要的包外,gstreamer也是需要在这里重新安装的;
b) Linux平台下,将Windows格式文本转换成Linux格式,第一步使用vim打开文件,然后控制模式下输入:
:set fileformat=unix
c) autoreconf: not found,编译wayland时候出现这样的错误提示 “autoreconf: not found”, “No package ‘libffi’ found” ,原因linux系统缺少autoreconf工具,安装此工具
sudo apt-get install autoconf automake libtool
sudo apt-get install libffi-dev
d) 解决configure.ac:172: error: possibly undefined macro: AC_MSG_ERROR,只需要
apt-get install pkg-config
Linux环境下编译(.so)
3、修改Makefile.am文件 (注意:是src目录下的 Makefile. am)
sudo gedit Makefile.am
plugin_LTLIBRARIES = libgstexamplefilter. la
######################################
libgstexamplefilter_la_SOURCES = gstexamplefilter.c
######################################
libgstexamplefilter_la_CFLAGS = $(GST_CFLAGS)
libgstexamplefilter_la_LIBADD = $(GST_LIBS)
libgstexamplefilter_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
libgstexamplefilter_la_LIBTOOLFLAGS = --tag=disable-static
######################################
noinst_HEADERS = gstexamplefilter.h
4、进入目录gst-template/gst-plugin,修改文件autogen.sh进入上一层目录
cd..
编辑autogen.sh文件:
sudo gedit autogen.sh
在autogen.sh的开始添加:
srcfile=src/gstexamplefilter.c
5、运行autogen. sh,产生Makefile文件
./autogen.sh
6、开始安装:
./configure
make
sudo make install
src/.libs中有libgstexamplefilter.la、libgstexamplefilter. so
7、将插件加入到gstreamer库中把libgstexamplefilter. la、libgstexamplefilter.so这两个文件拷贝到系统目录中/usr/lib/gstreamer-xxx
后续涉及到一些环境变量的设置以及缓存的更新,这部分我没测试过,需要的可以在看看参考文档进行测试。
Windows环境下编译(.dll)
Writing gstreamer plugins in windows中有回答,但文档链接打不开,主要提到的是1、Create a new GStreamer project in VS as explained in the docs;2、Add the template sources of gst-template。
Gstreamer详细指南-使用gst-template 创建最简单的插件中也有相关方法,但图片几乎都失效,但按照步骤做还是能完成的。
新建一个dll工程,忘记过程可以看看使用VS2015 创建C++动态链接库并调用,将gstbase.c和gstbase.h复制到base工程目录下;在gstbase.c的开头加上如下宏:
#define VERSION (“0.10.36”)
类似vs2010 gstreamer开发环境安装配置环境,也就是添加share\vs\2010\libs\gstreamer-1.0.prop属性表,然后编译这个工程;将生成的dll复制到 lib\gstreamer-1.0\下,执行bin\gst-inspect-1.0.exe看看你的插件有没有找到。