作者:敖滚
环境:debian linux 2.6.8 + Gstreamer0.10
1.1. 编写插件前的准备:
由于编写插件需要一定的格式,需要写一些固定 的函数和代码,所以为了方便,首先用cvs先从网上获取gstreamer插件的模板:
cvs -d:pserver:[email protected]/cvs/gstreamer login
CVS password: [ENTER]
cvs -z3 -d:pserver:[email protected]:/cvs/gstreamer co gst-template
获取成功后,在获取的文件夹gst-template/gst-template/gst-plugin/tools 目录下有一个shell:make_element,利用这个shell和目录gst-template/gst-plugin/src/下的gstplugin.*文件可以创建一个基本插件所需的代码,shell的使用方法如下:
./make_element <your plugin> ../src/ gstplugin
如果成功的话在当前目录下会出现两个c文件,名称为<your plugin>.c和<your plugin>.h,然后根 据你的需要在这两个文件的基础上编写你的插件
1.2. 编写Makefile:
从gstreamer的源代码目录中拷贝shell文件:libtool到你编写的插件目录,然后按照下面的格式编写Makefile文件,<>中为自己填写的内容,根据不同的需要在此基础上修改,(注意:1.1中根据模板生成的插件代码是不能直接编译通过的,需要自己进行 一些修改):
CFLAGS=$(shell pkg-config --cflags gstreamer-0.10) -DGST_PACKAGE='"GStreamer"' -DGST_ORIGIN='"http://gstreamer.net"' -DVERSION='"0.0"' -DHAVE_USER_MTU -Wall -Wimplicit -g
ur plugin>.c
<your_plugin_name>.la: <your_plugin_name>.lo
./libtool gcc --mode=link -module -avoid-version\
-rpath <your plugin directory>\
-export-symbols-regex gst_plugin_desc \
-o <your_plugin_name>.la \
<your_plugin_name>.lo \
$(pkg-config --libs gstreamer-0.10)
<your_plugin_name>.lo: <your_plugin_name>.c
./libtool --mode=compile gcc $(CFLAGS) -o <your_plugin_name>.lo -c <your_plugin_name>.c
.PHONY: install
install: <your_plugin_name>.la
./libtool --mode=install install <your_plugin_name>.la /usr/local/lib/gstreamer-0.10/
clean:
rm -rf *.o *.lo *.a *.la .libs
1.3. 编译并注册
编写完 makefile 之后,执行 make;make install 命令,成功后执行 gst-inspect <your plugin name> 就可以查到自己编写