menuconfig BR2_PACKAGE_GST1_PLUGINS_BAD
	bool "gst1-plugins-bad"
	select BR2_PACKAGE_GST1_PLUGINS_BASE
	help
	  A set of plug-ins for GStreamer that may be of poor quality
	  or lacking some features.

	  http://gstreamer.freedesktop.org/

if BR2_PACKAGE_GST1_PLUGINS_BAD

comment "libraries with external dependencies"

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

if BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL

config BR2_PACKAGE_GST1_PLUGINS_BAD_HAS_LIB_OPENGL
	def_bool BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_HAS_WINDOW

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

comment "APIs"

config BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_HAS_API
	bool

config BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_OPENGL
	bool "opengl"
	default y
	depends on BR2_PACKAGE_HAS_LIBGL
	select BR2_PACKAGE_LIBGLU
	select BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_HAS_API

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

config BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_GLES2
	bool "gles2"
	default y
	depends on BR2_PACKAGE_HAS_LIBGLES
	select BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_HAS_API

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

comment "Platforms"

config BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_HAS_PLATFORM
	bool

config BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_GLX
	bool "glx"
	default y
	depends on BR2_PACKAGE_GST1_PLUGINS_BAD_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_XPROTO_GLPROTO
	select BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_X11
	select BR2_PACKAGE_GST1_PLUGINS_BAD_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_BAD_LIB_OPENGL_OPENGL || \
		!BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR)

config BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_EGL
	bool "egl"
	default y
	depends on BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_HAS_API
	depends on BR2_PACKAGE_HAS_LIBEGL
	select BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_HAS_PLATFORM

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

comment "Window systems"

config BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_HAS_WINDOW
	bool

config BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_X11
	bool "x11"
	default y
	depends on BR2_PACKAGE_GST1_PLUGINS_BAD_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_BAD_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_BAD_LIB_OPENGL_HAS_PLATFORM || \
		!BR2_PACKAGE_XORG7)

config BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_WAYLAND
	bool "wayland"
	default y
	depends on BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_EGL
	depends on BR2_PACKAGE_WAYLAND
	select BR2_PACKAGE_WAYLAND_PROTOCOLS
	select BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_HAS_WINDOW

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

config BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_DISPMANX
	bool "dispmanx"
	default y
	depends on BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_EGL
	depends on BR2_PACKAGE_RPI_USERLAND
	select BR2_PACKAGE_GST1_PLUGINS_BAD_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_BAD_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

