3 BASE_GST_ALL_PLUGINS= \
18 BASE_GST_NON_PLUGINS= \
23 BAD_GST_ALL_PLUGINS+= \
74 BAD_GST_NON_PLUGINS= \
79 --disable-android_media \
80 --disable-apple_media \
85 --disable-directsound \
95 --disable-winscreencap
97 GOOD_GST_ALL_PLUGINS+= \
122 GOOD_GST_NON_PLUGINS= \
124 --disable-directsound \
125 --disable-osx_audio \
126 --disable-osx_video \
133 UGLY_GST_ALL_PLUGINS+= \
143 UGLY_GST_NON_PLUGINS=
145 # Disable all plugins by default
147 .for d in ${BASE_GST_ALL_PLUGINS}
148 CONFIGURE_ARGS+= --disable-${d}
150 CONFIGURE_ARGS+= ${BASE_GST_NON_PLUGINS}
154 .for d in ${BAD_GST_ALL_PLUGINS}
155 CONFIGURE_ARGS+= --disable-${d}
157 CONFIGURE_ARGS+= ${BAD_GST_NON_PLUGINS}
161 .for d in ${GOOD_GST_ALL_PLUGINS}
162 CONFIGURE_ARGS+= --disable-${d}
164 CONFIGURE_ARGS+= ${GOOD_GST_NON_PLUGINS}
168 .for d in ${UGLY_GST_ALL_PLUGINS}
169 CONFIGURE_ARGS+= --disable-${d}
171 CONFIGURE_ARGS+= ${UGLY_GST_NON_PLUGINS}
174 .if ${GST_PLUGIN}!="base" && ${GST_PLUGIN}!="bad" && \
175 ${GST_PLUGIN}!="good" && ${GST_PLUGIN}!="ugly"
176 CONFIGURE_ARGS+= --enable-${GST_PLUGIN}
179 .if !defined(NO_GSTREAMER_COMMON)
180 GST_PLUGIN_SUFFIX?= -${GST_PLUGIN}
182 # Enable the right plugin
183 CONFIGURE_ARGS:=${CONFIGURE_ARGS:S|--disable-${GST_PLUGIN}|--enable-${GST_PLUGIN}|}
185 GST_INC_DIR= include/gstreamer-${VERSION}
186 GST_LIB_DIR= lib/gstreamer-${VERSION}
189 PLIST?= ${NONEXISTENT}
191 # ------- plugins ---------
194 gst_a52dec_LIB_DEPENDS= liba52.so:audio/liba52
197 gst_aalib_LIB_DEPENDS= libaa.so:graphics/aalib
198 gst_aalib_USES= ncurses
199 gst_aalib_PLIST_FILES= ${GST_LIB_DIR}/libgstaasink.so
202 gst_amrnb_LIB_DEPENDS= libopencore-amrnb.so:audio/opencore-amr
203 gst_amrnb_PLIST_FILES= ${GST_LIB_DIR}/libgstamrnb.so \
204 share/gstreamer-${VERSION}/presets/GstAmrnbEnc.prs
207 gst_amrwb_LIB_DEPENDS= libopencore-amrwb.so:audio/opencore-amr
208 gst_amrwb_GST_PLUGIN_DIR= ext/amrwbdec
209 gst_amrwb_PLIST_FILES= ${GST_LIB_DIR}/libgstamrwbdec.so
212 gst_aom_LIB_DEPENDS= libaom.so:multimedia/aom
215 gst_assrender_LIB_DEPENDS= libass.so:multimedia/libass
216 gst_assrender_USES= compiler:c11
219 gst_bs2b_LIB_DEPENDS= libbs2b.so:audio/libbs2b
222 gst_cairo_USE_GNOME= cairo
225 gst_cdparanoia_LIB_DEPENDS= libcdda_interface.so:audio/cdparanoia
228 gst_cdio_LIB_DEPENDS= libcdio.so:sysutils/libcdio
231 gst_chromaprint_LIB_DEPENDS= libchromaprint.so:audio/chromaprint
234 gst_curl_LIB_DEPENDS= libcurl.so:ftp/curl \
235 libssh2.so:security/libssh2
238 gst_dash_USE_GNOME= libxml2
239 gst_dash_PLIST_FILES= ${GST_LIB_DIR}/libgstdashdemux.so
242 gst_dtls_USES= compiler:c11 ssl
243 gst_dtls_CONFIGURE_ENV= DTLS_CFLAGS="-I${OPENSSLINC}" \
244 DTLS_LIBS="-L${OPENSSLLIB} -lcrypto -lssl"
247 gst_dts_LIB_DEPENDS= libdca.so:multimedia/libdca
248 gst_dts_PLIST_FILES= ${GST_LIB_DIR}/libgstdtsdec.so
251 gst_libdv_LIB_DEPENDS= libdv.so:multimedia/libdv
252 gst_libdv_GST_PLUGIN_DIR= ext/dv
253 gst_libdv_PLIST_FILES= ${GST_LIB_DIR}/libgstdv.so
256 gst_dvdread_LIB_DEPENDS=libdvdread.so:multimedia/libdvdread
259 gst_faac_LIB_DEPENDS= libfaac.so:audio/faac
262 gst_faad_LIB_DEPENDS= libfaad.so:audio/faad
265 gst_flac_LIB_DEPENDS= libFLAC.so:audio/flac
268 gst_flite_LIB_DEPENDS= libflite.so:audio/flite
271 gst_gdk_pixbuf_USE_GNOME= gdkpixbuf2
272 gst_gdk_pixbuf_PLIST_FILES= ${GST_LIB_DIR}/libgstgdkpixbuf.so
276 gst_gl_USE_GL= gl glu glesv2 egl
277 gst_gl_BUILD_DEPENDS= ${LOCALBASE}/include/linux/input.h:devel/evdev-proto
278 gst_gl_LIB_DEPENDS= libgraphene-1.0.so:graphics/graphene
279 gst_gl_CONFIGURE_ARGS= --enable-gl --enable-glx \
280 --enable-egl --enable-gles2
281 gst_gl_GST_PLUGIN_DIR= gst-libs/gst/gl ext/gl
282 gst_gl_PLIST_FILES= #
285 gst_gme_LIB_DEPENDS= libgme.so:audio/libgme
288 gst_gsm_LIB_DEPENDS= libgsm.so:audio/gsm
292 gst_gtk3_USE_GSTREAMER1= gl
293 gst_gtk3_USE_GNOME= cairo gdkpixbuf2 gtk30
294 gst_gtk3_CONFIGURE_ARGS=--enable-gtk3
295 gst_gtk3_GST_PLUGIN_DIR=ext/gtk
296 gst_gtk3_PLIST_FILES= ${GST_LIB_DIR}/libgstgtk.so
299 gst_hls_LIB_DEPENDS= libnettle.so:security/nettle
302 gst_jack_LIB_DEPENDS= libjack.so:audio/jack
308 gst_kate_LIB_DEPENDS= libkate.so:multimedia/libkate
311 gst_kms_LIB_DEPENDS= libkms.so:graphics/libdrm
312 gst_kms_GST_PLUGIN_DIR= sys/kms
315 gst_ladspa_BUILD_DEPENDS= ${LOCALBASE}/include/ladspa.h:audio/ladspa
318 gst_lame_LIB_DEPENDS= libmp3lame.so:audio/lame
321 gst_libcaca_LIB_DEPENDS= libcaca.so:graphics/libcaca
322 gst_libcaca_PLIST_FILES= ${GST_LIB_DIR}/libgstcacasink.so
325 gst_libde265_LIB_DEPENDS= libde265.so:multimedia/libde265
326 gst_libde265_PLIST_FILES= ${GST_LIB_DIR}/libgstde265.so
329 gst_libmms_LIB_DEPENDS= libmms.so:net/libmms
330 gst_libmms_PLIST_FILES= ${GST_LIB_DIR}/libgstmms.so
333 gst_librfb_USES= xorg
334 gst_librfb_USE_XORG= x11
337 gst_lv2_USES= pkgconfig
338 gst_lv2_BUILD_DEPENDS= lv2>=1.14.0:audio/lv2
339 gst_lv2_LIB_DEPENDS= libsord-0.so:devel/sord \
340 libserd-0.so:devel/serd \
341 libsratom-0.so:audio/sratom \
342 liblilv-0.so:audio/lilv
345 gst_libpng_LIB_DEPENDS= libpng.so:graphics/png
346 gst_libpng_PLIST_FILES= ${GST_LIB_DIR}/libgstpng.so
349 gst_libvisual_LIB_DEPENDS= libvisual-0.4.so:graphics/libvisual04
352 gst_modplug_LIB_DEPENDS= libmodplug.so:audio/libmodplug
355 gst_mpeg2enc_LIB_DEPENDS= libmjpegutils.so:multimedia/mjpegtools
358 gst_mpeg2dec_LIB_DEPENDS= libmpeg2.so:multimedia/libmpeg2
361 gst_mplex_LIB_DEPENDS= libmplex2.so:multimedia/mjpegtools
364 gst_mpg123_LIB_DEPENDS= libmpg123.so:audio/mpg123
367 gst_msdk_LIB_DEPENDS= libgudev-1.0.so:devel/libgudev \
368 libmfx.so:multimedia/intel-media-sdk \
369 libva-drm.so:multimedia/libva
370 gst_msdk_GST_PLUGIN_DIR= sys/msdk
373 gst_musepack_LIB_DEPENDS=libmpcdec.so:audio/musepack
376 gst_neon_LIB_DEPENDS+= libneon.so:www/neon
377 gst_neon_PLIST_FILES= ${GST_LIB_DIR}/libgstneonhttpsrc.so
380 gst_ogg_LIB_DEPENDS= libogg.so:audio/libogg
383 gst_opencv_LIB_DEPENDS= libopencv_core.so:graphics/opencv-core \
384 libopencv_highgui.so:graphics/opencv
385 gst_opencv_GST_PLUGIN_DIR= gst-libs/gst/opencv ext/opencv
386 gst_opencv_PLIST_FILES= #
387 gst_opencv_USES= compiler:c++11-lib
390 gst_openexr_LIB_DEPENDS=libImath.so:graphics/ilmbase \
391 libIlmImf.so:graphics/openexr
394 gst_openjpeg_LIB_DEPENDS= libopenjp2.so:graphics/openjpeg
397 gst_openh264_LIB_DEPENDS= libopenh264.so:multimedia/openh264
400 gst_openmpt_LIB_DEPENDS= libopenmpt.so:audio/libopenmpt
403 gst_opus_LIB_DEPENDS= libopus.so:audio/opus
406 gst_pango_USE_GNOME= cairo pango
409 gst_pulse_LIB_DEPENDS= libpulse.so:audio/pulseaudio
410 gst_pulse_PLIST_FILES= ${GST_LIB_DIR}/libgstpulseaudio.so
413 gst_qt_USES= compiler:c++11-lang qt:5
414 gst_qt_USE_QT= core gui declarative buildtools_build network x11extras
415 gst_qt_USE_GSTREAMER1= gl
416 gst_qt_PLIST_FILES= ${GST_LIB_DIR}/libgstqmlgl.so
419 gst_resindvd_BUILD_DEPENDS= libdvdnav>=4.1.2:multimedia/libdvdnav
420 gst_resindvd_LIB_DEPENDS= libdvdread.so:multimedia/libdvdread
421 gst_resindvd_RUN_DEPENDS= libdvdnav>=4.1.2:multimedia/libdvdnav
424 gst_rtmp_LIB_DEPENDS= librtmp.so:multimedia/librtmp
427 gst_rsvg_USE_GNOME= cairo librsvg2
430 gst_shout2_LIB_DEPENDS= libshout.so:audio/libshout
433 gst_sidplay_LIB_DEPENDS= libsidplay.so:audio/libsidplay
434 gst_sidplay_PLIST_FILES= ${GST_LIB_DIR}/libgstsid.so
437 gst_smoothstreaming_USE_GNOME= libxml2
440 gst_sndfile_LIB_DEPENDS= libsndfile.so:audio/libsndfile
443 gst_soundtouch_LIB_DEPENDS= libSoundTouch.so:audio/soundtouch
446 gst_soup_LIB_DEPENDS= libsoup-2.4.so:devel/libsoup
449 gst_spandsp_LIB_DEPENDS= libspandsp.so:comms/spandsp
452 gst_speex_LIB_DEPENDS= libspeex.so:audio/speex
455 gst_srtp_LIB_DEPENDS= libsrtp2.so:net/libsrtp2
458 gst_taglib_LIB_DEPENDS= libtag.so:audio/taglib
461 gst_theora_LIB_DEPENDS= libtheora.so:multimedia/libtheora \
462 libogg.so:audio/libogg
465 gst_ttml_USE_GNOME= cairo libxml2 pango
466 gst_ttml_PLIST_FILES= ${GST_LIB_DIR}/libgstttmlsubs.so
469 gst_twolame_LIB_DEPENDS= libtwolame.so:audio/twolame
472 gst_gst_v4l2_BUILD_DEPENDS= v4l_compat>0:multimedia/v4l_compat
473 gst_gst_v4l2_LIB_DEPENDS= libv4l2.so:multimedia/libv4l
474 gst_gst_v4l2_RUN_DEPENDS= webcamd:multimedia/webcamd
475 gst_gst_v4l2_PLIST_FILES= ${GST_LIB_DIR}/libgstvideo4linux2.so
476 gst_gst_v4l2_GST_PLUGIN_DIR= sys/v4l2
479 gst_vorbis_USE_GSTREAMER1= ogg
480 gst_vorbis_LIB_DEPENDS= libvorbis.so:audio/libvorbis
483 gst_vpx_LIB_DEPENDS= libvpx.so:multimedia/libvpx
484 gst_vpx_PLIST_FILES= ${GST_LIB_DIR}/libgstvpx.so \
485 share/gstreamer-${VERSION}/presets/GstVP8Enc.prs
488 gst_vdpau_LIB_DEPENDS= libvdpau.so:multimedia/libvdpau
489 gst_vdpau_GST_PLUGIN_DIR= sys/vdpau
492 gst_vulkan_USE_GSTREAMER1= gl
493 gst_vulkan_BUILD_DEPENDS= ${LOCALBASE}/include/linux/input.h:devel/evdev-proto \
494 ${LOCALBASE}/include/libdrm/drm_fourcc.h:graphics/libdrm \
495 ${LOCALBASE}/include/vulkan/vulkan.h:graphics/vulkan-headers \
496 wayland-protocols>=0:graphics/wayland-protocols
497 gst_vulkan_LIB_DEPENDS= libvulkan.so:graphics/vulkan-loader \
498 libwayland-client.so:graphics/wayland
499 gst_vulkan_CONFIGURE_ARGS= --enable-wayland
502 gst_webp_LIB_DEPENDS= libwebp.so:graphics/webp
505 gst_webrtcdsp_LIB_DEPENDS= libwebrtc_audio_processing.so:audio/webrtc-audio-processing0
507 # X ximage and xvimage sinks aka output
510 gst_x_USE_XORG= x11 xv xext
511 gst_x_CONFIGURE_ARGS= --enable-xvideo --enable-xshm
512 gst_x_GST_PLUGIN_DIR= sys/ximage sys/xvimage
513 gst_x_PLIST_FILES= ${GST_LIB_DIR}/libgstximagesink.so \
514 ${GST_LIB_DIR}/libgstxvimagesink.so
520 gst_x_USE_XORG= x11 xfixes xdamage xext
521 gst_x_CONFIGURE_ARGS= --enable-x
522 gst_x_GST_PLUGIN_DIR= sys/ximage
523 gst_x_PLIST_FILES= ${GST_LIB_DIR}/libgstximagesrc.so
527 gst_x264_LIB_DEPENDS= libx264.so:multimedia/libx264
528 gst_x264_PLIST_FILES= ${GST_LIB_DIR}/libgstx264.so \
529 share/gstreamer-${VERSION}/presets/GstX264Enc.prs
532 gst_x265_LIB_DEPENDS= libx265.so:multimedia/x265
535 gst_xvid_LIB_DEPENDS= libxvidcore.so:multimedia/xvid
538 gst_wavpack_LIB_DEPENDS= libwavpack.so:audio/wavpack
541 gst_zbar_LIB_DEPENDS= libzbar.so:graphics/zbar
543 .endif # NO_GSTREAMER_COMMON
545 .if !defined(NO_GSTREAMER_COMMON)
546 gst_${GST_PLUGIN}_BUILD_DEPENDS?=
547 gst_${GST_PLUGIN}_LIB_DEPENDS?=
548 gst_${GST_PLUGIN}_RUN_DEPENDS?=
549 gst_${GST_PLUGIN}_USES?=
550 gst_${GST_PLUGIN}_USE_QT?=
551 gst_${GST_PLUGIN}_USE_XORG?=
552 gst_${GST_PLUGIN}_PLIST_FILES?= \
553 ${GST_LIB_DIR}/libgst${GST_PLUGIN}${GST_PLIST_SUFFIX}.so
554 gst_${GST_PLUGIN}_EXTRA_LIBS?=
555 gst_${GST_PLUGIN}_PREBUILD_DIR?=
556 gst_${GST_PLUGIN}_GST_PLUGIN_DIR?= ext/${GST_PLUGIN}
557 gst_${GST_PLUGIN}_POSTBUILD_DIR?=
558 gst_${GST_PLUGIN}_USE_XORG?=
559 gst_${GST_PLUGIN}_USE_GNOME?=
560 gst_${GST_PLUGIN}_CONFIGURE_ENV?=
561 gst_${GST_PLUGIN}_USE_GL?=
562 gst_${GST_PLUGIN}_GLIB_SCHEMAS?=
563 gst_${GST_PLUGIN}_CONFIGURE_ARGS?=
564 gst_${GST_PLUGIN}_USE_SDL?=
565 gst_${GST_PLUGIN}_USE_GSTREAMER1?=
567 BUILD_DEPENDS+= ${gst_${GST_PLUGIN}_BUILD_DEPENDS}
568 LIB_DEPENDS+= ${gst_${GST_PLUGIN}_LIB_DEPENDS}
569 RUN_DEPENDS+= ${gst_${GST_PLUGIN}_RUN_DEPENDS}
570 USES+= ${gst_${GST_PLUGIN}_USES}
571 PLIST_FILES= ${gst_${GST_PLUGIN}_PLIST_FILES}
572 EXTRA_LIBS+= ${gst_${GST_PLUGIN}_EXTRA_LIBS}
573 .if ${gst_${GST_PLUGIN}_USE_XORG}!=""
574 USE_XORG+= ${gst_${GST_PLUGIN}_USE_XORG}
576 .if ${gst_${GST_PLUGIN}_USE_GNOME}!=""
577 USE_GNOME+= ${gst_${GST_PLUGIN}_USE_GNOME}
579 .if ${gst_${GST_PLUGIN}_USE_QT}!=""
580 USE_QT+= ${gst_${GST_PLUGIN}_USE_QT}
582 CONFIGURE_ENV+= ${gst_${GST_PLUGIN}_CONFIGURE_ENV}
583 .if ${gst_${GST_PLUGIN}_USE_GL}!=""
584 USE_GL+= ${gst_${GST_PLUGIN}_USE_GL}
587 .if ${gst_${GST_PLUGIN}_GLIB_SCHEMAS}!=""
588 GLIB_SCHEMAS= ${gst_${GST_PLUGIN}_GLIB_SCHEMAS}
591 CONFIGURE_ARGS+= ${gst_${GST_PLUGIN}_CONFIGURE_ARGS}
593 .if ${gst_${GST_PLUGIN}_USE_SDL}!=""
594 USE_SDL= ${gst_${GST_PLUGIN}_USE_SDL}
597 USE_GSTREAMER1+= ${gst_${GST_PLUGIN}_USE_GSTREAMER1} ${DIST:base=yes}
598 GST_PREBUILD_DIR= ${gst_${GST_PLUGIN}_GST_PREBUILD_DIR}
599 GST_PLUGIN_DIR= ${gst_${GST_PLUGIN}_GST_PLUGIN_DIR}
600 GST_POSTBUILD_DIR= ${gst_${GST_PLUGIN}_GST_POSTBUILD_DIR}
602 .if !target(do-build)
604 .for dir in ${GST_PREBUILD_DIR} ${GST_PLUGIN_DIR} ${GST_POSTBUILD_DIR}
605 @cd ${WRKSRC}/${dir}; ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_FLAGS} \
606 ${MAKEFILE} ${MAKE_ARGS} ${ALL_TARGET}
610 .if !target(do-install)
612 .for dir in ${GST_PLUGIN_DIR}
613 @cd ${WRKSRC}/${dir}; ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_FLAGS} \
614 ${MAKEFILE} ${MAKE_ARGS} ${INSTALL_TARGET}