Skip to content
Snippets Groups Projects
configure.ac 135 KiB
Newer Older
    [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)]))
AS_IF([test "$SYS" = "linux" -a "${enable_linsys}" != "no"], [
  VLC_ADD_PLUGIN([linsys_hdsdi])
  PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28], [
    VLC_ADD_PLUGIN([linsys_sdi])
  ], [
    AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])
  ])
])
dnl
dnl dvdread module: check for libdvdread
dnl
PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread > 6.0.0], [dvdread input module], [auto])
gbazin's avatar
 
gbazin committed
dnl
gbazin's avatar
 
gbazin committed
dnl
PKG_ENABLE_MODULES_VLC([DVDNAV], [], [dvdnav >= 6.0.0], [DVD with navigation input module (dvdnav)], [auto])
gbazin's avatar
 
gbazin committed

dnl
dnl  Blu-ray Disc Support with libbluray
dnl
PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.6.2], (libbluray for Blu-ray disc support ) )
dnl
dnl  OpenCV wrapper and example filters
dnl
PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0], (OpenCV (computer vision) filter), [auto])
PKG_ENABLE_MODULES_VLC([SMBCLIENT], [smbc], [smbclient], (SMB/CIFS support), [auto])
dnl
dnl  liBDSM access module
dnl
AM_CONDITIONAL([HAVE_DSM], [test "$AS_TR_SH(with_dsm)" = "yes"])
PKG_WITH_MODULES([DSM], [libdsm >= 0.2.0], [
       VLC_ADD_PLUGIN([dsm])
       VLC_ADD_CFLAGS([dsm], [$DSM_CFLAGS])
       VLC_ADD_LIBS([dsm], [$DSM_LIBS])
       have_dsm="yes"
   ],,[libdsm SMB/CIFS access/sd module], [auto])
AM_CONDITIONAL([HAVE_DSM], [test "${have_dsm}" = "yes"])
ivoire's avatar
ivoire committed

dnl
dnl sftp access support
dnl
PKG_ENABLE_MODULES_VLC([SFTP], [sftp], [libssh2], (support SFTP file transfer via libssh2), [auto])
ivoire's avatar
ivoire committed

Thomas Guillem's avatar
Thomas Guillem committed
dnl
dnl nfs access support
dnl
PKG_ENABLE_MODULES_VLC([NFS], [nfs], [libnfs >= 1.10.0], (support nfs protocol via libnfs), [auto])
Thomas Guillem's avatar
Thomas Guillem committed
dnl
dnl smb2 access support
dnl
PKG_ENABLE_MODULES_VLC([SMB2], [smb2], [libsmb2 >= 3.0.0], (support smb2 protocol via libsmb2), [auto])
dnl  Video4Linux 2
AC_ARG_ENABLE([v4l2], AS_HELP_STRING([--disable-v4l2],
  [disable Video4Linux version 2 (default auto)]))
