/* 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 to 1 if translation of program messages to the user's native
   language is requested. */
#undef ENABLE_NLS

/* gettext package name */
#undef GETTEXT_PACKAGE

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

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

/* GStreamer API Version */
#undef GST_API_VERSION

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

/* Default errorlevel to use */
#undef GST_LEVEL_DEFAULT

/* GStreamer license */
#undef GST_LICENSE

/* 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 aalib ASCII Art library (used by aasink). */
#undef HAVE_AALIB

/* Define to 1 if you have the `asinh' function. */
#undef HAVE_ASINH

/* Define to enable bz2 library for matroska . */
#undef HAVE_BZ2

/* Define to enable Cairo graphics rendering and gobject bindings (used by
   cairo). */
#undef HAVE_CAIRO

/* 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 1 if you have the `clock_gettime' function. */
#undef HAVE_CLOCK_GETTIME

/* Define to 1 if you have the `cosh' function. */
#undef HAVE_COSH

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

/* 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 if the GNU dcgettext() function is already present or preinstalled.
   */
#undef HAVE_DCGETTEXT

/* Define to enable DirectSound plug-in (used by directsoundsink). */
#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 raw1394 and avc1394 library (used by 1394). */
#undef HAVE_DV1394

/* 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 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 FLAC lossless audio (used by flac). */
#undef HAVE_FLAC

/* Define to 1 if you have the `fpclass' function. */
#undef HAVE_FPCLASS

/* Define if compiler supports gcc inline assembly */
#undef HAVE_GCC_ASM

/* Define to enable GDK pixbuf (used by gdkpixbuf). */
#undef HAVE_GDK_PIXBUF

/* 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 Video 4 Linux 2 (used by video4linux2). */
#undef HAVE_GST_V4L2

/* Whether gudev is available for device detection */
#undef HAVE_GUDEV

/* 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

/* building for iOS platofrm */
#undef HAVE_IOS

/* Define if we have struct ip_mreqn */
#undef HAVE_IP_MREQN

/* Define to 1 if you have the `isinf' function. */
#undef HAVE_ISINF

/* Define to enable Jack (used by jack). */
#undef HAVE_JACK

/* defined if jack >= 0.120.1 is available */
#undef HAVE_JACK_0_120_1

/* defined if jack >= 1.9.7 is available */
#undef HAVE_JACK_1_9_7

/* Define to enable jpeg library (used by jpeg). */
#undef HAVE_JPEG

/* Define to enable libcaca coloured ASCII art (used by cacasink). */
#undef HAVE_LIBCACA

/* Define to enable libdv DV demuxer/decoder (used by dv). */
#undef HAVE_LIBDV

/* Define to enable Portable Network Graphics library (used by png). */
#undef HAVE_LIBPNG

/* Whether libv4l2 is available for video buffer conversion */
#undef HAVE_LIBV4L2

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

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

/* Use Orc */
#undef HAVE_ORC

/* Define to enable OSS audio (used by ossaudio). */
#undef HAVE_OSS

/* Define to enable Open Sound System 4 (used by oss4). */
#undef HAVE_OSS4

/* Define if OSS includes are in /machine/ */
#undef HAVE_OSS_INCLUDE_IN_MACHINE

/* Define if OSS includes are in / */
#undef HAVE_OSS_INCLUDE_IN_ROOT

/* Define if OSS includes are in /sys/ */
#undef HAVE_OSS_INCLUDE_IN_SYS

/* Define to enable OSX audio (used by osxaudio). */
#undef HAVE_OSX_AUDIO

/* Define to enable OSX video (used by osxvideosink). */
#undef HAVE_OSX_VIDEO

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

/* Define to enable pulseaudio plug-in (used by pulseaudio). */
#undef HAVE_PULSE

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

/* Define to 1 if you have the `rint' function. */
#undef HAVE_RINT

/* Define to enable Shoutcast/Icecast client library (used by shout2). */
#undef HAVE_SHOUT2

/* Define to 1 if you have the `sinh' function. */
#undef HAVE_SINH

/* Define to enable soup http client plugin (2.4) (used by souphttpsrc). */
#undef HAVE_SOUP

/* Define to enable speex speech codec (used by speex). */
#undef HAVE_SPEEX

/* 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 enable Sun Audio (used by sunaudio). */
#undef HAVE_SUNAUDIO

/* Define to 1 if you have the <sys/ioctl.h> header file. */
#undef HAVE_SYS_IOCTL_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 enable taglib tagging library (used by taglib). */
#undef HAVE_TAGLIB

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

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

/* Defined if the VP8 decoder is available */
#undef HAVE_VP8_DECODER

/* Defined if the VP8 encoder is available */
#undef HAVE_VP8_ENCODER

/* Defined if the VP9 decoder is available */
#undef HAVE_VP9_DECODER

/* Defined if the VP9 encoder is available */
#undef HAVE_VP9_ENCODER

/* Define to enable VPX decoder (used by vpx). */
#undef HAVE_VPX

/* Define to enable Win32 WaveForm (used by waveformsink). */
#undef HAVE_WAVEFORM

/* Define to enable wavpack plug-in (used by wavpack). */
#undef HAVE_WAVPACK

/* Define to enable X libraries and plugins (used by ximagesrc). */
#undef HAVE_X

/* Define to enable X Shared Memory extension. */
#undef HAVE_XSHM

/* Define to enable zlib support for qtdemux/matroska. */
#undef HAVE_ZLIB

/* the host CPU */
#undef HOST_CPU

/* gettext locale dir */
#undef LOCALEDIR

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

/* 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

/* 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

/* defined if speex 1.0.x API detected */
#undef SPEEX_1_0

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

/* the target CPU */
#undef TARGET_CPU

/* Version number of package */
#undef VERSION

/* old wavpack API */
#undef WAVPACK_OLD_API

/* 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

/* Define to 1 if the X Window System is missing or not being used. */
#undef X_DISPLAY_MISSING
