/* Autogenerated config.h created for win32 Visual Studio builds */

/* PREFIX -- specifically added for Windows for easier moving */
#define PREFIX "C:\\gstreamer"

#define GST_INSTALL_PLUGINS_HELPER PREFIX "\\libexec\\gst-install-plugins-helper.exe"

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

/* Default audio sink */
#define DEFAULT_AUDIOSINK "directsoundsink"

/* Default audio source */
#define DEFAULT_AUDIOSRC "audiotestsrc"

/* Default video sink */
#undef DEFAULT_VIDEOSINK

/* Default video source */
#define DEFAULT_VIDEOSRC "videotestsrc"

/* Default visualizer */
#define DEFAULT_VISUALIZER "goom"

/* 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 */
#define GETTEXT_PACKAGE "gst-plugins-good-1.0"

/* 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 */
#define GST_API_VERSION "1.0"

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

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

/* Default errorlevel to use */
#define GST_LEVEL_DEFAULT GST_LEVEL_ERROR

/* GStreamer license */
#define GST_LICENSE "LGPL"

/* package name in plugins */
#define GST_PACKAGE_NAME "GStreamer Good Plug-ins source release"

/* package origin */
#define GST_PACKAGE_ORIGIN "Unknown package origin"

/* GStreamer package release date/time for plugins as YYYY-MM-DD */
#define GST_PACKAGE_RELEASE_DATETIME "2017-02-23"

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

/* Define if Video4Linux probe shall be run at plugin load */
#undef GST_V4L2_ENABLE_PROBE

/* 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 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 */
#define HAVE_CPU_I386 1

/* 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. */
#define HAVE_PROCESS_H 1

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

/* Have PTHREAD_PRIO_INHERIT. */
#undef HAVE_PTHREAD_PRIO_INHERIT

/* 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. */
#define HAVE_STDLIB_H 1

/* 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. */
#define HAVE_STRING_H 1

/* 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. */
#define HAVE_SYS_STAT_H 1

/* 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. */
#define HAVE_SYS_TYPES_H 1

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

/* Defined if the VPX library version is 1.4 or bigger */
#undef HAVE_VPX_1_4

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

/* Defined if Xdamage is available */
#undef HAVE_XDAMAGE

/* Defined if Xfixes is available */
#undef HAVE_XFIXES

/* Defined if XShm is available */
#undef HAVE_XSHM

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

/* the host CPU */
#define HOST_CPU "i686"

/* gettext locale dir */
#define LOCALEDIR PREFIX "\\share\\locale"

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

/* Name of package */
#define PACKAGE "gst-plugins-good"

/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer"

/* Define to the full name of this package. */
#define PACKAGE_NAME "GStreamer Good Plug-ins"

/* Define to the full name and version of this package. */
#define PACKAGE_STRING "GStreamer Good Plug-ins 1.10.4"

/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "gst-plugins-good"

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

/* Define to the version of this package. */
#define PACKAGE_VERSION "1.10.4"

/* directory where plugins are located */
#ifdef _DEBUG
#  define PLUGINDIR PREFIX "\\debug\\lib\\gstreamer-0.11"
#else
#  define PLUGINDIR PREFIX "\\lib\\gstreamer-0.11"
#endif

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

/* Version number of package */
#define VERSION "1.10.4"

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