have_v4l2="no"
AS_IF([test "$enable_v4l2" != "no"], [
  AC_CHECK_HEADERS([linux/videodev2.h], [
AM_CONDITIONAL([HAVE_V4L2], [test "${have_v4l2}" != "no"])
Jai Luthra's avatar
Jai Luthra committed
dnl
dnl  NVDEC decoder/encoder
dnl
AC_ARG_ENABLE([nvdec], AS_HELP_STRING([--disable-nvdec],
  [disable NVDEC decoder (default auto)]))
have_nvdec="no"
AS_IF([test "$enable_nvdec" != "no"], [
  AC_CHECK_HEADERS([ffnvcodec/dynlink_loader.h], [
    have_nvdec="yes"
  ])
])
AM_CONDITIONAL([HAVE_NVDEC], [test "${have_nvdec}" != "no"])

dnl
dnl special access module for Blackmagic SDI cards
dnl
AC_ARG_ENABLE([decklink],
  AS_HELP_STRING([--disable-decklink],
    [disable Blackmagic DeckLink SDI input (default auto)]))
AC_ARG_WITH([decklink_sdk],
  AS_HELP_STRING([--with-decklink-sdk=DIR],
    [location of Blackmagic DeckLink SDI SDK]))
Rafaël Carré's avatar
Rafaël Carré committed
have_decklink=no
if test "${enable_decklink}" != "no"
then
  if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
  then
    VLC_ADD_CPPFLAGS([decklink decklinkoutput stream_out_sdi],[-I${with_decklink_sdk}/include])
Rafaël Carré's avatar
Rafaël Carré committed
  CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
  AC_LANG_PUSH([C++])
  AC_CHECK_HEADERS([DeckLinkAPIDispatch.cpp], [
Rafaël Carré's avatar
Rafaël Carré committed
      have_decklink=yes
      AS_IF([test "${SYS}" = "darwin"], [
        VLC_ADD_LIBS([decklink decklinkoutput],[-Wl,-framework,CoreFoundation])
      ])
Rafaël Carré's avatar
Rafaël Carré committed
  ], [
      AS_IF([test "${enable_decklink}" = "yes"], [
        AC_MSG_ERROR([Blackmagic DeckLink SDI include files not found!])
      ], [
        AC_MSG_WARN([Blackmagic DeckLink SDI include files not found, decklink disabled])
      ])
  AC_LANG_POP([C++])
AM_CONDITIONAL([HAVE_DECKLINK], [ test "${have_decklink}" != "no" ])
dnl  Built-in CD-DA and VCD module
  AS_HELP_STRING([--disable-vcd],
    [disable built-in VCD and CD-DA support (default enabled)]))
AC_ARG_ENABLE([libcddb],
  AS_HELP_STRING([--disable-libcddb],
    [disable CDDB for Audio CD (default enabled)]))
if test "${enable_vcd}" != "no" -a "${enable_winstore_app}" != "yes"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
then
  AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
    VLC_ADD_PLUGIN([vcd cdda])
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  ])
  AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
  AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
    VLC_ADD_PLUGIN([vcd cdda])
    AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
  AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
  AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
    VLC_ADD_PLUGIN([vcd cdda])
    AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
  if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2" -o "${SYS}" = "darwin"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  then
    VLC_ADD_PLUGIN([vcd cdda])
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  fi
  if test "$enable_libcddb" != "no"; then
    PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
      HAVE_LIBCDDB=yes
      AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
      VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
      VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
      ],:
      [AC_MSG_WARN([${LIBCDDB_PKG_ERRORS}: CDDB access disabled.])
      HAVE_LIBCDDB=no])
  fi
dnl
dnl Linux DVB
dnl
AC_CACHE_CHECK([for Linux DVB version 5.1], [ac_cv_linux_dvb_5_1], [
  AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
[#include <linux/dvb/version.h>
#if (DVB_API_VERSION < 5)
# error Linux DVB API v3.2 and older are not supported.
#endif
#if (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR < 1)
# error Linux DVB API v5.0 is unsupported. Please update.
#endif
]])], [
  ac_cv_linux_dvb_5_1=yes
  ac_cv_linux_dvb_5_1=no
AM_CONDITIONAL([HAVE_LINUX_DVB], [test "$ac_cv_linux_dvb_5_1" = "yes"])
AC_ARG_ENABLE([screen],
  AS_HELP_STRING([--enable-screen],
    [disable screen capture (default enabled)]))
Eric Petit's avatar
Eric Petit committed
  if test "${SYS}" = "darwin"; then
    AC_CHECK_HEADERS([ApplicationServices/ApplicationServices.h], [
AM_CONDITIONAL([HAVE_MAC_SCREEN], [test "${SYS}" = "darwin" -a "x${enable_screen}" != "xno"])
dnl
dnl  VNC/RFB access module
dnl
PKG_ENABLE_MODULES_VLC([VNC], [vnc], [libvncclient >= 0.9.9], (VNC/rfb client support), [auto])
dnl  RDP/Remote Desktop access module
dnl
PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp >= 1.0.1], (RDP/Remote Desktop client support) )
AC_SUBST([have_avfoundation], ["no"])
AC_ARG_ENABLE([macosx-avfoundation],
  AS_HELP_STRING([--enable-macosx-avfoundation], [Mac OS X avcapture (video) module (default enabled on Mac OS X)]))
if test "x${enable_macosx_avfoundation}" != "xno" &&
  (test "${SYS}" = "darwin" || test "${enable_macosx_avfoundation}" = "yes")
then
  SAVED_LIBS="${LIBS}"
  LIBS="-framework AVFoundation"
  AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [])],[have_avfoundation=yes],[have_avfoundation=no])
  LIBS="${SAVED_LIBS}"
  if test "${have_avfoundation}" != "no"
  then
    VLC_ADD_PLUGIN([avcapture])
  fi
AM_CONDITIONAL([HAVE_AVFOUNDATION], [test "${have_avfoundation}" != "no"])
dnl
dnl  DCP plugin (using asdcplib)
dnl
PKG_WITH_MODULES([ASDCP], [asdcplib], [have_asdcp="yes"])
AM_CONDITIONAL([HAVE_ASDCP], [test "${have_asdcp}" = "yes"])
dnl
dnl  Demux plugins
dnl

EXTEND_HELP_STRING([Mux/Demux plugins:])