comment "dependency-less plugins"

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_ACCURIP
	bool "accurip"
	help
	  Accurip plugin

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_ADPCMDEC
	bool "adpcmdec"
	help
	  ADPCM decoder

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_ADPCMENC
	bool "adpcmenc"
	help
	  ADPCM encoder

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AIFF
	bool "aiff"
	help
	  Create and parse Audio interchange File Format (AIFF) files

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_ASFMUX
	bool "asfmux"
	help
	  ASF Muxer Plugin

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUDIOBUFFERSPLIT
	bool "audiobuffersplit"
	help
	  Audio buffersplit plugin

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUDIOFXBAD
	bool "audiofxbad"
	help
	  Audio filters plugin

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUDIOMIXER
	bool "audiomixer"
	help
	  Audio mixer plugin

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUDIOMIXMATRIX
	bool "audiomixmatrix"
	help
	  Audio N:M mixer plugin

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_COMPOSITOR
	bool "compositor"
	help
	  Video compositor plugin

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUDIOVISUALIZERS
	bool "audiovisualizers"
	help
	  Creates video visualizations of audio input

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUTOCONVERT
	bool "autoconvert"
	help
	  Selects convertor element based on caps

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_BAYER
	bool "bayer"
	help
	  Elements to convert Bayer images

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_CAMERABIN2
	bool "camerabin2"
	help
	  Take image snapshots and record movies from camera

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_COLOREFFECTS
	bool "coloreffects"
	help
	  Color Look-up Table filters

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DEBUGUTILS
	bool "debugutils"
	help
	  Collection of elements that may or may not be useful for
	  debugging

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DVBSUBOVERLAY
	bool "dvdsuboverlay"
	help
	  DVB subtitle renderer plugin

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DVDSPU
	bool "dvdspu"
	help
	  DVD Sub-picture Overlay element

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FACEOVERLAY
	bool "faceoverlay"

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FESTIVAL
	bool "festival"
	help
	  Synthesizes plain text into audio

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FIELDANALYSIS
	bool "fieldanalysis"
	help
	  Video field analysis

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FREEVERB
	bool "freeverb"
	help
	  Reverberation/room effect

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FREI0R
	bool "frei0r"
	help
	  frei0r plugin library

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_GAUDIEFFECTS
	bool "gaudieffects"
	help
	  Gaudi video effects

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_GEOMETRICTRANSFORM
	bool "geometrictransform"
	help
	  Various geometric image transform elements

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_GDP
	bool "gdp"
	help
	  Payload/depayload GDP packets

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_ID3TAG
	bool "id3tag"
	help
	  ID3 v1 and v2 muxing plugin

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_INTER
	bool "inter"
	help
	  plugin for inter-pipeline communication

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_INTERLACE
	bool "interlace"
	help
	  Create an interlaced video stream

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_IVFPARSE
	bool "ivfparse"

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_IVTC
	bool "ivtc"
	help
	  Inverse Telecine plugin

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_JP2KDECIMATOR
	bool "jp2kdecimator"

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_JPEGFORMAT
	bool "jpegformat"
	help
	  JPEG interchange format plugin

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_LIBRFB
	bool "librfb"
	help
	  Connects to a VNC server and decodes RFB stream

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MIDI
	bool "midi"
	help
	  MIDI plugin

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEGDEMUX
	bool "mpegdemux"
	help
	  MPEG-PS demuxer

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEGTSDEMUX
	bool "mpegtsdemux"
	help
	  MPEG TS demuxer

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEGTSMUX
	bool "mpegtsmux"
	help
	  MPEG-TS muxer

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEGPSMUX
	bool "mpegpsmux"
	help
	  MPEG-PS muxer

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MXF
	bool "mxf"
	help
	  MXF plugin library

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_NETSIM
	bool "netsim"

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_ONVIF
	bool "onvif"

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_PCAPPARSE
	bool "pcapparse"
	help
	  Element parsing raw pcap streams

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_PNM
	bool "pnm"
	help
	  PNM plugin

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

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_REMOVESILENCE
	bool "removesilence"
	help
	  Removes silence from an audio stream

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RTMP
	bool "rtmp"
	select BR2_PACKAGE_RTMPDUMP
	help
	  RTMP plugin

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SDP
	bool "sdp"
	help
	  configure streaming sessions using SDP

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SEGMENTCLIP
	bool "segmentclip"
	help
	  Segment clip elements

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SIREN
	bool "siren"
	help
	  Siren encoder/decoder/payloader/depayloader plugins

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SMOOTH
	bool "smooth"
	help
	  Apply a smooth filter to an image

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SPEED
	bool "speed"
	help
	  Set speed/pitch on audio/raw streams (resampler)

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SUBENC
	bool "subenc"
	help
	  subtitle encoders

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_STEREO
	bool "stereo"

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_TIMECODE
	bool "timecode"

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOFILTERS
	bool "videofilters"
	help
	  Video filters in gst-plugins-bad

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOFRAME_AUDIOLEVEL
	bool "videoframe_audiolevel"
	help
	  videoframe_audiolevel

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_IQA
	bool "iqa"
	help
	  Image Quality Assessment

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOPARSERS
	bool "videoparsers"
	help
	  videoparsers

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOSIGNAL
	bool "videosignal"

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VMNC
	bool "vmnc"

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_Y4M
	bool "y4m"
	help
	  Demuxes/decodes YUV4MPEG streams

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_YADIF
	bool "yadif"
	help
	  YADIF deinterlacing filter

