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.

	  https://gstreamer.freedesktop.org/

if BR2_PACKAGE_GST1_PLUGINS_BASE

config BR2_PACKAGE_GST1_PLUGINS_BASE_INSTALL_TOOLS
	bool "install tools"
	help
	  Install the gst-discoverer, gst-device-monitor and gst-play
	  tools.

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_AUDIOMIXER
	bool "audiomixer"
	help
	  Audio mixer plugin

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_COMPOSITOR
	bool "compositor"
	help
	  Video compositor plugin

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_GIO_TYPEFINDER
	bool "gio-typefinder"
	help
	  GIO typefinder elements

config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_OVERLAYCOMPOSITION
	bool "overlaycomposition"
	help
	  Overlaycomposition plugin.

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"

menuconfig BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL
	bool "opengl"
	depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBGLES

if BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL

config BR2_PACKAGE_GST1_PLUGINS_BASE_HAS_LIB_OPENGL
	def_bool BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_WINDOW

comment "The opengl library needs an API, a platform and a window system"
	depends on !BR2_PACKAGE_GST1_PLUGINS_BASE_HAS_LIB_OPENGL

comment "APIs"

config BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_API
	bool

config BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_OPENGL
	bool "opengl"
	default y
	depends on BR2_PACKAGE_HAS_LIBGL
	select BR2_PACKAGE_LIBGLU
	select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_API

comment "opengl needs an OpenGL backend"
	depends on !BR2_PACKAGE_HAS_LIBGL

config BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_GLES2
	bool "gles2"
	default y
	depends on BR2_PACKAGE_HAS_LIBGLES
	select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_API

comment "gles2 needs an OpenGL ES backend"
	depends on !BR2_PACKAGE_HAS_LIBGLES

comment "Platforms"

config BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_PLATFORM
	bool

config BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_GLX
	bool "glx"
	default y
	depends on BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_OPENGL
	depends on BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR # mesa needs big X
	depends on !BR2_PACKAGE_RPI_USERLAND # x11
	select BR2_PACKAGE_XLIB_LIBXRENDER
	select BR2_PACKAGE_XORGPROTO
	select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_X11
	select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_PLATFORM
	help
	  OpenGL Extension to the X Window System

comment "glx not supported with rpi-userland"
	depends on BR2_PACKAGE_RPI_USERLAND

comment "glx needs the opengl API and modular X.org"
	depends on !BR2_PACKAGE_RPI_USERLAND && \
		(!BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_OPENGL || \
		!BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR)

config BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_EGL
	bool "egl"
	default y
	depends on BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_API
	depends on BR2_PACKAGE_HAS_LIBEGL
	select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_PLATFORM

comment "egl needs an API and an EGL backend"
	depends on !BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_API || \
		!BR2_PACKAGE_HAS_LIBEGL

comment "Window systems"

config BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_WINDOW
	bool

config BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_X11
	bool "x11"
	default y
	depends on BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_PLATFORM
	depends on !BR2_PACKAGE_RPI_USERLAND
	depends on BR2_PACKAGE_XORG7
	select BR2_PACKAGE_XLIB_LIBX11
	select BR2_PACKAGE_XLIB_LIBXEXT
	select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_WINDOW

comment "x11 not supported with rpi-userland"
	depends on BR2_PACKAGE_RPI_USERLAND

comment "x11 needs a platform and X.org"
	depends on !BR2_PACKAGE_RPI_USERLAND && \
		(!BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_PLATFORM || \
		!BR2_PACKAGE_XORG7)

config BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_WAYLAND
	bool "wayland"
	default y
	depends on BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_EGL
	depends on BR2_PACKAGE_WAYLAND
	select BR2_PACKAGE_WAYLAND_PROTOCOLS
	select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_WINDOW

comment "wayland needs the egl platform and the wayland package"
	depends on !BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_EGL || \
		!BR2_PACKAGE_WAYLAND

config BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_DISPMANX
	bool "dispmanx"
	default y
	depends on BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_EGL
	depends on BR2_PACKAGE_RPI_USERLAND
	select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_WINDOW
	help
	  Raspberry Pi's Dispmanx windowing system

comment "dispmanx needs the egl platform and rpi-userland"
	depends on !BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_EGL || \
		!BR2_PACKAGE_RPI_USERLAND
endif

comment "opengl needs an OpenGL or OpenGL ES backend"
	depends on !BR2_PACKAGE_HAS_LIBGL && !BR2_PACKAGE_HAS_LIBGLES

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
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # pango -> harfbuzz
	select BR2_PACKAGE_PANGO
	help
	  Pango-based text rendering and overlay

comment "pango plugin needs a toolchain w/ C++, gcc >= 4.8"
	depends on !BR2_INSTALL_LIBSTDCPP || \
		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
	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
