/* config.h.in.  Generated from configure.ac by autoheader.  */

/* Define if building universal (internal helper macro) */
#undef AC_APPLE_UNIVERSAL_BUILD

/* Default audio sink */
#undef DEFAULT_AUDIOSINK

/* Default audio source */
#undef DEFAULT_AUDIOSRC

/* Default video sink */
#undef DEFAULT_VIDEOSINK

/* Default video source */
#undef DEFAULT_VIDEOSRC

/* Default visualizer */
#undef DEFAULT_VISUALIZER

/* Disable Orc */
#undef DISABLE_ORC

/* Define if an old libdts is used */
#undef DTS_OLD

/* Define to 1 if translation of program messages to the user's native
   language is requested. */
#undef ENABLE_NLS

/* The x in 2.x */
#undef FAAD2_MINOR_VERSION

/* Define if AAC is using new api prefix */
#undef FAAD_IS_NEAAC

/* gettext package name */
#undef GETTEXT_PACKAGE

/* The GIO library directory. */
#undef GIO_LIBDIR

/* The GIO modules directory. */
#undef GIO_MODULE_DIR

/* The GIO install prefix. */
#undef GIO_PREFIX

/* Define if GSM header in gsm/ subdir */
#undef GSM_HEADER_IN_SUBDIR

/* GStreamer API Version */
#undef GST_API_VERSION

/* Extra platform specific plugin suffix */
#undef GST_EXTRA_MODULE_SUFFIX

/* Defined if gcov is enabled to force a rebuild due to config.h changing */
#undef GST_GCOV_ENABLED

/* EGL module name */
#undef GST_GL_LIBEGL_MODULE_NAME

/* GLES2 module name */
#undef GST_GL_LIBGLESV2_MODULE_NAME

/* OpenGL module name */
#undef GST_GL_LIBGL_MODULE_NAME

/* Defined when registry scanning through fork is unsafe */
#undef GST_HAVE_UNSAFE_FORK

/* Default errorlevel to use */
#undef GST_LEVEL_DEFAULT

/* GStreamer license */
#undef GST_LICENSE

/* mjpegtools API evolution */
#undef GST_MJPEGTOOLS_API

/* package name in plugins */
#undef GST_PACKAGE_NAME

/* package origin */
#undef GST_PACKAGE_ORIGIN

/* GStreamer package release date/time for plugins as YYYY-MM-DD */
#undef GST_PACKAGE_RELEASE_DATETIME

/* Define if static plugins should be built */
#undef GST_PLUGIN_BUILD_STATIC

/* Define to enable Windows ACM library (used by acm). */
#undef HAVE_ACM

/* Define to enable Android Media (used by androidmedia). */
#undef HAVE_ANDROID_MEDIA

/* Define to enable AirPort Express Wireless sink (used by apexsink). */
#undef HAVE_APEXSINK

/* Define to enable Apple video (used by applemedia). */
#undef HAVE_APPLE_MEDIA

/* Define to enable ASS/SSA renderer (used by assrender). */
#undef HAVE_ASSRENDER

/* Define to enable AVC Video Services (used by avcsrc). */
#undef HAVE_AVC

/* Define if building with AVFoundation */
#undef HAVE_AVFOUNDATION

/* Define to enable Bluez (used by bluez). */
#undef HAVE_BLUEZ

/* Bluez5 detected */
#undef HAVE_BLUEZ5

/* Define to enable bs2b (used by bs2b). */
#undef HAVE_BS2B

/* Define to enable bz2 library (used by bz2). */
#undef HAVE_BZ2

/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
   CoreFoundation framework. */
#undef HAVE_CFLOCALECOPYCURRENT

/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
   the CoreFoundation framework. */
#undef HAVE_CFPREFERENCESCOPYAPPVALUE

/* Define to enable chromaprint (used by chromaprint). */
#undef HAVE_CHROMAPRINT

/* Define if the target CPU is AARCH64 */
#undef HAVE_CPU_AARCH64

/* Define if the target CPU is an Alpha */
#undef HAVE_CPU_ALPHA

/* Define if the target CPU is an ARC */
#undef HAVE_CPU_ARC

/* Define if the target CPU is an ARM */
#undef HAVE_CPU_ARM

/* Define if the target CPU is a CRIS */
#undef HAVE_CPU_CRIS

/* Define if the target CPU is a CRISv32 */
#undef HAVE_CPU_CRISV32

/* Define if the target CPU is a HPPA */
#undef HAVE_CPU_HPPA

/* Define if the target CPU is an x86 */
#undef HAVE_CPU_I386