comment "plugins with external dependencies"

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_ASSRENDER
	bool "assrender"
	select BR2_PACKAGE_LIBASS

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_BZ2
	bool "bz2"
	select BR2_PACKAGE_BZIP2
	help
	  Compress or decompress streams

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_CURL
	bool "curl"
	select BR2_PACKAGE_LIBCURL
	help
	  libcurl-based elements

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DASH
	bool "dash"
	select BR2_PACKAGE_LIBXML2
	help
	  DASH demuxer plugin

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DECKLINK
	bool "decklink"
	depends on BR2_INSTALL_LIBSTDCPP
	help
	  Blackmagic Decklink plugin

comment "decklink needs a toolchain w/ C++"
	depends on !BR2_INSTALL_LIBSTDCPP

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DIRECTFB
	bool "directfb"
	default y
	depends on BR2_PACKAGE_DIRECTFB

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DVB
	bool "dvb"
	# FEC_2_5 / QAM_4_NR definitions
	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7
	select BR2_PACKAGE_DTV_SCAN_TABLES
	help
	  DVB elements

comment "dvb needs a toolchain w/ headers >= 3.7"
	depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FAAD
	bool "faad"
	select BR2_PACKAGE_FAAD2
	help
	  Free AAC Decoder (FAAD)

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FBDEV
	bool "fbdev"
	help
	  Linux framebuffer video sink

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FDK_AAC
	bool "fdk-aac"
	depends on BR2_PACKAGE_FDK_AAC_ARCH_SUPPORTS
	depends on BR2_INSTALL_LIBSTDCPP
	select BR2_PACKAGE_FDK_AAC
	help
	  MPEG AAC encoder/decoder

comment "fdk-aac needs a toolchain w/ C++"
	depends on BR2_PACKAGE_FDK_AAC_ARCH_SUPPORTS
	depends on !BR2_INSTALL_LIBSTDCPP

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_GL
	bool "gl"
	default y
	depends on BR2_PACKAGE_GST1_PLUGINS_BAD_HAS_LIB_OPENGL

comment "gl needs the gst1-plugins-bad opengl library"
	depends on !BR2_PACKAGE_GST1_PLUGINS_BAD_HAS_LIB_OPENGL

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_HLS
	bool "hls"
	select BR2_PACKAGE_NETTLE if !(BR2_PACKAGE_LIBGCRYPT || BR2_PACKAGE_OPENSSL)
	help
	  Fragmented streaming plugins

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_KMS
	bool "kmssink"
	depends on BR2_TOOLCHAIN_HAS_THREADS #  libdrm -> libpthread-stubs
	select BR2_PACKAGE_LIBDRM
	help
	  KMS video sink

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_LIBMMS
	bool "libmms"
	depends on BR2_USE_WCHAR # libmms -> libglib2
	depends on BR2_TOOLCHAIN_HAS_THREADS # libmms -> libglib2
	select BR2_PACKAGE_LIBMMS
	help
	  Microsoft Multi Media Server streaming protocol support

comment "libmms needs a toolchain w/ wchar, threads"
	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DTLS
	bool "dtls"
	select BR2_PACKAGE_OPENSSL
	help
	  DTLS plugin

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_TTML
	bool "ttml"
	depends on BR2_USE_WCHAR # pango -> glib2
	depends on BR2_TOOLCHAIN_HAS_THREADS # pango -> glib2
	depends on BR2_INSTALL_LIBSTDCPP # pango -> freetype
	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pango -> harfbuzz
	select BR2_PACKAGE_CAIRO
	select BR2_PACKAGE_LIBXML2
	select BR2_PACKAGE_PANGO
	help
	  Timed Text Markup Language (TTML) subtitle plugin

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

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEG2ENC
	bool "mpeg2enc"
	select BR2_PACKAGE_LIBMPEG2
	help
	  High-quality MPEG-1/2 video encoder

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MUSEPACK
	bool "musepack"
	select BR2_PACKAGE_MUSEPACK

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_NEON
	bool "neon"
	select BR2_PACKAGE_NEON
	help
	  lib neon http client src

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPENAL
	bool "openal"
	depends on BR2_INSTALL_LIBSTDCPP
	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
	depends on BR2_PAKCAGE_OPENAL_ARCH_SUPPORTS
	select BR2_PACKAGE_OPENAL

