BASE_GST_ALL_PLUGINS+= \
		adder \
		allocators \
		alsa \
		app \
		audio \
		audioconvert \
		audiomixer \
		audiorate \
		audioresample \
		audiotestsrc \
		cdparanoia \
		compositor \
		debugutils \
		dsd \
		doc \
		encoding \
		examples \
		fft \
		gio \
		gl \
		libvisual \
		nls \
		ogg \
		opus \
		overlaycomposition \
		pango \
		pbtypes \
		pbutils \
		pkgconfig \
		playback \
		rawparse \
		riff \
		rtp \
		rtsp \
		sdp \
		subparse \
		tag \
		tcp \
		tests \
		theora \
		tools \
		tremor \
		typefind \
		video \
		videoconvertscale \
		videorate \
		videotestsrc \
		volume \
		vorbis \
		ximage \
		xvideo

BASE_GST_ENABLED_PLUGINS?=

BAD_GST_ALL_PLUGINS+= \
		accurip \
		adaptivedemux \
		adpcmdec \
		adpcmenc \
		aes \
		aiff \
		aja \
		amfcodec \
		analytics \
		analyticsoverlay \
		androidmedia\
		aom \
		applemedia \
		asfmux \
		asio \
		assrender \
		audio \
		audiobuffersplit \
		audiofxbad \
		audiolatency \
		audiomixmatrix \
		audiovisualizers \
		autoconvert \
		avtp \
		basecamerabinsrc \
		bayer \
		bluez \
		bs2b \
		bz2 \
		camerabin2 \
		chromaprint \
		closedcaption \
		codec2json \
		codecalpha \
		codecparsers \
		codecs \
		codectimestamper \
		coloreffects \
		colormanagement \
		cuda \
		curl \
		curl-ssh2 \
		d3d11 \
		d3d11-hlsl-precompile \
		d3d11-math \
		d3d11-wgc \
		d3d12 \
		dash \
		data \
		dc1394 \
		debugutils \
		decklink \
		directfb \
		directshow \
		directsound \
		doc \
		drm \
		dtls \
		dts \
		dvb \
		dvbsubenc \
		dvbsuboverlay \
		dvdspu \
		dwrite \
		dxva \
		examples \
		extra-checks \
		faac \
		faad \
		faceoverlay \
		fbdev \
		fdkaac \
		festival \
		fieldanalysis \
		flite \
		fluidsynth \
		freeverb \
		frei0r \
		gaudieffects \
		gdp \
		geometrictransform \
		gl \
		gme \
		gs \
		gsm \
		gtk3 \
		hls \
		id3tag \
		insertbin \
		inter \
		interfaces \
		interlace \
		ipcpipeline \
		iqa \
		isac \
		isoff \
		ivfparse \
		ivtc \
		jp2kdecimator \
		jpegformat \
		kms \
		ladspa \
		ladspa-rdf \
		lc3 \
		ldac \
		libde265 \
		librfb \
		lv2 \
		magicleap \
		mediafoundation \
		microdns \
		midi \
		modplug \
		mpeg2enc \
		mpegdemux \
		mpegpsmux \
		mpegts \
		mpegtsdemux \
		mpegtsmux \
		mplex \
		msdk \
		mse \
		musepack \
		mxf \
		neon \
		netsim \
		nls \
		nvcodec \
		onnx \
		onvif \
		openal \
		openaptx \
		opencv \
		openexr \
		openh264 \
		openjpeg \
		openmpt \
		openni2 \
		opensles \
		opus \
		orc \
		pcapparse \
		pkgconfig \
		play \
		player \
		pnm \
		proxy \
		qroverlay \
		qsv \
		qt6d3d11 \
		rawparse \
		removesilence \
		resindvd \
		rist \
		rsvg \
		rtmp \
		rtmp2 \
		rtp \
		sbc \
		sctp \
		sdp \
		segmentclip \
		shm \
		siren \
		smooth \
		smoothstreaming \
		sndfile \
		soundtouch \
		spandsp \
		speed \
		srt \
		srtp \
		subenc \
		svtav1 \
		svthevcenc \
		switchbin \
		teletext \
		tensordecoders \
		tests \
		timecode \
		tinyalsa \
		tools \
		transcode \
		transcoder \
		ttml \
		udev \
		unixfd \
		uridownloader \
		uvch264 \
		uvcgadget \
		v4l2codecs \
		va \
		videofilters \
		videoframe_audiolevel \
		videoparsers \
		videosignal \
		vmaf \
		vmnc \
		voaacenc \
		voamrwbenc \
		vulkan \
		wasapi \
		wasapi2 \
		wayland \
		webp \
		webrtc \
		webrtcdsp \
		wic \
		wildmidi \
		win32ipc \
		winks \
		winscreencap \
		x265 \
		zbar \
		zxing