dnl
dnl  libdvbpsi check for ts mux/demux
dnl
have_dvbpsi="no"
PKG_WITH_MODULES([DVBPSI], [libdvbpsi >= 1.2.0], [have_dvbpsi="yes"])
AM_CONDITIONAL([HAVE_DVBPSI], [test "${have_dvbpsi}" = "yes"])
  AS_HELP_STRING([--enable-gme],
    [use Game Music Emu (default auto)]))
AS_IF([test "${enable_gme}" != "no"], [
  AC_CHECK_HEADER([gme/gme.h], [
    AC_CHECK_LIB([gme], [gme_identify_header], [
      VLC_ADD_PLUGIN([gme])
    ], [
      AC_CHECK_LIB([gme], [gme_identify_extension], [
         VLC_ADD_LIBS([gme], [-lstdc++ $LIBM])
         VLC_ADD_PLUGIN([gme])
      ],, [-lstdc++ $LIBM])
    ])
    VLC_ADD_LIBS([gme], [-lgme])
  ], [
    AS_IF([test "x${enable_gme}" != "x"], [
      AC_MSG_ERROR([GME cannot be found. Please install the development files.])
    ])
  ])
])


Alan Fischer's avatar
Alan Fischer committed
dnl
dnl  SIDPlay plugin
dnl
    AS_HELP_STRING([--enable-sid],[C64 sid demux support (default auto)]))
