menuconfig BR2_PACKAGE_GST_PLUGINS_BASE
	bool "gst-plugins-base"
	select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7
	select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7
	select BR2_PACKAGE_XLIB_LIBXV if BR2_PACKAGE_XORG7
	help
	  A basic set of well-supported plug-ins for GStreamer.

	  http://gstreamer.freedesktop.org/

if BR2_PACKAGE_GST_PLUGINS_BASE

comment "dependency-less plugins"

config BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_ADDER
	bool "adder"

config BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_APP
	bool "app"

config BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_AUDIOCONVERT
	bool "audioconvert (mandatory for audio playback)"
	default y

config BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_AUDIORATE
	bool "audiorate"

config BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_AUDIORESAMPLE
	bool "audioresample (mandatory for audio playback)"
	default y

config BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_AUDIOTESTSRC
	bool "audiotestsrc"

config BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_ENCODING
	bool "encoding"

config BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_FFMPEGCOLORSPACE
	bool "ffmpegcolorspace (mandatory for video playback)"
	default y

config BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_GDP
	bool "gdp"

config BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_PLAYBACK
	bool "playback (mandatory)"
	default y

config BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_SUBPARSE
	bool "subparse"

config BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_TCP
	bool "tcp"

config BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_TYPEFIND
	bool "typefind (mandatory)"
	default y

config BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_VIDEOTESTSRC
	bool "videotestsrc"

config BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_VIDEORATE
	bool "videorate"

config BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_VIDEOSCALE
	bool "videoscale (mandatory for video playback)"
	default y

config BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_VOLUME
	bool "volume (mandatory for audio playback)"
	default y

comment "plugins with external dependencies (there may be more available)"

config BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_ALSA
	bool "alsa (mandatory for audio playback)"
	select BR2_PACKAGE_ALSA_LIB
	select BR2_PACKAGE_ALSA_LIB_MIXER
	select BR2_PACKAGE_ALSA_LIB_PCM

config BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_OGG
	bool "ogg (*.ogg audio/video)"
	select BR2_PACKAGE_LIBOGG

config BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_PANGO
	bool "pango font renderer"
	depends on BR2_INSTALL_LIBSTDCPP
	depends on BR2_USE_WCHAR # pango -> libglib2
	depends on BR2_TOOLCHAIN_HAS_THREADS # pango -> libglib2
	depends on BR2_USE_MMU # pango -> glib2
	select BR2_PACKAGE_PANGO

comment "pango plugin needs a toolchain w/ C++, wchar, threads"
	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
		!BR2_TOOLCHAIN_HAS_THREADS

config BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_THEORA
	bool "theora (*.ogg video)"
	select BR2_PACKAGE_LIBTHEORA

config BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_TREMOR
	bool "tremor"
	select BR2_PACKAGE_TREMOR

config BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_VORBIS
	bool "vorbis (*.ogg audio)"
	select BR2_PACKAGE_LIBVORBIS

endif
