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

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

/* GStreamer API Version */
#undef GST_API_VERSION

/* Define if extra runtime checks should be enabled */
#undef GST_ENABLE_EXTRA_CHECKS

/* macro to use to show function name */
#undef GST_FUNCTION

/* 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 a52dec (used by a52dec). */
#undef HAVE_A52DEC

/* Define to enable amrnb library (used by amrnb). */
#undef HAVE_AMRNB

/* Define to enable amrwb library (used by amrwbdec). */
#undef HAVE_AMRWB

/* Define to enable cdio library (used by cdio). */
#undef HAVE_CDIO

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

/* 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 dvdread library (used by dvdreadsrc). */
#undef HAVE_DVDREAD

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

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

/* defined if the compiler implements __func__ */
#undef HAVE_FUNC

/* defined if the compiler implements __FUNCTION__ */
#undef HAVE_FUNCTION

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

/* 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 to enable lame mp3 encoder library (used by lame). */
#undef HAVE_LAME

/* Define to enable mad mp3 decoder (used by mad). */
#undef HAVE_MAD

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

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

/* Define to enable mpeg2dec (used by mpeg2dec). */
#undef HAVE_MPEG2DEC

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

/* Use Orc */
#undef HAVE_ORC

/* defined if the compiler implements __PRETTY_FUNCTION__ */
#undef HAVE_PRETTY_FUNCTION

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

/* Define to enable libsidplay (used by sid). */
#undef HAVE_SIDPLAY

/* 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/stat.h> header file. */
#undef HAVE_SYS_STAT_H

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

/* Define to enable twolame (used by twolame). */
#undef HAVE_TWOLAME

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

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

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

/* Define to enable x264 plug-in (used by x264). */
#undef HAVE_X264

/* the host CPU */
#undef HOST_CPU

/* gettext locale dir */
#undef LOCALEDIR

/* Define to the sub-directory where 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

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

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