gstreamer支持多个软件平台,当gstreamer在移植到Android平台时,可以根据自己的需要自动生成Android.mk,所以编译起来非常方便,但有些包并不会自动生成Androd.mk,这里说一下如何根据我们的需要为某个模块生成需要的Android.mk,从而可以得到我们的模块。
目的:我想为Android利用gstreamer加入某个模块。
我们由网址(http://gstreamer.freedesktop.org/documentation/plugins.html) 知道我们需要那个模块,这里我需要gst-plugin-bad中的real,进入gst-plugin-bad/gst/real,我们可以看到一个Makefile.am文件,我们看到并没有Android.mk的依赖,模仿其他文件夹下的Makefile.am,我们将real下的Makefile.am加入Android.mk依赖,在Makefile.am中加入下面的依赖。
代码:
Android.mk: Makefile.am $(BUILT_SOURCES) androgenizer \ -:PROJECT libgstreal -:SHARED libgstreal \ -:TAGS eng debug \ -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \ -:SOURCES $(libgstreal_la_SOURCES) \ -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstreal_la_CFLAGS) \ -:LDFLAGS $(libgstreal_la_LDFLAGS) \ $(libgstreal_la_LIBADD) \ -ldl \ -:PASSTHROUGH LOCAL_ARM_MODE:=arm \ LOCAL_MODULE_PATH:='$$(TARGET_OUT)/lib/gstreamer-0.10' \ > $@
再修改gst-plugin-bad下的Android.mk文件
GST_PLUGINS_BAD_BUILT_SOURCES += gst/real/Android.mk \
最后加入:
-include $(GST_PLUGINS_BAD_TOP)/gst/real/Android.mk
再make gst-plugins-bad-configure,我们便可以在gst-plugin-bad/gst/real下生成一个Android.mk文件,不过这里的real要依赖其他的解码插件,这里只是列举生成Android.mk的方法。