/* Define if the target CPU is a IA64 */
#undef HAVE_CPU_IA64

/* Define if the target CPU is a M68K */
#undef HAVE_CPU_M68K

/* Define if the target CPU is a MIPS */
#undef HAVE_CPU_MIPS

/* Define if the target CPU is a PowerPC */
#undef HAVE_CPU_PPC

/* Define if the target CPU is a 64 bit PowerPC */
#undef HAVE_CPU_PPC64

/* Define if the target CPU is a S390 */
#undef HAVE_CPU_S390

/* Define if the target CPU is a SPARC */
#undef HAVE_CPU_SPARC

/* Define if the target CPU is a x86_64 */
#undef HAVE_CPU_X86_64

/* Define to enable Curl plugin (used by curl). */
#undef HAVE_CURL

/* Define to enable daala (used by daala). */
#undef HAVE_DAALA

/* Define to enable DASH plug-in (used by dash). */
#undef HAVE_DASH

/* Define to enable libdc1394 (used by dc1394). */
#undef HAVE_DC1394

/* Define if the GNU dcgettext() function is already present or preinstalled.
   */
#undef HAVE_DCGETTEXT

/* Define to enable decklink (used by decklink). */
#undef HAVE_DECKLINK

/* Define to enable Direct3D plug-in (used by direct3dsink). */
#undef HAVE_DIRECT3D

/* Define to enable directfb (used by dfbvideosink ). */
#undef HAVE_DIRECTFB

/* Define to enable DirectSound (used by directsoundsrc). */
#undef HAVE_DIRECTSOUND

/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H

/* define for working do while(0) macros */
#undef HAVE_DOWHILE_MACROS

/* Define to enable DTLS plugin (used by dtls). */
#undef HAVE_DTLS

/* Define to enable dts library (used by dtsdec). */
#undef HAVE_DTS

/* Define to enable DVB Source (used by dvb). */
#undef HAVE_DVB

/* Define to enable building of experimental plug-ins. */
#undef HAVE_EXPERIMENTAL

/* Define to enable building of plug-ins with external deps. */
#undef HAVE_EXTERNAL

/* Define to enable AAC encoder plug-in (used by faac). */
#undef HAVE_FAAC

/* Define to enable AAC decoder plug-in (used by faad). */
#undef HAVE_FAAD

/* Define to enable linux framebuffer (used by fbdevsink). */
#undef HAVE_FBDEV

/* Define to 1 if you have the <fcntl.h> header file. */
#undef HAVE_FCNTL_H

/* FIONREAD ioctl found in sys/filio.h */
#undef HAVE_FIONREAD_IN_SYS_FILIO

/* FIONREAD ioctl found in sys/ioclt.h */
#undef HAVE_FIONREAD_IN_SYS_IOCTL

/* Define to enable Flite plugin (used by flite). */
#undef HAVE_FLITE

/* Define to enable fluidsynth (used by fluidsynth). */
#undef HAVE_FLUIDSYNTH

/* Define to 1 if you have the `getpagesize' function. */
#undef HAVE_GETPAGESIZE

/* Define if the GNU gettext() function is already present or preinstalled. */
#undef HAVE_GETTEXT

/* Define to enable gl elements (used by gl). */
#undef HAVE_GL

/* Define to 1 if the system has the type `GLchar'. */
#undef HAVE_GLCHAR

/* Define to 1 if the system has the type `GLeglImageOES'. */
#undef HAVE_GLEGLIMAGEOES

/* Define to 1 if the system has the type `GLintptr'. */
#undef HAVE_GLINTPTR

/* Define to 1 if the system has the type `GLsizeiptr'. */
#undef HAVE_GLSIZEIPTR

/* Define to 1 if the system has the type `GLsync'. */
#undef HAVE_GLSYNC

/* Define to 1 if the system has the type `GLuint64'. */
#undef HAVE_GLUINT64

/* Define to enable gme decoder (used by gme). */
#undef HAVE_GME

/* Define to 1 if you have the `gmtime_r' function. */
#undef HAVE_GMTIME_R

/* Use graphene */
#undef HAVE_GRAPHENE

/* Define to enable GSettings plugin (used by gsettings). */
#undef HAVE_GSETTINGS

/* Define to enable GSM library (used by gsmenc gsmdec). */
#undef HAVE_GSM

/* Define to enable Gtk+ elements (used by gtk). */
#undef HAVE_GTK3

/* Define if Gtk+ 3.0 GL is installed */
#undef HAVE_GTK3_GL

/* Define if gudev is installed */
#undef HAVE_GUDEV

