menuconfig BR2_PACKAGE_GST1_PLUGINS_BASE
	bool "gst1-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_GST1_PLUGINS_BASE

comment "dependency-less plugins"

config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_ADDER
	bool "adder"
	help
	  Adds multiple streams

config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_APP
	bool "app"
	help
	  Elements used to communicate with applications

config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIOCONVERT
	bool "audioconvert (mandatory for audio playback)"
	default y
	help
	  Convert audio to different formats

config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIORATE
	bool "audiorate"
	help
	  Adjusts audio frames

config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIOTESTSRC
	bool "audiotestsrc"
	help
	  Creates audio test signals of given frequency and volume

config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_ENCODING
	bool "encoding"
	help
	  various encoding-related elements

config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOCONVERT
	bool "videoconvert"
	help
	  Colorspace conversion

config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_GIO
	bool "gio"
	help
	  GIO elements

config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_PLAYBACK
	bool "playback"
	default y
	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_TYPEFIND
	help
	  various playback elements

config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIORESAMPLE
	bool "audioresample (mandatory for audio playback)"
	default y
	help
	  Resamples audio

config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_RAWPARSE
	bool "rawparse"
	help
	  Parses byte streams into raw frames

config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_SUBPARSE
	bool "subparse"
	help
	  Subtitle parsing

config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_TCP
	bool "tcp"
	help
	  transfer data over the network via TCP

config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_TYPEFIND
	bool "typefind"
	default y
	help
	  default typefind functions

config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOTESTSRC
	bool "videotestsrc"
	help
	  Creates a test video stream

config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEORATE
	bool "videorate"
	help
	  Adjusts video frames

config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOSCALE
	bool "videoscale (mandatory for video playback)"
	default y
	help
	  Resizes video

config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VOLUME
	bool "volume (mandatory for audio playback)"
	default y
	help
	  plugin for controlling audio volume

comment "plugins with external dependencies"

config BR2_PACKAGE_GST1_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
	select BR2_PACKAGE_ALSA_LIB_SEQ
	help
	  ALSA plugin library

config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_TREMOR
	bool "tremor"
	select BR2_PACKAGE_TREMOR
	help
	  Vorbis Tremor decoder

config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_OGG
	bool "ogg (*.ogg audio/video)"
	select BR2_PACKAGE_LIBOGG
	help
	  ogg stream manipulation (info about ogg: http://xiph.org)

config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_OPUS
	bool "opus"
	select BR2_PACKAGE_OPUS
	help
	  Opus codec for speech and audio.

config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_PANGO
	bool "pango font renderer"
	depends on BR2_INSTALL_LIBSTDCPP # pango -> freetype
	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pango -> harfbuzz
	select BR2_PACKAGE_PANGO
	help
	  Pango-based text rendering and overlay

comment "pango plugin needs a toolchain w/ C++"
	depends on !BR2_INSTALL_LIBSTDCPP
	depends on BR2_TOOLCHAIN_HAS_SYNC_4

config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_THEORA
	bool "theora (*.ogg video)"
	select BR2_PACKAGE_LIBTHEORA
	help
	  Theora plugin library

config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VORBIS
	bool "vorbis (*.ogg audio)"
	select BR2_PACKAGE_LIBVORBIS
	help
	  Vorbis plugin library

endif
