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_VIDEOCONVERTSCALE
	bool "videoconvertscale (mandatory for video playback)"
	default y
	help
	  Colorspace conversion, resizes video

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_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_USE_WCHAR # pango -> glib2
	depends on BR2_TOOLCHAIN_HAS_THREADS # pango -> glib2
	depends on BR2_USE_MMU # pango -> glib2
	depends on BR2_INSTALL_LIBSTDCPP # pango -> freetype
	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pango -> harfbuzz
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # pango -> harfbuzz
	select BR2_PACKAGE_PANGO
	help
	  Pango-based text rendering and overlay

comment "pango plugin needs a toolchain w/ C++, wchar, threads, gcc >= 4.9"
	depends on BR2_TOOLCHAIN_HAS_SYNC_4
	depends on BR2_USE_MMU
	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \
		!BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR

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