/* Define to enable http live streaming plugin (used by hls). */
#undef HAVE_HLS

/* Define if you have the iconv() function and it works. */
#undef HAVE_ICONV

/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H

/* Define if building for Apple iOS */
#undef HAVE_IOS

/* Use libjpeg */
#undef HAVE_JPEG

/* Define to enable Kate (used by kate). */
#undef HAVE_KATE

/* Define to enable ladspa (used by ladspa). */
#undef HAVE_LADSPA

/* Define to enable libde265 HEVC/H.265 decoder (used by libde265). */
#undef HAVE_LIBDE265

/* Define if libgcrypt is available */
#undef HAVE_LIBGCRYPT

/* Define if gme 0.5.6 or newer is available */
#undef HAVE_LIBGME_ACCURACY

/* Define to enable mms protocol library (used by libmms). */
#undef HAVE_LIBMMS

/* Define to 1 if you have the `nsl' library (-lnsl). */
#undef HAVE_LIBNSL

/* Define to 1 if you have the `socket' library (-lsocket). */
#undef HAVE_LIBSOCKET

/* Define if libusb 1.x is installed */
#undef HAVE_LIBUSB

/* Define to enable libvisual visualization library (used by libvisual). */
#undef HAVE_LIBVISUAL

/* Define to enable Linear Systems SDI plugin (used by linsys). */
#undef HAVE_LINSYS

/* Define if we have liblrdf */
#undef HAVE_LRDF

/* Define to enable lv2 (used by lv2). */
#undef HAVE_LV2

/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H

/* Define to enable libmimic library (used by mimic). */
#undef HAVE_MIMIC

/* Define to 1 if you have a working `mmap' system call. */
#undef HAVE_MMAP

/* Define to enable modplug (used by modplug). */
#undef HAVE_MODPLUG

/* Define to enable mpeg2enc (used by mpeg2enc). */
#undef HAVE_MPEG2ENC

/* Define to enable mpg123 audio decoder (used by mpg123). */
#undef HAVE_MPG123

/* Define to enable mplex (used by mplex). */
#undef HAVE_MPLEX

/* Define to 1 if you have the <msacm.h> header file. */
#undef HAVE_MSACM_H

/* Define to enable musepackdec (used by musepack). */
#undef HAVE_MUSEPACK

/* Define to enable nas plug-in (used by nassink). */
#undef HAVE_NAS

/* Define to enable neon http client plugins (used by neonhttpsrc). */
#undef HAVE_NEON

/* Define to 1 if you have the <netinet/in.h> header file. */
#undef HAVE_NETINET_IN_H

/* Define to 1 if you have the <netinet/ip.h> header file. */
#undef HAVE_NETINET_IP_H

/* Define to 1 if you have the <netinet/tcp.h> header file. */
#undef HAVE_NETINET_TCP_H

/* Define if nettle is available */
#undef HAVE_NETTLE

/* Define to enable ofa plugins (used by ofa). */
#undef HAVE_OFA

/* Define to enable OpenAL plugin (used by openal). */
#undef HAVE_OPENAL

/* Define to enable opencv plugins (used by opencv). */
#undef HAVE_OPENCV

/* Define to 1 if you have the <opencv2/contrib/contrib.hpp> header file. */
#undef HAVE_OPENCV2_CONTRIB_CONTRIB_HPP

/* Define to 1 if you have the <opencv2/core/core_c.h> header file. */
#undef HAVE_OPENCV2_CORE_CORE_C_H

/* Define to 1 if you have the <opencv2/core/types_c.h> header file. */
#undef HAVE_OPENCV2_CORE_TYPES_C_H

/* Define to 1 if you have the <opencv2/core/version.hpp> header file. */
#undef HAVE_OPENCV2_CORE_VERSION_HPP

/* Define to 1 if you have the <opencv2/highgui/highgui_c.h> header file. */
#undef HAVE_OPENCV2_HIGHGUI_HIGHGUI_C_H

/* Define to 1 if you have the <opencv2/imgproc/imgproc_c.h> header file. */
#undef HAVE_OPENCV2_IMGPROC_IMGPROC_C_H

/* Define to 1 if you have the <opencv2/imgproc/imgproc.hpp> header file. */
#undef HAVE_OPENCV2_IMGPROC_IMGPROC_HPP

/* Define to 1 if you have the <opencv2/legacy/compat.hpp> header file. */
#undef HAVE_OPENCV2_LEGACY_COMPAT_HPP

/* Define to 1 if you have the <opencv2/legacy/legacy.hpp> header file. */
#undef HAVE_OPENCV2_LEGACY_LEGACY_HPP