AS_IF([test "${enable_sid}" != "no"], [
Pierre Ynard's avatar
Pierre Ynard committed
    PKG_CHECK_MODULES(SID, [libsidplay2], [
        AC_LANG_PUSH(C++)
        oldCPPFLAGS="$CPPFLAGS"
        CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
        AC_CHECK_HEADER([sidplay/builders/resid.h], [
            VLC_ADD_PLUGIN([sid])
            VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
            VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
        ], [
            AS_IF([test -n "${enable_sid}"],
                [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
                [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
                )
        ])
        CPPFLAGS="$oldCPPFLAGS"
        AC_LANG_POP(C++)
    ], [
        AS_IF([test "x${enable_sid}" = "xyes"],
            [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
            [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
gbazin's avatar
 
gbazin committed
dnl
gbazin's avatar
 
gbazin committed
dnl  ogg demux plugin
gbazin's avatar
 
gbazin committed
dnl
PKG_ENABLE_MODULES_VLC([OGG], [mux_ogg], [ogg >= 1.0], [Ogg demux support], [auto])
PKG_CHECK_MODULES(LIBVORBIS, [vorbis >= 1.1], [
    AC_DEFINE(HAVE_LIBVORBIS, 1, [Define to 1 if you have the libvorbis])
PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto], [${LIBVORBIS_CFLAGS}], [${LIBVORBIS_LIBS}])
if test "${enable_sout}" != "no"; then
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
dnl Check for libshout
    PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
gbazin's avatar
 
gbazin committed
dnl
dnl  matroska demux plugin
dnl
PKG_WITH_MODULES([MATROSKA], [libebml >= 1.3.6 libmatroska], [
       VLC_ADD_PLUGIN([mkv])
       VLC_ADD_CFLAGS([mkv], [$MATROSKA_CFLAGS])
       VLC_ADD_LIBS([mkv], [$MATROSKA_LIBS])
       have_matroska="yes"
   ],,[MKV format support], [auto])
AM_CONDITIONAL([HAVE_MATROSKA], [test "${have_matroska}" = "yes"])
gbazin's avatar
 
gbazin committed

gbazin's avatar
 
gbazin committed
dnl
dnl  modplug demux plugin
dnl
  AS_HELP_STRING([--disable-mod],
    [do not use libmodplug (default auto)]))
if test "${enable_mod}" != "no" ; then
    PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.9.0], [
          VLC_ADD_PLUGIN([mod])
          VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
          VLC_ADD_CFLAGS([mod],[$LIBMODPLUG_CFLAGS]) #modules/demux/mod.c needs CFLAGS_mod, not CXXFLAGS_mod
       AS_IF([test -n "${enable_mod}"],
         [AC_MSG_ERROR([${LIBMODPLUG_PKG_ERRORS}.])],
         [AC_MSG_WARN([${LIBMODPLUG_PKG_ERRORS}.])])
gbazin's avatar
 
gbazin committed
fi

  AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)]))
    AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
    VLC_ADD_PLUGIN([mpc])
    VLC_ADD_LIBS([mpc],[-lmpcdec])])
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl  Codec plugins
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl
Samuel Hocevar's avatar
 
Samuel Hocevar committed

EXTEND_HELP_STRING([Codec plugins:])
Samuel Hocevar's avatar
 
Samuel Hocevar committed

dnl shine encoder plugin
PKG_ENABLE_MODULES_VLC([SHINE], [], [shine >= 3.0.0], [MPEG Audio Layer 3 encoder], [auto], [], [], [])

dnl
dnl openmax il codec plugin
dnl
AC_ARG_ENABLE([omxil],
  AS_HELP_STRING([--enable-omxil], [openmax il codec module (default disabled)]))
if test "${enable_omxil}" = "yes"
then
  VLC_ADD_PLUGIN([omxil])
fi

dnl
dnl raspberry pi openmax il configuration
dnl
AC_ARG_ENABLE([rpi-omxil],
  AS_HELP_STRING([--enable-rpi-omxil], [openmax il configured for raspberry pi (default disabled)]))
if test "${enable_rpi_omxil}" = "yes"
then
  VLC_ADD_PLUGIN([omxil])
  VLC_ADD_CFLAGS([omxil],[-DRPI_OMX])
dnl
dnl CrystalHD codec plugin
dnl
AC_ARG_ENABLE([crystalhd],
  AS_HELP_STRING([--enable-crystalhd], [crystalhd codec plugin (default auto)]))
if test "${enable_crystalhd}" != "no"; then
    AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
      VLC_ADD_PLUGIN([crystalhd])
      VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
    ],[
      if test "${SYS}" = "mingw32" ; then
        AC_CHECK_HEADERS([libcrystalhd/bc_dts_defs.h], [
          VLC_ADD_PLUGIN([crystalhd])
          AC_CHECK_HEADERS([libcrystalhd/bc_drv_if.h], [
            VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
            ])
          AS_IF([test x"${enable_crystalhd}" = "xyes"],
                [AC_MSG_ERROR("Could not find CrystalHD development headers")],
                [AC_MSG_WARN("Could not find CrystalHD development headers")])
        ],[#define __LINUX_USER__
               #include <libcrystalhd/bc_dts_types.h>
       #include <libcrystalhd/bc_dts_types.h>
      ])
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl  mad plugin
have_mad="no"
MAD_CFLAGS=""
MAD_LIBS=""

AC_ARG_WITH(mad, AS_HELP_STRING([--with-mad=PATH], [path to libmad]), [
  enable_mad="yes"
], [
  with_mad="no"
])
AS_IF([test "${with_mad}" != "no"], [
  MAD_CFLAGS="-I${with_mad}/include"
  MAD_LIBS="-L${with_mad}/lib"
])

  AS_HELP_STRING([--enable-mad], [libmad module (default enabled)]))
AS_IF([test "${enable_mad}" != "no"], [
  VLC_SAVE_FLAGS
  CPPFLAGS="${CPPFLAGS} ${MAD_CFLAGS}"
  LDFLAGS="${LDFLAGS} ${MAD_LIBS}"
  AC_CHECK_HEADERS([mad.h], [
    AC_CHECK_LIB([mad], [mad_bit_init], [
      have_mad="yes"
      MAD_LIBS="${MAD_LIBS} -lmad"
    ])
  ])
  VLC_RESTORE_FLAGS
  AS_IF([test -n "$enable_mad" -a "${have_mad}" = "no"], [
    AC_MSG_ERROR([Could not find libmad. Install it or pass --disable-mad to disable it.])
  ])
])
AC_SUBST([MAD_CFLAGS])
AC_SUBST([MAD_LIBS])
AM_CONDITIONAL([HAVE_MAD], [test "${have_mad}" = "yes"])
dnl  mpg123 plugin
dnl
dnl
PKG_ENABLE_MODULES_VLC([MPG123], [mpg123], [libmpg123], [libmpg123 decoder support], [auto])

dnl
dnl gstreamer stuff
dnl
AC_ARG_ENABLE([gst-decode],
  AS_HELP_STRING([--enable-gst-decode], [GStreamer based decoding support (currently supports only video decoding) (default auto)]))

have_gst_decode="no"
AS_IF([test "${enable_gst_decode}" != "no"], [
  PKG_CHECK_MODULES([GST_APP], [gstreamer-app-1.0], [
    PKG_CHECK_MODULES([GST_VIDEO], [gstreamer-video-1.0], [
      have_gst_decode="yes"
    ], [
      AC_MSG_WARN([${GST_VIDEO_PKG_ERRORS}. GStreamer decoder module will not be built.])
    ])
  ], [
    AC_MSG_WARN([${GST_APP_PKG_ERRORS}. GStreamer modules will not be built.])
  ])
])
AM_CONDITIONAL([HAVE_GST_DECODE], [test "${have_gst_decode}" = "yes"])

AC_ARG_ENABLE([merge-ffmpeg],
AS_HELP_STRING([--enable-merge-ffmpeg], [merge FFmpeg-based plugins (default disabled)]),, [
  enable_merge_ffmpeg="no"
])
AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])