BAD_GST_ENABLED_PLUGINS?=

GOOD_GST_ALL_PLUGINS+= \
		aalib \
		adaptivedemux2 \
		alpha \
		amrnb \
		amrwbdec \
		apetag \
		audiofx \
		audioparsers \
		auparse \
		autodetect \
		avi \
		cairo \
		cutter \
		debugutils \
		deinterlace \
		directsound \
		dtmf \
		dv \
		dv1394 \
		effectv \
		equalizer \
		examples \
		flac \
		flv \
		flx \
		gdk-pixbuf \
		goom \
		goom2k1 \
		gtk3 \
		icydemux \
		id3demux \
		imagefreeze \
		interleave \
		isomp4 \
		jack \
		jpeg \
		lame \
		law \
		level \
		libcaca \
		matroska \
		monoscope \
		mpg123 \
		multifile \
		multipart \
		nls \
		oss \
		oss4 \
		osxaudio \
		osxvideo \
		png \
		pulse \
		qt5 \
		qt6 \
		replaygain \
		rtp \
		rtpmanager \
		rtsp \
		shapewipe \
		shout2 \
		smpte \
		soup \
		spectrum \
		speex \
		taglib \
		tests \
		twolame \
		udp \
		v4l2 \
		videobox \
		videocrop \
		videofilter \
		videomixer \
		vpx \
		waveform \
		wavenc \
		wavpack \
		wavparse \
		ximagesrc \
		xingmux \
		y4m

GOOD_GST_ENABLED_PLUGINS?=

UGLY_GST_ALL_PLUGINS+= \
		a52dec \
		asfdemux \
		cdio \
		dvdlpcmdec \
		dvdread \
		dvdsub \
		mpeg2dec \
		nls \
		realmedia \
		sidplay \
		x264

UGLY_GST_ENABLED_PLUGINS?=

# gstreamer scripts tend to call python3 rather than python
BINARY_ALIAS=	python3=${PYTHON_VERSION}

# Disable all plugins by default
.if ${DIST}=="base"
.for d in ${BASE_GST_ALL_PLUGINS}
MESON_ARGS+=	-D${d}=disabled
.endfor
.for d in ${BASE_GST_ENABLED_PLUGINS}
MESON_ARGS+=	-D${d}=enabled
.endfor
.endif

.if ${DIST}=="bad"
.for d in ${BAD_GST_ALL_PLUGINS}
MESON_ARGS+=	-D${d}=disabled
.endfor
.for d in ${BAD_GST_ENABLED_PLUGINS}
MESON_ARGS+=	-D${d}=enabled
.endfor
.endif

.if ${DIST}=="good"
.for d in ${GOOD_GST_ALL_PLUGINS}
MESON_ARGS+=	-D${d}=disabled
.endfor
.for d in ${GOOD_GST_ENABLED_PLUGINS}
MESON_ARGS+=	-D${d}=enabled
.endfor
.endif

.if ${DIST}=="ugly"
.for d in ${UGLY_GST_ALL_PLUGINS}
MESON_ARGS+=	-D${d}=disabled
.endfor
.for d in ${UGLY_GST_ENABLED_PLUGINS}
MESON_ARGS+=	-D${d}=enabled
.endfor
.endif

.if ${GST_PLUGIN}!="base" && ${GST_PLUGIN}!="bad" && \
	${GST_PLUGIN}!="good" && ${GST_PLUGIN}!="ugly" && \
	${GST_PLUGIN}!="x"
MESON_ARGS+=	-D${GST_PLUGIN}=enabled
.endif

.if defined(GST_PLUGIN_DEPENDS)
MESON_ARGS+=	-D${GST_PLUGIN_DEPENDS}=enabled
.endif

.if !defined(NO_GSTREAMER_COMMON)
GST_PLUGIN_SUFFIX?=	-${GST_PLUGIN}

USE_GSTREAMER+=	${DIST:base=}

.endif # NO_GSTREAMER_COMMON