/* Define to 1 if you have the <opencv2/objdetect/objdetect.hpp> header file.
   */
#undef HAVE_OPENCV2_OBJDETECT_OBJDETECT_HPP

/* Define to 1 if you have the <opencv2/video/background_segm.hpp> header
   file. */
#undef HAVE_OPENCV2_VIDEO_BACKGROUND_SEGM_HPP

/* Define to enable openexr library (used by openexr). */
#undef HAVE_OPENEXR

/* Define to enable openh264 library (used by openh264). */
#undef HAVE_OPENH264

/* Define to enable openjpeg library (used by openjpeg). */
#undef HAVE_OPENJPEG

/* Define if OpenJPEG 1 is used */
#undef HAVE_OPENJPEG_1

/* Define to enable openni2 library (used by openni2). */
#undef HAVE_OPENNI2

/* Define to enable OpenSL ES (used by opensl). */
#undef HAVE_OPENSLES

/* Define if openssl is available */
#undef HAVE_OPENSSL

/* Define to enable opus (used by opus). */
#undef HAVE_OPUS

/* Use Orc */
#undef HAVE_ORC

/* Apple Mac OS X operating system detected */
#undef HAVE_OSX

/* Use libpng */
#undef HAVE_PNG

/* Define if you have POSIX threads libraries and header files. */
#undef HAVE_PTHREAD

/* Define to 1 if you have the <pthread.h> header file. */
#undef HAVE_PTHREAD_H

/* Have PTHREAD_PRIO_INHERIT. */
#undef HAVE_PTHREAD_PRIO_INHERIT

/* Define to enable pvrvideosink (used by pvr). */
#undef HAVE_PVR

/* Define to enable Qt elements (used by qt). */
#undef HAVE_QT

/* Define if Qt X11 integration is installed */
#undef HAVE_QT_X11

/* Define if RDTSC is available */
#undef HAVE_RDTSC

/* Define to enable resindvd plugin (used by resindvd). */
#undef HAVE_RESINDVD

/* Define to enable rsvg decoder (used by rsvg). */
#undef HAVE_RSVG

/* Have RSVG 2.36.2 or newer */
#undef HAVE_RSVG_2_36_2

/* Define to enable rtmp library (used by rtmp). */
#undef HAVE_RTMP

/* Define to enable SBC bluetooth audio codec (used by sbc). */
#undef HAVE_SBC

/* Define to enable Schroedinger video codec (used by schro). */
#undef HAVE_SCHRO

/* Define to enable SDL plug-in (used by sdlvideosink sdlaudiosink). */
#undef HAVE_SDL

/* Define to enable POSIX shared memory source and sink (used by shm). */
#undef HAVE_SHM

/* Define to enable Smooth Streaming plug-in (used by smoothstreaming). */
#undef HAVE_SMOOTHSTREAMING

/* Define to enable sndfile plug-in (used by sfdec sfenc). */
#undef HAVE_SNDFILE

/* Define to enable sndio audio (used by sndio). */
#undef HAVE_SNDIO

/* Define to enable soundtouch plug-in (used by soundtouch). */
#undef HAVE_SOUNDTOUCH

/* Defined if the available libSoundTouch is >= 1.4 */
#undef HAVE_SOUNDTOUCH_1_4

/* Define to enable Spandsp (used by spandsp). */
#undef HAVE_SPANDSP

/* Define to enable spc decoder (used by spc). */
#undef HAVE_SPC

/* Define to enable srtp library (used by srtp). */
#undef HAVE_SRTP

/* Define if libssh2 is available */
#undef HAVE_SSH2

/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H

/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H

/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H

/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H

/* Define to 1 if you have the <sys/param.h> header file. */
#undef HAVE_SYS_PARAM_H

/* Define to 1 if you have the <sys/socket.h> header file. */
#undef HAVE_SYS_SOCKET_H

/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H

/* Define to 1 if you have the <sys/time.h> header file. */
#undef HAVE_SYS_TIME_H

/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H

/* Define to 1 if you have the <sys/utsname.h> header file. */
#undef HAVE_SYS_UTSNAME_H

/* Define to enable Teletext decoder (used by teletextdec). */
#undef HAVE_TELETEXTDEC

/* Define if libtiger is available */
#undef HAVE_TIGER

/* Define to enable timidity midi soft synth plugin (used by timidity). */
#undef HAVE_TIMIDITY

/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H

/* Define to enable UVC H264 (used by uvch264). */
#undef HAVE_UVCH264