AC_MSG_CHECKING([for libavutil variant])
PKG_CHECK_EXISTS([libavutil], [
  libavutil_version="$(${PKG_CONFIG} --modversion libavutil)"
  libavutil_micro="${libavutil_version##*.}"
  AS_IF([test ${libavutil_micro} -le 99], [
    avfork="libav"
  ], [
    avfork="ffmpeg"
  ])
], [
  avfork="none"
])
AC_MSG_RESULT([${avfork}])

AC_ARG_ENABLE([avcodec],
AS_HELP_STRING([--enable-avcodec], [libavcodec codec (default enabled)]))
AS_IF([test "${enable_avcodec}" != "no"], [
  dnl We need >=57.16.0 from libav or >=57.37.100 from ffmpeg
  case "${avfork}" in
    libav) av_codec_ver="57.16.0" ;;
    dnl 05f66706d182eb0c36af54d72614bf4c33e957a9  includes libavutil 55.9.0
    ffmpeg) av_codec_ver="57.37.100" ;;
    dnl 7fc329e2dd6226dfecaa4a1d7adf353bf2773726  include libavutil 55.22.101
    *) AC_MSG_ERROR([Missing libav or FFmpeg. Pass --disable-avcodec to ignore this error.])
  PKG_CHECK_MODULES(AVCODEC,[libavcodec >= ${av_codec_ver} libavutil >= 55.9.0], [
    VLC_SAVE_FLAGS
    CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
    CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
    AC_CHECK_HEADERS([libavcodec/avcodec.h])
    AC_CHECK_HEADERS([libavutil/avutil.h])
    VLC_RESTORE_FLAGS
    have_avcodec="yes"
  ],[
    AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
AM_CONDITIONAL([HAVE_AVCODEC], [test "${have_avcodec}" != "no"])
AC_ARG_ENABLE([libva],
  AS_HELP_STRING([--enable-libva], [VAAPI GPU decoding support (libVA) (default auto)]))
AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
  AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
])