comment "openal plugin needs a toolchain w/ NPTL, C++"
	depends on BR2_PAKCAGE_OPENAL_ARCH_SUPPORTS
	depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL \
		|| !BR2_INSTALL_LIBSTDCPP

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPENCV
	bool "opencv"
	depends on BR2_PACKAGE_OPENCV
	# Remove the following opencv modules when gstreamer fixes the
	# problem of including the old "cv.h" header
	# bug: https://bugzilla.gnome.org/show_bug.cgi?id=725163
	select BR2_PACKAGE_OPENCV_LIB_CALIB3D
	select BR2_PACKAGE_OPENCV_LIB_CONTRIB
	select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
	select BR2_PACKAGE_OPENCV_LIB_FLANN
	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
	select BR2_PACKAGE_OPENCV_LIB_LEGACY
	select BR2_PACKAGE_OPENCV_LIB_ML
	select BR2_PACKAGE_OPENCV_LIB_OBJDETECT
	select BR2_PACKAGE_OPENCV_LIB_VIDEO
	help
	  GStreamer OpenCV Plugins

comment "opencv plugin needs OpenCV-2.4"
	depends on !BR2_PACKAGE_OPENCV

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPENH264
	bool "openh264"
	depends on BR2_PACKAGE_LIBOPENH264_ARCH_SUPPORTS
	depends on BR2_INSTALL_LIBSTDCPP # libopenh264
	depends on !BR2_STATIC_LIBS # libopenh264
	depends on BR2_TOOLCHAIN_HAS_THREADS # libopenh264
	select BR2_PACKAGE_LIBOPENH264
	help
	  OpenH264 based encoding/decoding plugin

comment "openh264 plugin needs a toolchain w/ C++, dynamic library, threads"
	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
		BR2_STATIC_LIBS
	depends on BR2_PACKAGE_LIBOPENH264_ARCH_SUPPORTS

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPENJPEG
	bool "openjpeg"
	select BR2_PACKAGE_OPENJPEG
	help
	  GStreamer OpenJPEG plugin

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPUS
	bool "opus"
	select BR2_PACKAGE_OPUS
	help
	  OPUS plugin library

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RSVG
	bool "rsvg"
	depends on BR2_INSTALL_LIBSTDCPP # librsvg -> pango
	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # librsvg -> pango -> harfbuzz
	select BR2_PACKAGE_LIBRSVG
	help
	  RSVG plugin library

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

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SBC
	bool "sbc"
	select BR2_PACKAGE_SBC

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SHM
	bool "shm"
	help
	  shared memory sink source

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SNDFILE
	bool "sndfile"
	select BR2_PACKAGE_LIBSNDFILE

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SRTP
	bool "srtp"
	select BR2_PACKAGE_LIBSRTP

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VCD
	bool "vcd"

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VOAACENC
	bool "voaacenc"
	select BR2_PACKAGE_VO_AACENC

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_WAYLAND
	bool "wayland"
	default y
	depends on BR2_PACKAGE_WAYLAND
	select BR2_PACKAGE_WAYLAND_PROTOCOLS
	help
	  Wayland Video Sink

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_WEBP
	bool "webp"
	select BR2_PACKAGE_WEBP
	help
	  Webp image format plugin

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_WEBRTCDSP
	bool "webrtcdsp"
	# All depends from webrtc-audio-processing
	depends on BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING_ARCH_SUPPORTS
	depends on BR2_INSTALL_LIBSTDCPP
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING
	select BR2_PACKAGE_WEBRTC
	help
	  WebRTC echo-cancellation, gain control and noise suppression

comment "webrtcdsp needs a toolchain w/ C++, NPTL, gcc >= 4.8"
	depends on BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING_ARCH_SUPPORTS
	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS_NPTL \
		|| !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_X265
	bool "x265"
	depends on BR2_INSTALL_LIBSTDCPP
	depends on !BR2_STATIC_LIBS
	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # x265
	select BR2_PACKAGE_X265
	help
	  x265 encoding plugin

comment "x265 needs a toolchain w/ C++, dynamic library"
	depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS

endif