/* Define if valgrind should be used */
#undef HAVE_VALGRIND

/* Define to enable Video CD (used by vcdsrc). */
#undef HAVE_VCD

/* Define to enable VDPAU (used by vdpau). */
#undef HAVE_VDPAU

/* Define if building with VideoToolbox */
#undef HAVE_VIDEOTOOLBOX

/* Define if building with VideoToolbox >= 10.9.6 */
#undef HAVE_VIDEOTOOLBOX_10_9_6

/* Define to enable vo-aacenc library (used by vo-aacenc). */
#undef HAVE_VOAACENC

/* Define to enable vo-amrwbenc library (used by vo-amrwbenc). */
#undef HAVE_VOAMRWBENC

/* Define to enable WASAPI plug-in (used by wasapi). */
#undef HAVE_WASAPI

/* Define to enable wayland sink (used by wayland ). */
#undef HAVE_WAYLAND

/* Define to enable WebP (used by webp ). */
#undef HAVE_WEBP

/* Define to enable wildmidi midi soft synth plugin (used by wildmidi). */
#undef HAVE_WILDMIDI

/* Have WildMidi 0.2.2 or earlier library */
#undef HAVE_WILDMIDI_0_2_2

/* Defined if compiling for Windows */
#undef HAVE_WIN32

/* Define to 1 if you have the <windows.h> header file. */
#undef HAVE_WINDOWS_H

/* Define to enable Windows internet library (used by wininet). */
#undef HAVE_WININET

/* Define to 1 if you have the <wininet.h> header file. */
#undef HAVE_WININET_H

/* Define to enable Winks plug-in (used by winks). */
#undef HAVE_WINKS

/* Define to enable winscreencap plug-in (used by winscreencap). */
#undef HAVE_WINSCREENCAP

/* Define to 1 if you have the <winsock2.h> header file. */
#undef HAVE_WINSOCK2_H

/* Define to 1 if you have the <ws2tcpip.h> header file. */
#undef HAVE_WS2TCPIP_H

/* Define if you have X11 library */
#undef HAVE_X11

/* Define to enable x265 plug-in (used by x265). */
#undef HAVE_X265

/* Define to enable xvid plugins (used by xvid). */
#undef HAVE_XVID

/* Define to enable ZBar barcode detector (used by zbar). */
#undef HAVE_ZBAR

/* the host CPU */
#undef HOST_CPU

/* library dir */
#undef LIBDIR

/* directory in which the detected libvisual's plugins are located */
#undef LIBVISUAL_PLUGINSBASEDIR

/* gettext locale dir */
#undef LOCALEDIR

/* Define to the sub-directory in which libtool stores uninstalled libraries.
   */
#undef LT_OBJDIR

/* Define if the old MusePack API is used */
#undef MPC_IS_OLD_API

/* OpenCV path name */
#undef OPENCV_PATH_NAME

/* opencv install prefix */
#undef OPENCV_PREFIX

/* Name of package */
#undef PACKAGE

/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT

/* Define to the full name of this package. */
#undef PACKAGE_NAME

/* Define to the full name and version of this package. */
#undef PACKAGE_STRING

/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME

/* Define to the home page for this package. */
#undef PACKAGE_URL

/* Define to the version of this package. */
#undef PACKAGE_VERSION

/* directory where plugins are located */
#undef PLUGINDIR

/* Define to necessary symbol if this constant uses a non-standard name on
   your system. */
#undef PTHREAD_CREATE_JOINABLE

/* The size of `char', as computed by sizeof. */
#undef SIZEOF_CHAR

/* The size of `int', as computed by sizeof. */
#undef SIZEOF_INT

/* The size of `long', as computed by sizeof. */
#undef SIZEOF_LONG

/* The size of `short', as computed by sizeof. */
#undef SIZEOF_SHORT

/* The size of `void*', as computed by sizeof. */
#undef SIZEOF_VOIDP

/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS

/* the target CPU */
#undef TARGET_CPU

/* Define location of timidity.cfg */
#undef TIMIDITY_CFG

/* Use Mali FB EGL platform */
#undef USE_EGL_MALI_FB

/* Use RPi platform */
#undef USE_EGL_RPI

/* Version number of package */
#undef VERSION

/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
   significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD
# if defined __BIG_ENDIAN__
#  define WORDS_BIGENDIAN 1
# endif
#else
# ifndef WORDS_BIGENDIAN
#  undef WORDS_BIGENDIAN
# endif
#endif

/* We need at least WinXP SP2 for __stat64 */
#undef __MSVCRT_VERSION__