have_vaapi="no"
have_vaapi_drm="no"
have_vaapi_x11="no"
have_vaapi_wl="no"
AS_IF([test "${enable_libva}" != "no"], [
  PKG_CHECK_MODULES([LIBVA], [libva >= 0.38], [
    have_vaapi="yes"
  ], [
    AS_IF([test -n "${enable_libva}"], [
      AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
    ], [
      AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
  PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm], [
    have_vaapi_drm="yes"
  ], [
    AC_MSG_WARN([${LIBVA_DRM_PKG_ERRORS}.])
  ])
  PKG_CHECK_MODULES(LIBVA_X11, [libva-x11], [
    have_vaapi_x11="yes"
  ], [
    AC_MSG_WARN([${LIBVA_X11_PKG_ERRORS}.])
  ])
  PKG_CHECK_MODULES(LIBVA_WL, [libva-wayland], [
    have_vaapi_wl="yes"
  ], [
    AC_MSG_WARN([${LIBVA_WL_PKG_ERRORS}.])
  ])
AM_CONDITIONAL([HAVE_VAAPI], [test "${have_vaapi}" = "yes"])
AM_CONDITIONAL([HAVE_VAAPI_DRM], [test "${have_vaapi_drm}" = "yes"])
AM_CONDITIONAL([HAVE_VAAPI_X11], [test "${have_vaapi_x11}" = "yes"])
AM_CONDITIONAL([HAVE_VAAPI_WL], [test "${have_vaapi_wl}" = "yes"])

have_avcodec_vaapi="no"
AS_IF([test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"], [
  VLC_SAVE_FLAGS
  CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
  CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
  AC_CHECK_HEADERS([libavcodec/vaapi.h], [
    AC_MSG_NOTICE([VA API acceleration activated])
    have_avcodec_vaapi="yes"
  ],[
    AS_IF([test -n "${enable_libva}"], [
      AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
    ], [
      AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
    ])
  ])
  VLC_RESTORE_FLAGS
AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_avcodec_vaapi}" = "yes"])
dnl
dnl dxva2 needs avcodec
dnl
AC_ARG_ENABLE([dxva2],
  AS_HELP_STRING([--enable-dxva2], [DxVA2 GPU decoding support (default auto)]))
AS_IF([test "${enable_dxva2}" != "no"], [
  if test "${SYS}" = "mingw32"; then
  AS_IF([test "x${have_avcodec}" = "xyes"], [
    AC_CHECK_HEADERS([dxva2api.h],
        AC_CHECK_HEADERS([libavcodec/dxva2.h], [
           AC_MSG_NOTICE([DxVA2 acceleration activated])
           have_avcodec_dxva2="yes"
    AS_IF([test "${enable_dxva2}" = "yes"],
          [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
              [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
        ], [#undef _WIN32_WINNT
            /* DXVA2 is only available in Vista and above */
            #define _WIN32_WINNT 0x600])
    AS_IF([test "${enable_dxva2}" = "yes"],
              [AC_MSG_ERROR([Could not find required dxva2api.h])],
              [AC_MSG_WARN([dxva2api.h not found])])
      ],[#include <d3d9.h>])
    AS_IF([test "x${enable_dxva2}" != "x"], [
      AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
    ])
AM_CONDITIONAL([HAVE_AVCODEC_DXVA2], [test "${have_avcodec_dxva2}" = "yes"])
AC_ARG_ENABLE([d3d11va],
  AS_HELP_STRING([--enable-d3d11va], [D3D11 GPU decoding support (default auto)]))

have_avcodec_d3d11va="no"
AS_IF([test "${enable_d3d11va}" != "no"], [
  if test "${SYS}" = "mingw32"; then
  AS_IF([test "x${have_avcodec}" = "xyes"], [
        AC_CHECK_TYPES([ID3D11VideoDecoder],
          [
            AC_CHECK_HEADERS([dxva2api.h],
                AC_CHECK_HEADERS([libavcodec/d3d11va.h], [
                   AC_MSG_NOTICE([D3D11 acceleration activated])
                   AC_DEFINE([HAVE_AVCODEC_D3D11VA], [1], [Define if the d3d11va module is built])
                   have_avcodec_d3d11va="yes"
                ],[
                  AS_IF([test "${enable_d3d11va}" = "yes"],
                    [AC_MSG_ERROR([d3d11va is present but libavcodec/d3d11va.h is missing])],
                        [AC_MSG_WARN([d3d11va is present but libavcodec/d3d11va.h is missing ])])
                  ], [#undef _WIN32_WINNT
                      /* D3D11 is only available in Vista and above */
                      #define _WIN32_WINNT 0x600])
                  ],[
                    AS_IF([test "${enable_d3d11va}" = "yes"],
                          [AC_MSG_ERROR([Could not find required dxva2api.h])],
                          [AC_MSG_WARN([dxva2api.h not found])])
                  ],[#include <d3d9.h>])
          ],[
            AS_IF([test "${enable_d3d11va}" = "yes"],
                  [AC_MSG_ERROR([Could not find required ID3D11VideoDecoder in d3d11.h])],
                  [AC_MSG_WARN([ID3D11VideoDecoder not found])])
          ], [#include <d3d11.h>])
  ],[
    AS_IF([test "x${enable_d3d11va}" != "x"], [
      AC_MSG_ERROR([--enable-d3d11va and --disable-avcodec options are mutually exclusive.])
    ])
  ])
  fi
])
AM_CONDITIONAL([HAVE_AVCODEC_D3D11VA], [test "${have_avcodec_d3d11va}" = "yes"])

dnl
dnl DXGI debug
dnl
AC_CHECK_HEADERS([dxgidebug.h dxgi1_6.h])
AC_ARG_ENABLE([avformat],
AS_HELP_STRING([--enable-avformat], [libavformat containers (default enabled)]),, [
  enable_avformat="${have_avcodec}"
])
have_avformat="no"
AS_IF([test "${enable_avformat}" != "no"], [
  PKG_CHECK_MODULES(AVFORMAT,[libavformat >= 53.21.0 libavcodec libavutil], [
      have_avformat="yes"
      VLC_SAVE_FLAGS
      CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
      CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
      AC_CHECK_HEADERS([libavformat/avformat.h libavformat/avio.h])
      AC_CHECK_HEADERS([libavcodec/avcodec.h])
      AC_CHECK_HEADERS([libavutil/avutil.h])
      AS_IF([test "$enable_merge_ffmpeg" = "no"], [
        have_avformat="no"
      AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
])
AM_CONDITIONAL([HAVE_AVFORMAT], [test "${enable_avformat}" != "no"])
dnl
dnl  swscale image scaling and conversion plugin
dnl
AC_ARG_ENABLE([swscale],
  AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
          (default enabled)]))
  PKG_CHECK_MODULES(SWSCALE,[libswscale],
      CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
      CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
      AC_CHECK_HEADERS([libswscale/swscale.h])
      AC_CHECK_HEADERS([libavutil/avutil.h])
      VLC_ADD_PLUGIN([swscale])
      VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
      VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
      AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
        VLC_ADD_LIBS([swscale],[${ac_cv_ld_bsymbolic}])
      AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
hartman's avatar
hartman committed

AC_ARG_ENABLE([postproc],
AS_HELP_STRING([--enable-postproc], [libpostproc image post-processing (default auto)]))
if test "${enable_postproc}" != "no"
then
  PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
    [
      VLC_SAVE_FLAGS
      CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
      CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
      AC_CHECK_HEADERS([postproc/postprocess.h])
      AC_MSG_WARN([${POSTPROC_PKG_ERRORS}.])
AS_HELP_STRING([--enable-faad], [faad codec (default auto)]))
have_faad="no"
AS_IF([test "${enable_faad}" != "no"], [
  AC_CHECK_HEADERS([neaacdec.h], [
    AC_CHECK_LIB([faad], [NeAACDecOpen], [have_faad="yes"],, [$LIBM])

    AS_IF([test "${have_faad}" = "yes"], [
      VLC_ADD_PLUGIN([faad])
      VLC_ADD_LIBS([faad],[-lfaad])
    ], [
      AS_IF([test "${enable_faad}" = "yes"], [
        AC_MSG_ERROR([cannot find FAAD library])
      ], [
        AC_MSG_WARN([cannot find FAAD library])
      ])
    ])
  ])
])
Tristan Matthews's avatar
Tristan Matthews committed
dnl
dnl  AOM decoder plugin
dnl
PKG_ENABLE_MODULES_VLC([AOM], [], [aom], [experimental AV1 codec (default auto)])
dnl
dnl  Dav1d decoder plugin
dnl
PKG_ENABLE_MODULES_VLC([DAV1D], [], [dav1d], [AV1 decoder (default auto)])

Rafaël Carré's avatar
Rafaël Carré committed
dnl
dnl libvpx decoder plugin
dnl
    AS_HELP_STRING([--enable-vpx],[libvpx VP8/VP9 encoder and decoder (default auto)]))
Rafaël Carré's avatar
Rafaël Carré committed
AS_IF([test "${enable_vpx}" != "no"],[
    PKG_CHECK_MODULES([VPX], [vpx >= 1.5.0], [
Rafaël Carré's avatar
Rafaël Carré committed
        VLC_ADD_PLUGIN([vpx])
        VLC_ADD_CPPFLAGS([vpx], [${VPX_CFLAGS}])
        VLC_ADD_LIBS([vpx], [${VPX_LIBS}])
        AC_CHECK_LIB([vpx],[vpx_codec_vp8_dx], [
            VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_DECODER])
        ], [], [${VPX_LIBS}])
Rafaël Carré's avatar
Rafaël Carré committed
        AC_CHECK_LIB([vpx],[vpx_codec_vp9_dx], [
            VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_DECODER])
        ], [], [${VPX_LIBS}])
        AC_CHECK_LIB([vpx],[vpx_codec_vp8_cx], [
            VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_ENCODER])
        ], [], [${VPX_LIBS}])
        AC_CHECK_LIB([vpx],[vpx_codec_vp9_cx], [
            VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_ENCODER])
        ], [], [${VPX_LIBS}])
Rafaël Carré's avatar
Rafaël Carré committed
    ], [
    AS_IF([test "${enable_vpx}" = "yes"],[
        AC_MSG_ERROR([libvpx 1.5.0 or higher was not found])
Rafaël Carré's avatar
Rafaël Carré committed
    ])])
])

Christophe Mutricy's avatar
Christophe Mutricy committed
PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
dnl
dnl fdk-aac encoder plugin
dnl
PKG_ENABLE_MODULES_VLC([FDKAAC], [], [fdk-aac], [FDK-AAC encoder], [disabled])

gbazin's avatar
 
gbazin committed
dnl
gbazin's avatar
 
gbazin committed
dnl A52/AC3 decoder plugin
gbazin's avatar
 
gbazin committed
dnl
  AS_HELP_STRING([--enable-a52], [A/52 support with liba52 (default enabled)]))
if test "${enable_a52}" != "no"
gbazin's avatar
 
gbazin committed
then
  AC_ARG_WITH([a52],
    AS_HELP_STRING([--with-a52=PATH], [a52 headers and libraries]))
Samuel Hocevar's avatar
Samuel Hocevar committed
    if test -z "${with_a52}"
      LDFLAGS_test="-L${with_a52}/lib"
      CPPFLAGS_test="-I${with_a52}/include"
    CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52}"
    LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52}"
    AC_CHECK_HEADERS([a52dec/a52.h], [
      AC_CHECK_LIB([a52], [a52_free], [
        VLC_ADD_PLUGIN([a52])
        VLC_ADD_LIBS([a52],[${LDFLAGS_test} -la52 $LIBM])
        VLC_ADD_CPPFLAGS([a52],[${CPPFLAGS_test}])
gbazin's avatar
 
gbazin committed
        AC_MSG_ERROR([Could not find liba52 on your system: you may get it from http://liba52.sf.net/. Alternatively you can use --disable-a52 to disable the a52 plugin.])
        ], [$LIBM])
    ],[
      AC_MSG_ERROR([Could not find liba52 on your system: you may get it from http://liba52.sf.net/. Alternatively you can use --disable-a52 to disable the a52 plugin.])
gbazin's avatar
 
gbazin committed
    ])
gbazin's avatar
 
gbazin committed
fi

gbazin's avatar
 
gbazin committed
dnl
dnl DTS Coherent Acoustics decoder plugin
dnl
PKG_ENABLE_MODULES_VLC([DCA], [dca], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
gbazin's avatar
 
gbazin committed

gbazin's avatar
 
gbazin committed
dnl  Flac plugin
PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
gbazin's avatar
 
gbazin committed
dnl
dnl  Libmpeg2 plugin
dnl
PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
gbazin's avatar
 
gbazin committed

gbazin's avatar
 
gbazin committed
dnl
dnl  Vorbis plugin
dnl
PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
gbazin's avatar
 
gbazin committed

gbazin's avatar
 
gbazin committed
dnl
dnl  Tremor plugin
dnl
AC_ARG_ENABLE([tremor],
  AS_HELP_STRING([--enable-tremor], [Tremor decoder support (default disabled)]))
if test "${enable_tremor}" = "yes"
gbazin's avatar
 
gbazin committed
then
  AC_CHECK_HEADERS([tremor/ivorbiscodec.h], [
    VLC_ADD_PLUGIN([tremor])
gbazin's avatar
 
gbazin committed
   ],[])
fi

gbazin's avatar
 
gbazin committed
dnl
dnl  Speex plugins
gbazin's avatar
 
gbazin committed
dnl
PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
have_speexdsp="no"
AS_IF([test "${enable_speex}" != "no"], [
  PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
    have_speexdsp="yes"
  ], [
    AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
  ])
])
AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
gbazin's avatar
 
gbazin committed

Timothy B. Terriberry's avatar
Timothy B. Terriberry committed
dnl
dnl  Opus plugin
dnl
Tristan Matthews's avatar
Tristan Matthews committed
PKG_ENABLE_MODULES_VLC([OPUS], [], [ogg opus >= 1.0.3], [Opus support], [auto])
dnl
dnl  Ambisonic channel mixer and binauralizer plugin
dnl
PKG_ENABLE_MODULES_VLC([SPATIALAUDIO], [], [spatialaudio], [Ambisonic channel mixer and binauralizer], [auto])

gbazin's avatar
 
gbazin committed
dnl
dnl  theora decoder plugin
dnl
PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theoradec >= 1.0 theoraenc], [experimental theora codec], [auto])
gbazin's avatar
 
gbazin committed

dnl
dnl  OggSpots decoder plugin
dnl
PKG_ENABLE_MODULES_VLC([OGGSPOTS], [], [ogg], [experimental OggSpots codec], [auto])

dnl
dnl  Daala decoder plugin
dnl
PKG_ENABLE_MODULES_VLC([DAALA], [], [daaladec daalaenc], [experimental daala codec], [disabled])
dnl
dnl  schroedinger decoder plugin (for dirac format video)
dnl
PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
dnl
dnl  PNG decoder module
dnl
  AS_HELP_STRING([--enable-png], [PNG support (default enabled)]))
AS_IF([test "${enable_png}" != "no"], [
AC_CHECK_HEADERS([png.h], [
  LDFLAGS="${LDFLAGS} -lz $LIBM"
  AC_CHECK_LIB([png], [png_set_alpha_mode], [
    VLC_ADD_PLUGIN([png])
  ], [], [-lz $LIBM])
dnl
dnl  JPEG decoder module
dnl
  AS_HELP_STRING([--enable-jpeg], [JPEG support (default enabled)]))
AS_IF([test "${enable_jpeg}" != "no"], [
AC_CHECK_HEADERS([jpeglib.h], [
  VLC_ADD_PLUGIN([jpeg])
  ])
])

dnl
dnl  BPG decoder module
dnl
  AS_HELP_STRING([--enable-bpg], [BPG support (default disabled)]))
AS_IF([test "${enable_bpg}" != "no"], [
AC_CHECK_HEADERS([libbpg.h], [
  VLC_ADD_PLUGIN([bpg])
  ])
])

dnl
dnl H262 encoder plugin (lib262)
dnl