+
+# 1: short name
+# 2: description
+# 3: dependencies on other gstreamer libraries (short name)
+# 4: dependencies on other packages
+define GstBuildLibrary
+
+ GST_DEPENDS += +libgst$(1)
+
+ define Package/libgst$(1)
+ $(call Package/gstreamer/Default)
+ TITLE+= $(2) library (base)
+ DEPENDS+= +libgstreamer $$(foreach p,$(3),+libgst$$(p)) $(4)
+ endef
+
+ define Package/libgst$(1)/description
+ $(call Package/gstreamer/description/Default)
+ .
+ This package contains the GStreamer $(2) library.
+ endef
+
+ define Package/libgst$(1)/install
+ $(INSTALL_DIR) $$(1)/usr/lib
+ ( cd $(PKG_INSTALL_DIR); $(CP) \
+ ./usr/lib/libgst$(1)-$(GST_VERSION).so.* \
+ $$(1)/usr/lib/ \
+ )
+ endef
+
+ $$(eval $$(call BuildPackage,libgst$(1)))
+endef
+
+$(eval $(call GstBuildLibrary,app,app,,))
+$(eval $(call GstBuildLibrary,audio,audio,interfaces,))
+$(eval $(call GstBuildLibrary,cdda,CDDA,,))
+$(eval $(call GstBuildLibrary,fft,FFT,,))
+$(eval $(call GstBuildLibrary,interfaces,interfaces,))
+$(eval $(call GstBuildLibrary,netbuffer,network buffer,,))
+$(eval $(call GstBuildLibrary,pbutils,utils,,))
+$(eval $(call GstBuildLibrary,riff,RIFF media,audio tag,,))
+$(eval $(call GstBuildLibrary,rtp,RTP,,))
+$(eval $(call GstBuildLibrary,rtsp,RTSP,,))
+$(eval $(call GstBuildLibrary,sdp,SDP,,))
+$(eval $(call GstBuildLibrary,tag,tag support,,))
+$(eval $(call GstBuildLibrary,video,video,,))
+
+
+# 1: short name
+# 2: description
+# 3: dependencies on other gstreamer libraries (short name)
+# 4: dependencies on other gstreamer plugins (short name)
+# 5: dependencies on other packages
+define GstBuildPlugin
+
+ GST_DEPENDS += +gst-mod-$(1)
+
+ define Package/gst-mod-$(1)
+ $(call Package/gstreamer/Default)
+ TITLE+= $(2) plugin (base)
+ DEPENDS+= +libgstreamer $$(foreach p,$(3),+libgst$$(p)) $$(foreach p,$(4),+gst-mod-$$(p)) $(5)
+ endef
+
+ define Package/gst-mod-$(1)/description
+ $(call Package/gstreamer/description/Default)
+ .
+ This package contains the GStreamer $(2) plugin.
+ endef
+
+ define Package/gst-mod-$(1)/install
+ $(INSTALL_DIR) $$(1)/usr/lib/gstreamer-$(GST_VERSION)
+ ( cd $(PKG_INSTALL_DIR); $(CP) \
+ ./usr/lib/gstreamer-$(GST_VERSION)/libgst$(1).so* \
+ $$(1)/usr/lib/gstreamer-$(GST_VERSION)/ \
+ )
+ endef
+
+ $$(eval $$(call BuildPackage,gst-mod-$(1)))
+endef
+
+$(eval $(call GstBuildPlugin,alsa,ALSA,audio,,+alsa-lib))
+$(eval $(call GstBuildPlugin,app,app,app,,))
+$(eval $(call GstBuildPlugin,audioconvert,audio format conversion,audio,,))
+$(eval $(call GstBuildPlugin,audiorate,audio rate adjusting,,,))
+$(eval $(call GstBuildPlugin,audioresample,audio resampling,,,))
+$(eval $(call GstBuildPlugin,audiotestsrc,audio test,controller,,))
+$(eval $(call GstBuildPlugin,decodebin,media decoder,pbutils,,))
+$(eval $(call GstBuildPlugin,decodebin2,media decoder (v2),pbutils,,))
+$(eval $(call GstBuildPlugin,gio,GIO,,,))
+$(eval $(call GstBuildPlugin,ogg,Ogg,riff tag,,+libogg))
+$(eval $(call GstBuildPlugin,playbin,playback,interfaces pbutils,,))
+$(eval $(call GstBuildPlugin,tcp,TCP,dataprotocol,,))
+$(eval $(call GstBuildPlugin,theora,Theora,tag,ogg,+libtheora))
+$(eval $(call GstBuildPlugin,typefindfunctions,'typefind' functions,,,))
+$(eval $(call GstBuildPlugin,videotestsrc,video test,,,+liboil))
+$(eval $(call GstBuildPlugin,volume,volume,audio controller,,+liboil))
+$(eval $(call GstBuildPlugin,vorbis,Vorbis,audio tag,ogg,+libvorbis))
+