second attempt fixing gdkpixbuf stuff
[platform/upstream/gstreamer.git] / configure.ac
index 4ae65d8..3f7347e 100644 (file)
@@ -12,7 +12,7 @@ AM_MAINTAINER_MODE
 
 dnl when going to/from release please set the nano (fourth number) right !
 dnl releases only do Wall, cvs and prerelease does Werror too
-AS_VERSION(gst-plugins, GST_PLUGINS_VERSION, 0, 7, 0, 1, GST_ERROR="-Wall", GST_ERROR="-Wall -Werror")
+AS_VERSION(gst-plugins, GST_PLUGINS_VERSION, 0, 7, 0, 1, GST_CVS="no", GST_CVS="yes")
 AM_INIT_AUTOMAKE($PACKAGE,$VERSION)
 
 dnl our libraries and install dirs use major.minor as a version
@@ -39,6 +39,25 @@ AC_PROG_CC
 AM_PROG_CC_STDC
 AM_PROG_AS
 AS="${CC}"
+
+dnl decide on error flags
+AS_COMPILER_FLAG(-Wall, GST_WALL="yes", GST_WALL="no")
+
+if test "x$GST_WALL" = "xyes"; then
+   GST_ERROR="$GST_ERROR -Wall"
+
+   if test "x$GST_CVS" = "xyes"; then
+     AS_COMPILER_FLAG(-Werror,GST_ERROR="$GST_ERROR -Werror",GST_ERROR="$GST_ERROR")
+   fi
+
+   dnl set gcc-style optimization flags if using the gnu compiler.
+   GST_FUNROLL_CFLAGS="$GST_FUNROLL_CFLAGS -funroll-all-loops"
+   GST_FINLINE_CFLAGS="$GST_FINLINE_CFLAGS -finline-functions"
+   GST_FFASTMATH_CFLAGS="$GST_FFASTMATH_CFLAGS -ffast-math"
+   GST_FSCHEDULE_CFLAGS="$GST_FSCHEDULE_CFLAGS -fschedule-insns2"
+   GST_FNOEXCEPTIONS_CFLAGS="$GST_FNOEXCEPTIONS_CFLAGS -fno-exceptions"
+fi
+
 dnl determine c++ compiler
 AC_PROG_CXX
 dnl determine if c++ is available on this system
@@ -73,12 +92,10 @@ GST_CHECK_FEATURE(EXPERIMENTAL, [enable building of experimental plug-ins],,
 [
   AC_MSG_WARN(building experimental plug-ins)
   USE_TARKIN="yes"
-  USE_RTP="yes"
   USE_SHOUT2="yes"
 ],[
   AC_MSG_NOTICE(not building experimental plug-ins)
   USE_TARKIN="no"
-  USE_RTP="no"
   USE_SHOUT2="no"
 ])
 
@@ -87,13 +104,7 @@ GST_CHECK_FEATURE(BROKEN, [enable building of broken plug-ins],,
 HAVE_BROKEN=yes,disabled,
 [  
   AC_MSG_WARN([building broken plug-ins -- no bug reports on these, only patches :)])
-  USE_SMOOTHWAVE="yes"
-  USE_VGA="yes"
-  USE_XMMS="yes"
 ],[
-  USE_SMOOTHWAVE="no"
-  USE_VGA="no"
-  USE_XMMS="no"
   AC_MSG_NOTICE([not building broken plug-ins])
 ])
 
@@ -159,10 +170,17 @@ if test -z $GST_TOOLS_DIR; then
 fi
 AC_SUBST(GST_TOOLS_DIR)
 
-dnl additional gstcontrol libs
-GST_CONTROL_LIBS=`pkg-config --variable=gstcontrol_libs gstreamer-$GST_MAJORMINOR`
+dnl check for gstreamer-control; uninstalled is selected preferentially
+PKG_CHECK_MODULES(GST_CONTROL, gstreamer-control-$GST_MAJORMINOR >= $GST_PLUGINS_VERSION_MAJOR.$GST_PLUGINS_VERSION_MINOR.$GST_PLUGINS_VERSION_MICRO,
+  HAVE_GST_CONTROL="yes", HAVE_GST_CONTROL="no")
+
+if test "x$HAVE_GST_CONTROL" = "xno"; then
+  AC_MSG_ERROR(no GStreamer Control Libs found)
+fi
+
 AC_SUBST(GST_CONTROL_LIBS)
 
+
 dnl Set up conditionals for (target) architecture:
 dnl ==============================================
 
@@ -201,7 +219,18 @@ dnl Check for essential libraries first:
 dnl ====================================
 
 GST_GLIB2_CHECK()
-PKG_CHECK_MODULES(GTK2, gtk+-2.0, HAVE_GTK=yes, HAVE_GTK=no)
+
+dnl GTK
+HAVE_GTK=NO
+PKG_CHECK_MODULES(GTK2, gtk+-2.0 >= 2.2.0, HAVE_GTK_22=yes, HAVE_GTK_22=no)
+if test "x$HAVE_GTK_22" = "xyes"; then
+  HAVE_GTK=yes
+else
+  PKG_CHECK_MODULES(GTK2, gtk+-2.0, HAVE_GTK_20=yes, HAVE_GTK_20=no)
+fi
+if test "x$HAVE_GTK_20" = "xyes"; then
+  HAVE_GTK=yes
+fi
 GTK_CFLAGS=$GTK2_CFLAGS
 GTK_LIBS=$GTK2_LIBS
 AC_SUBST(GTK_LIBS)
@@ -227,15 +256,17 @@ AC_SUBST(GST_PLUGIN_LDFLAGS)
 
 dnl these are all the gst plug-ins, compilable without additional libs
 GST_PLUGINS_ALL="\
-        ac3parse adder audioscale auparse avi asfdemux cdxaparse chart\
-        cutter deinterlace effectv festival filter flx goom\
-        intfloat law level\
-        median mixmatrix mpeg1enc mpeg1sys mpeg1videoparse mpeg2enc mpeg2sub\
-        mpegaudio mpegaudioparse mpegstream mpegtypes\
-        monoscope oneton passthrough playondemand qtdemux rtjpeg silence sine\
-        smooth smpte spectrum speed stereo stereomono synaesthesia\
-        udp vbidec videocrop videoscale videotestsrc volenv volume\ 
-        vumeter wavenc wavparse y4m"
+       ac3parse adder audioscale auparse avi \
+       asfdemux audioconvert cdxaparse chart \
+       cutter debug deinterlace effectv festival \
+       filter flx goom intfloat law level median mixmatrix \
+       mpeg1enc mpeg1sys mpeg1videoparse mpeg2enc mpeg2sub \
+       mpegaudio mpegaudioparse mpegstream mpegtypes \
+        monoscope oneton overlay passthrough playondemand qtdemux \
+       realmedia rtp rtjpeg silence sine smooth smpte \
+       spectrum speed stereo synaesthesia tcp udp vbidec \
+       videocrop videofilter videoflip videoscale videotestsrc \
+       volenv volume wavenc wavparse y4m"
 
 dnl see if we can build C++ plug-ins
 if test "x$HAVE_CXX" = "xyes"; then
@@ -268,8 +299,15 @@ dnl ==========================================================================
 
 dnl *** DXR3 card ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_DXR3, true)
-GST_CHECK_FEATURE(DXR3, [DXR3 hardware mpeg video decoder], dxr3videosink, [
-  AC_CHECK_HEADER(linux/em8300.h, HAVE_DXR3="yes", HAVE_DXR3="no")
+GST_CHECK_FEATURE(DXR3, [DXR3 hardware MPEG DVD decoder],
+  dxr3videosink dxr3audiosink dxr3spusink, [
+  HAVE_DXR3=yes
+  AC_CHECK_HEADER(linux/em8300.h, ,
+                  [ AC_MSG_WARN([DXR3/em8300 header file not found]) &&
+                    HAVE_DXR3=no ] )
+  AC_CHECK_HEADER(linux/soundcard.h, ,
+                  [ AC_MSG_WARN([Generic sound header file not found]) &&
+                    HAVE_DXR3=no ] )
 ])
 
 dnl *** OSS audio ***
@@ -281,26 +319,49 @@ GST_CHECK_FEATURE(OSS, [OSS audio], osssrc osssink, [
 dnl *** QuickCam ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_QCAM, true)
 GST_CHECK_FEATURE(QCAM, [QuickCam], qcamsrc, [
-dnl this one is for hadess, no qcam when no nasm found
-  if test "x$HAVE_NASM" = "xno";
+  if test "x$HAVE_CPU_I386" != "xyes";
   then
     HAVE_QCAM="no"
-    AC_MSG_WARN([QuickCam needs nasm])
   else
-    HAVE_QCAM="yes"
+    AC_CHECK_HEADER(sys/io.h, HAVE_QCAM="yes", HAVE_QCAM="no")
+  fi
+  if test "x$HAVE_QCAM" != "xyes";
+  then
+    AC_MSG_WARN([QuickCam only works on i386-linux])
   fi
 ])
 
 dnl *** Video 4 Linux ***
+dnl for information about the header/define, see sys/v4l/gstv4lelement.h
 translit(dnm, m, l) AM_CONDITIONAL(USE_V4L, true)
 GST_CHECK_FEATURE(V4L, [Video 4 Linux], v4lsrc v4lmjpegsrc v4lmjpegsink, [
-  AC_CHECK_DECL(VID_TYPE_MPEG_ENCODER, HAVE_V4L="yes", HAVE_V4L="no", [#include <linux/videodev.h>])
+  AC_CHECK_DECL(VID_TYPE_MPEG_ENCODER, HAVE_V4L="yes", HAVE_V4L="no", [
+#include <sys/types.h>
+#define _LINUX_TIME_H
+#include <linux/videodev.h>
+  ])
 ])
 
 dnl *** Video 4 Linux 2***
+dnl for information about the header/define, see sys/v4l2/gstv4l2element.h
 translit(dnm, m, l) AM_CONDITIONAL(USE_V4L2, true)
 GST_CHECK_FEATURE(V4L2, [Video 4 Linux 2], v4l2src, [
-  AC_CHECK_HEADER(linux/videodev2.h, HAVE_V4L2="yes", HAVE_V4L2="no")
+  AC_MSG_CHECKING([Checking for uptodate v4l2 installation])
+  AC_TRY_COMPILE([
+#include <sys/types.h>
+#include <linux/types.h>
+#define _LINUX_TIME_H
+#include <linux/videodev2.h>
+#if defined(V4L2_MAJOR_VERSION) || defined(V4L2_MINOR_VERSION)
+#error too early v4l2 version or no v4l2 at all
+#endif
+  ], [
+return 0;
+  ], [ HAVE_V4L2="yes" && AC_MSG_RESULT(yes)],
+     [ HAVE_V4L2="no"  && AC_MSG_RESULT(no) &&
+       AC_CHECK_HEADER(linux/videodev2.h,
+                       [ AC_MSG_WARN([video4linux2 headers were found, but they're old. Please update v4l2 to compile the v4l2 plugins])],
+                       [ AC_MSG_WARN([video4linux2 was not found])])])
 ])
 
 dnl *** Video CD ***
@@ -309,12 +370,6 @@ GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
   AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
 ])
 
-dnl *** VGA ***
-translit(dnm, m, l) AM_CONDITIONAL(USE_VGA, true)
-GST_CHECK_FEATURE(VGA, [VGA], vgavideosink, [
-  AC_CHECK_HEADER(asm/vga.h, HAVE_VGA="yes", HAVE_VGA="no")
-])
-
 dnl *** CDROM Audio ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_CDROM, true)
 GST_CHECK_FEATURE(CDROM, [CDROM Audio], cdrom, [
@@ -363,23 +418,40 @@ dnl FIXME: add check if this platform can support linking to a
 dnl        non-PIC libXv, if not then don not use Xv.
 dnl FIXME: perhaps warn user if they have a shared libXv since
 dnl        this is an error until XFree86 starts shipping one
+translit(dnm, m, l) AM_CONDITIONAL(USE_XFREE, true)
+GST_CHECK_FEATURE(XFREE, [X11 XFree86], xvideosink-X, [
+   if test "-DX_DISPLAY_MISSING" = "$X_CFLAGS"; then
+     HAVE_XFREE=no
+   else
+     HAVE_XFREE=yes
+   fi
+])
+   
+dnl Check for Xv extension
 translit(dnm, m, l) AM_CONDITIONAL(USE_XVIDEO, true)
-
-GST_CHECK_FEATURE(XVIDEO, [X11 XVideo extensions], xvideosink videosink, [
-  dnl use X_CFLAGS for check
-  save_FLAGS=$CFLAGS
-  CFLAGS=$X_CFLAGS
-
-  dnl check for PIC static lib
-  GST_CHECK_LIBHEADER(XVIDEO, Xv_pic, XvQueryExtension, $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS, X11/extensions/Xvlib.h, XVIDEO_LIBS="-lXv_pic -lXext")
-  if test x$HAVE_XVIDEO = xno; then
-    dnl PIC lib not found, check for regular lib
-    GST_CHECK_LIBHEADER(XVIDEO, Xv, XvQueryExtension, $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS, X11/extensions/Xvlib.h, XVIDEO_LIBS="-lXv -lXext")
+GST_CHECK_FEATURE(XVIDEO, [X11 XVideo extensions], xvideosink-Xv, [
+  if test x$HAVE_XFREE = xyes; then
+    AC_CHECK_LIB(Xv_pic, XvQueryExtension,
+                HAVE_XVIDEO="yes", HAVE_XVIDEO="no",
+                $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS)
+
+    if test x$HAVE_XVIDEO = xyes; then
+      XVIDEO_LIBS="-lXv_pic -lXext"
+      AC_SUBST(XVIDEO_LIBS)
+    else
+      dnl try again using something else if we didn't find it first
+      if test x$HAVE_XVIDEO = xno; then
+        AC_CHECK_LIB(Xv, XvQueryExtension,
+                  HAVE_XVIDEO="yes", HAVE_XVIDEO="no",
+                  $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS)
+
+        if test x$HAVE_XVIDEO = xyes; then
+          XVIDEO_LIBS="-lXv -lXext"
+          AC_SUBST(XVIDEO_LIBS)
+        fi
+      fi
+    fi
   fi
-  AC_SUBST(XVIDEO_LIBS)
-
-  dnl restore CFLAGS
-  CFLAGS=$save_CFLAGS
 ])
 
 dnl Next, check for the optional libraries:
@@ -413,7 +485,7 @@ GST_CHECK_FEATURE(ALSA, [alsa plug-ins], gstalsa, [
 dnl *** arts ***
 dnl if mcopidl can't be found there's no use in compiling it
 AC_CHECK_PROG(MCOPIDL, mcopidl, yes, no)
-if test "xHAVE_MCOPIDL" = "xno";
+if test "x$HAVE_MCOPIDL" = "xno";
 then
   USE_ARTS=no
 fi
@@ -435,22 +507,13 @@ translit(dnm, m, l) AM_CONDITIONAL(USE_AUDIOFILE, true)
 GST_CHECK_FEATURE(AUDIOFILE, [audiofile], afsink afsrc, [
   translit(dnm, m, l) AC_SUBST(AUDIOFILE_LIBS)
   translit(dnm, m, l) AC_SUBST(AUDIOFILE_CFLAGS)
-  GST_CHECK_CONFIGPROG(AUDIOFILE, audiofile-config)
-  dnl we need this function
-  AC_CHECK_LIB(audiofile, afOpenVirtualFile, , HAVE_AUDIOFILE="no")
-])
-
-dnl *** avifile ***
-translit(dnm, m, l) AM_CONDITIONAL(USE_AVIFILE, true)
-GST_CHECK_FEATURE(AVIFILE, [avifile], winenc windec, [
-  if test "x$no_x" = "xyes"; then
-    AC_MSG_WARN([No X libraries found, avifile test might fail compilation])
-  fi
-  if test "x$HAVE_CXX" != "xyes"; then
-    AC_MSG_WARN([No C++ compiler found, avifile test will fail compilation])
-  fi
-  AS_AVIFILE(0.7.0)
-])
+  dnl check with pkg-config first
+  PKG_CHECK_MODULES(AUDIOFILE, audiofile, HAVE_AUDIOFILE="yes", HAVE_AUDIOFILE="no")
+  if test "x$HAVE_AUDIOFILE" = "xno"; then
+    GST_CHECK_CONFIGPROG(AUDIOFILE, audiofile-config)
+    dnl we need this function
+    AC_CHECK_LIB(audiofile, afOpenVirtualFile, , HAVE_AUDIOFILE="no")
+  fi])
 
 dnl *** CDParanoia ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_CDPARANOIA, true)
@@ -481,6 +544,63 @@ dnl FIXME : add second check somehow if that is necessary
 dnl AC_CHECK_LIB(cdda_paranoia, paranoia_init, : , HAVE_CDPARANOIA=no, -lcdda_interface )
 dnl AC_CHECK_HEADER(cdda_paranoia.h, :, HAVE_CDPARANOIA=no)
 
+dnl *** DIVX ***
+translit(dnm, m, l) AM_CONDITIONAL(USE_DIVX, true)
+GST_CHECK_FEATURE(DIVX, [divx plugins], divx, [
+  HAVE_DIVX=yes
+  AC_CHECK_HEADER(encore2.h, ,
+                  [ AC_MSG_WARN([Divx4linux encore headers not found]) &&
+                    HAVE_DIVX=no ] )
+  if [ test x$HAVE_DIVX = xyes ]; then
+    AC_MSG_CHECKING([Checking for valid divx4linux encore version])
+    AC_TRY_COMPILE([
+#include <encore2.h>
+#if ENCORE_VERSION != 20021024
+#error Wrong version of divx encore libraries
+#endif
+    ], [
+return 0;
+    ], [ HAVE_DIVX=yes && AC_MSG_RESULT(yes)],
+       [ HAVE_DIVX=no  && AC_MSG_RESULT(no) &&
+         AC_MSG_WARN([Wrong version of divx4linux installed]) ])
+  fi
+  if [ test x$HAVE_DIVX = xyes ]; then
+    AC_CHECK_HEADER(decore.h, ,
+                    [ AC_MSG_WARN([Divx4linux decoder headers not found]) &&
+                      HAVE_DIVX=no ] )
+  fi
+  if [ test x$HAVE_DIVX = xyes ]; then
+    AC_MSG_CHECKING([Checking for valid divx4linux decore version])
+    AC_TRY_COMPILE([
+#include <decore.h>
+#if DECORE_VERSION != 20021112
+#error Wrong version of divx decore libraries
+#endif
+    ], [
+return 0;
+    ], [ HAVE_DIVX=yes && AC_MSG_RESULT(yes)],
+       [ HAVE_DIVX=no  && AC_MSG_RESULT(no) &&
+         AC_MSG_WARN([Wrong version of divx4linux installed]) ])
+  fi
+  LIBS="-lm"
+  if test x$HAVE_DIVX = xyes; then
+    AC_CHECK_LIB(divxencore, encore, ,
+                 [ AC_MSG_WARN([Divx4linux encore libs not found]) &&
+                   HAVE_DIVX=no ] )
+  fi
+  if test x$HAVE_DIVX = xyes; then
+    AC_CHECK_LIB(divxdecore, decore, ,
+                 [ AC_MSG_WARN([Divx4linux decore libs not found]) &&
+                   HAVE_DIVX=no ] )
+  fi
+  if test x$HAVE_DIVX = xyes; then
+    DIVXENC_LIBS="-ldivxencore -lm"
+    DIVXDEC_LIBS="-ldivxdecore -lm"
+    AC_SUBST(DIVXENC_LIBS)
+    AC_SUBST(DIVXDEC_LIBS)
+  fi
+])
+
 dnl *** dvdread ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_DVDREAD, true)
 GST_CHECK_FEATURE(DVDREAD, [dvdread library], dvdreadsrc, [
@@ -494,6 +614,23 @@ GST_CHECK_FEATURE(DVDNAV, [dvdnav library], dvdnavsrc, [
   translit(dnm, m, l) AC_SUBST(DVDNAV_LIBS)
   translit(dnm, m, l) AC_SUBST(DVDNAV_CFLAGS)
   GST_CHECK_CONFIGPROG(DVDNAV, dvdnav-config)
+  if test x"$HAVE_DVDNAV" = x"yes"; then
+    dnl check version
+    DVDNAV_VERSION=`dvdnav-config --version|head -n 1|sed 's/^.*) //'|sed 's/ (.*)//'`
+    DVDNAV_MAJOR=`echo $DVDNAV_VERSION | cut -d. -f1 | sed s/[a-zA-Z\-].*//g`
+    DVDNAV_MINOR=`echo $DVDNAV_VERSION | cut -d. -f2 | sed s/[a-zA-Z\-].*//g`
+    DVDNAV_MICRO=`echo $DVDNAV_VERSION | cut -d. -f3 | sed s/[a-zA-Z\-].*//g`
+    if [[ "$DVDNAV_MAJOR" -eq "0" ]] && \
+       [[ "$DVDNAV_MINOR" -lt "1" ]]; then
+      AC_MSG_WARN([libdvdnav >= 0.1.7 is required, you have $DVDNAV_VERSION])
+      HAVE_DVDNAV="no"
+    elif [[ "$DVDNAV_MAJOR" -eq "0" ]] && \
+         [[ "$DVDNAV_MINOR" -eq "1" ]] && \
+         [[ "$DVDNAV_MICRO" -lt "7" ]]; then
+      AC_MSG_WARN([libdvdnav >= 0.1.7 is required, you have $DVDNAV_VERSION])
+      HAVE_DVDNAV="no"
+      fi
+    fi
   AS_SCRUB_INCLUDE(DVDNAV_CFLAGS)
 ])
 
@@ -533,7 +670,7 @@ dnl])
 dnl *** FLAC ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_FLAC, true)
 GST_CHECK_FEATURE(FLAC, [FLAC lossless audio], flacenc flacdec, [
-  GST_CHECK_LIBHEADER(FLAC, FLAC, FLAC__stream_decoder_new, -lm, FLAC/all.h, FLAC_LIBS="-lFLAC")
+  GST_CHECK_LIBHEADER(FLAC, FLAC, FLAC__seekable_stream_encoder_new, -lm, FLAC/all.h, FLAC_LIBS="-lFLAC")
   AC_SUBST(FLAC_LIBS)
 ])
 
@@ -544,7 +681,7 @@ GST_CHECK_FEATURE(FFMPEG, [ffmpeg plug-ins], ffmpeg, [
   # prerelease and release should get it disted
   if test "x$GST_PLUGINS_VERSION_NANO" = x1; then
     AC_MSG_NOTICE(slurping FFmpeg CVS source)
-    AS_SLURP_FFMPEG(gst-libs/ext/ffmpeg, 2002-12-14 12:00 GMT,
+    AS_SLURP_FFMPEG(gst-libs/ext/ffmpeg, 2003-07-05 22:00 GMT,
                     HAVE_FFMPEG=yes, HAVE_FFMPEG=no)
   else
     AC_MSG_NOTICE(FFmpeg CVS code should be included already)
@@ -555,6 +692,12 @@ GST_CHECK_FEATURE(FFMPEG, [ffmpeg plug-ins], ffmpeg, [
                      [defined if we use uninstalled ffmpeg])
 ])
 
+dnl *** GDK pixbuf ***
+translit(dnm, m, l) AM_CONDITIONAL(USE_GDK_PIXBUF, true)
+GST_CHECK_FEATURE(GDK_PIXBUF, [GDK pixbuf], gdkpixbufsrc, [
+  if test $HAVE_GTK_22 = "yes"; then HAVE_GDK_PIXBUF=yes; fi;
+])
+
 dnl *** Gnome VFS ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_GNOME_VFS, true)
 GST_CHECK_FEATURE(GNOME_VFS, [Gnome VFS], gnomevfssrc, [
@@ -583,22 +726,36 @@ GST_CHECK_FEATURE(HERMES, [Hermes library], colorspace, [
 ], AC_SUBST(HERMES_LIBS))
 
 dnl *** http ***
-translit(dnm, m, l) AM_CONDITIONAL(USE_HTTP, true)
-GST_CHECK_FEATURE(HTTP, [http plug-ins], gsthttpsrc, [
-  dnl FIXME: need to check for header
-  GHTTP_LIBS=
-  GST_HTTPSRC_GET_TYPE=
-  if test x$USE_GLIB2 = xyes; then
-    AC_MSG_WARN(ghttp disabled for glib2.0)
-  else
-    AC_CHECK_LIB(ghttp, ghttp_request_new,
-      [HTTP_LIBS="-lghttp"
-       GST_HTTPSRC_GET_TYPE="gst_httpsrc_get_type"
-       HAVE_HTTP=yes
-      ], :, $LIBS)
-  fi
-  AC_SUBST(HTTP_LIBS)
-  AC_SUBST(GST_HTTPSRC_GET_TYPE)
+dnl translit(dnm, m, l) AM_CONDITIONAL(USE_HTTP, true)
+dnl GST_CHECK_FEATURE(HTTP, [http plug-ins], gsthttpsrc, [
+dnl  dnl FIXME: need to check for header
+dnl  GHTTP_LIBS=
+dnl  GST_HTTPSRC_GET_TYPE=
+dnl  if test x$USE_GLIB2 = xyes; then
+dnl    AC_MSG_WARN(ghttp disabled for glib2.0)
+dnl  else
+dnl    AC_CHECK_LIB(ghttp, ghttp_request_new,
+dnl      [HTTP_LIBS="-lghttp"
+dnl       GST_HTTPSRC_GET_TYPE="gst_httpsrc_get_type"
+dnl       HAVE_HTTP=yes
+dnl      ], :, $LIBS)
+dnl  fi
+dnl  AC_SUBST(HTTP_LIBS)
+dnl  AC_SUBST(GST_HTTPSRC_GET_TYPE)
+dnl ])
+
+dnl *** ivorbis ***
+dnl AM_PATH_IVORBIS only takes two options
+translit(dnm, m, l) AM_CONDITIONAL(USE_IVORBIS, true)
+GST_CHECK_FEATURE(IVORBIS, [integer vorbis plug-in], ivorbisdec, [
+  IVORBIS_LIBS=
+  IVORBIS_CFLAGS=
+  AC_CHECK_LIB(vorbisidec, vorbis_block_init,
+    [IVORBIS_LIBS=-lvorbisidec
+     HAVE_IVORBIS=yes],
+    HAVE_IVORBIS=no)
+  AC_SUBST(IVORBIS_LIBS)
+  AC_SUBST(IVORBIS_CFLAGS)
 ])
 
 dnl *** Jack ***
@@ -613,8 +770,19 @@ dnl *** jpeg ***
 dnl FIXME: we could use header checks here as well IMO
 translit(dnm, m, l) AM_CONDITIONAL(USE_JPEG, true)
 GST_CHECK_FEATURE(JPEG, [jpeg], jpegenc jpegdec, [
-  AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
-  JPEG_LIBS="-ljpeg"
+  AC_ARG_WITH(jpeg-mmx,
+    [  --with-jpeg-mmx, path to MMX'ified JPEG library])
+  OLD_LIBS="$LIBS"
+  if test x$with_jpeg_mmx != x; then
+    LIBS="$LIBS -L$with_jpeg_mmx"
+  fi
+  AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
+  JPEG_LIBS="$LIBS -ljpeg-mmx"
+  LIBS="$OLD_LIBS"
+  if test x$HAVE_JPEG != xyes; then
+    AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
+    JPEG_LIBS="-ljpeg"
+  fi
   AC_SUBST(JPEG_LIBS)
 ])
 
@@ -668,18 +836,32 @@ dnl *** mad ***
 dnl FIXME: we could use header checks here as well IMO
 translit(dnm, m, l) AM_CONDITIONAL(USE_MAD, true)
 GST_CHECK_FEATURE(MAD, [mad mp3 decoder], mad, [
-  AC_CHECK_LIB(mad, mad_decoder_finish, HAVE_MAD="yes" MAD_LIBS="-lmad")
-  if test "x$HAVE_MAD" = "xyes"; then
-    # installed with mad >= 0.14
-    HAVE_MAD="no"
-    save_libs=$LIBS
-    LIBS="-lz"
-    AC_CHECK_LIB(id3tag, id3_tag_query, HAVE_MAD="yes" MAD_LIBS="$MAD_LIBS -lid3tag")
-    LIBS=$save_LIBS
+  dnl check with pkg-config first
+  PKG_CHECK_MODULES(MAD, mad id3tag, HAVE_MAD="yes", HAVE_MAD="no")
+  if test "x$HAVE_MAD" = "xno"; then
+    dnl fall back to oldskool detection
+    AC_CHECK_LIB(mad, mad_decoder_finish, HAVE_MAD="yes" MAD_LIBS="-lmad")
+    if test "x$HAVE_MAD" = "xyes"; then
+      # installed with mad >= 0.14
+      HAVE_MAD="no"
+      save_libs=$LIBS
+      LIBS="-lz"
+      AC_CHECK_LIB(id3tag, id3_tag_query, HAVE_MAD="yes" MAD_LIBS="$MAD_LIBS -lid3tag")
+      LIBS=$save_LIBS
+    fi
   fi    
 ])
 AC_SUBST(MAD_LIBS)
 
+dnl *** matroska ***
+translit(dnm, m, l) AM_CONDITIONAL(USE_MATROSKA, true)
+GST_CHECK_FEATURE(MATROSKA, [matroska muxer/demuxer], matroska muxer/demuxer, [
+  PATH_EBML([HAVE_MATROSKA=yes], [HAVE_MATROSKA=no])
+  if test x$HAVE_MATROSKA = xyes; then
+    PATH_MATROSKA(0.4.4, [HAVE_MATROSKA=yes], [HAVE_MATROSKA=no])
+  fi
+])
+
 dnl *** mikmod ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_MIKMOD, true)
 GST_CHECK_FEATURE(MIKMOD, [mikmod plug-in], mikmod, [
@@ -688,49 +870,6 @@ GST_CHECK_FEATURE(MIKMOD, [mikmod plug-in], mikmod, [
   AC_SUBST(MIKMOD_CFLAGS, "$LIBMIKMODCFLAGS")
 ])
 
-dnl *** mjpegtools ***
-translit(dnm, m, l) AM_CONDITIONAL(USE_MJPEGTOOLS, true)
-GST_CHECK_FEATURE(MJPEGTOOLS, [mjpegtools], jpegmmxenc jpegmmxdec, [
-  PKG_CHECK_MODULES(MJPEGTOOLS, mjpegtools, HAVE_MJPEGTOOLS="yes", HAVE_MJPEGTOOLS="no")
-
-  if [ test x$HAVE_MJPEGTOOLS = x"yes" ]; then
-    dnl some headers we might want to need
-    AC_CHECK_HEADERS(stdint.h, HAVE_STDINT_H="yes", HAVE_STDINT_H="no")
-    if [ test x$HAVE_STDINT_H = x"no" ]; then
-      AC_CHECK_HEADERS(inttypes.h sys/types.h, HAVE_INTTYPES_H="yes", [
-        AC_MSG_WARN(No valid header files found, mjpegtools plugins disabled)
-        HAVE_INTTYPES_H="no" HAVE_MJPEGTOOLS="no"
-      ])
-    fi
-    AC_CHECK_HEADERS(stdbool.h, HAVE_STDBOOL_H="yes", HAVE_STDBOOL_H="no")
-
-    dnl sizeof PRId64 etc...
-    AC_CHECK_SIZEOF(int)
-    AC_CHECK_SIZEOF(long)
-    AC_CHECK_SIZEOF(long long)
-    case 8 in
-    $ac_cv_sizeof_int)
-      PRID64_STRING_FORMAT="d"
-      ;;
-    $ac_cv_sizeof_long)
-      PRID64_STRING_FORMAT="ld"
-      ;;
-    $ac_cv_sizeof_long_long)
-      PRID64_STRING_FORMAT="lld"
-      ;;
-    *)
-      AC_MSG_WARN(No suitable variant for 64bits integers found, mjpegtools plugins disabled)
-      HAVE_MJPEGTOOLS="no"
-      ;;
-    esac
-
-    AC_DEFINE_UNQUOTED(PRID64_STRING_FORMAT, "$PRID64_STRING_FORMAT",
-      [ A printf type definition for 64 bit integers ])
-    AC_SUBST(MJPEGTOOLS_LIBS)
-    AC_SUBST(MJPEGTOOLS_CFLAGS)
-  fi
-])
-
 dnl *** mpeg2dec ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2DEC, true)
 GST_CHECK_FEATURE(MPEG2DEC, [mpeg2dec], mpeg2dec, [
@@ -740,11 +879,17 @@ GST_CHECK_FEATURE(MPEG2DEC, [mpeg2dec], mpeg2dec, [
   AC_SUBST(MPEG2DEC_LIBS)
 ])
 
-dnl *** openquicktime ***
-translit(dnm, m, l) AM_CONDITIONAL(USE_OPENQUICKTIME, true)
-GST_CHECK_FEATURE(OPENQUICKTIME, [Open Quicktime], quicktime_parser quicktime_decoder quicktime_demux,[
-  GST_CHECK_LIBHEADER(OPENQUICKTIME, openquicktime, quicktime_init,, openquicktime/openquicktime.h, OPENQUICKTIME_LIBS="-lopenquicktime")
-  AC_SUBST(OPENQUICKTIME_LIBS)
+dnl *** mplex ***
+translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
+GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [HAVE_MPLEX=$HAVE_CXX])
+
+dnl *** pango ***
+translit(dnm, m, l) AM_CONDITIONAL(USE_PANGO, true)
+GST_CHECK_FEATURE(PANGO, [pango], pango, [
+  PKG_CHECK_MODULES(PANGO, pango pangoft2,
+      HAVE_PANGO="yes", HAVE_PANGO="no")
+  AC_SUBST(PANGO_CFLAGS)
+  AC_SUBST(PANGO_LIBS)
 ])
 
 dnl *** raw1394 ***
@@ -754,22 +899,6 @@ GST_CHECK_FEATURE(RAW1394, [raw1394 library], dv1394src, [
   AC_SUBST(RAW1394_LIBS)
 ])
 
-dnl *** rtp ***
-dnl FIXME : adapt and make it work
-translit(dnm, m, l) AM_CONDITIONAL(USE_RTP, true)
-GST_CHECK_FEATURE(RTP, [RTP library], rtpenc rtpdec,[
-  AC_CHECK_LIB(ortp, ortp_init, HAVE_RTP=yes, HAVE_RTP=no, $GST_CFLAGS $GST_LIBS)
-  RTP_LIBS="-lortp"
-  AC_SUBST(RTP_LIBS)
-])
-
-dnl FIXME header check needs to use GLIB_CFLAGS in order to succeed for rtp
-dnl can use GST_* which should have GLIB_* info
-dnl AC_CHECK_HEADERS(rtp/rtp.h, HAVE_LIBRTP=yes, HAVE_LIBRTP=no)
-dnl AC_CHECK_HEADERS(rtp/rtp-packet.h, :, HAVE_LIBRTP=no)
-dnl AC_CHECK_HEADERS(rtp/rtcp-packet.h, :, HAVE_LIBRTP=no)
-dnl AC_CHECK_HEADERS(rtp/rtp-audio.h, :, HAVE_LIBRTP=no)
-
 dnl *** SDL ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
 GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink, [
@@ -811,6 +940,22 @@ GST_CHECK_FEATURE(LIBPNG, [snapshot plug-in], snapshot, [
   AC_SUBST(LIBPNG_LIBS)
 ])
 
+dnl *** speex ***
+translit(dnm, m, l) AM_CONDITIONAL(USE_SPEEX, true)
+GST_CHECK_FEATURE(SPEEX, [speex plug-in], speex, [
+  GST_CHECK_LIBHEADER(SPEEX, speex, speex_bits_init, , speex.h, HAVE_SPEEX="yes" SPEEX_LIBS="-lspeex")
+  AC_SUBST(SPEEX_CFLAGS)
+  AC_SUBST(SPEEX_LIBS)
+])
+
+dnl *** sndfile ***
+translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
+GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfsrc sfsink, [
+  PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.0, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
+  AC_SUBST(SNDFILE_CFLAGS)
+  AC_SUBST(SNDFILE_LIBS)
+])
+
 dnl *** swfdec ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_SWFDEC, true)
 GST_CHECK_FEATURE(SWFDEC, [swfdec plug-in], swfdec, [
@@ -835,12 +980,27 @@ GST_CHECK_FEATURE(VORBIS, [vorbis plug-in], vorbisenc vorbisdec, [
   AS_SCRUB_INCLUDE(VORBIS_CFLAGS)
 ])
 
-dnl *** XMMS ***
-translit(dnm, m, l) AM_CONDITIONAL(USE_XMMS, true)
-GST_CHECK_FEATURE(XMMS, [xmms plug-in], xmms, [
-  AM_PATH_XMMS(0.1.0, HAVE_XMMS=yes, HAVE_XMMS=no)
+dnl *** XVID ***
+translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true)
+GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [
+  HAVE_XVID=yes
+  AC_CHECK_HEADER(xvid.h, ,
+                  [ AC_MSG_WARN([Xvid headers not found]) &&
+                    HAVE_XVID=no ] )
+  LIBS="-lm"
+  AC_CHECK_LIB(xvidcore, xvid_encore, ,
+               [ AC_MSG_WARN([Xvid encore libs not found]) &&
+                 HAVE_XVID=no ] )
+  AC_CHECK_LIB(xvidcore, xvid_decore, ,
+               [ AC_MSG_WARN([Xvid decore libs not found]) &&
+                 HAVE_XVID=no ] )
+  if test x$HAVE_XVID = xyes; then
+    XVID_LIBS="-lxvidcore -lm"
+    AC_SUBST(XVID_LIBS)
+  fi
 ])
 
+
 fi dnl of EXT plugins
 
 dnl Check for atomic.h
@@ -870,8 +1030,6 @@ dnl ######################################################################
 dnl # Check command line parameters, and set shell variables accordingly #
 dnl ######################################################################
 
-GST_DEBUGINFO
-
 AC_ARG_ENABLE(libmmx,
   AC_HELP_STRING([--enable-libmmx],[use libmmx, if available]),
 [case "${enableval}" in
@@ -988,9 +1146,16 @@ AM_CONDITIONAL(HAVE_RAW1394,        test "x$HAVE_RAW1394" = "xyes")
 
 dnl prefer internal headers to already installed ones
 GST_CFLAGS="-I\$(top_srcdir)/gst-libs $GST_CFLAGS $GST_ERROR"
+GST_OPT_CFLAGS="$GST_FINLINE_CFLAGS $GST_FFASTMATH_CFLAGS"
 
 AC_SUBST(GST_LIBS)
 AC_SUBST(GST_CFLAGS)
+AC_SUBST(GST_FUNROLL_CFLAGS)
+AC_SUBST(GST_FINLINE_CFLAGS)
+AC_SUBST(GST_FFASTMATH_CFLAGS)
+AC_SUBST(GST_FSCHEDULE_CFLAGS)
+AC_SUBST(GST_FNOEXCEPTIONS_CFLAGS)
+AC_SUBST(GST_OPT_CFLAGS)
 
 dnl ###########################
 dnl # Configure external libs #
@@ -1005,14 +1170,17 @@ dnl #########################
 
 AC_CONFIG_FILES(
 Makefile
-gstreamer-libs.pc
-gstreamer-libs-uninstalled.pc
-gstreamer-play.pc
-gstreamer-play-uninstalled.pc
+pkgconfig/gstreamer-libs.pc
+pkgconfig/gstreamer-libs-uninstalled.pc
+pkgconfig/gstreamer-play.pc
+pkgconfig/gstreamer-play-uninstalled.pc
+gst-libs/gst/gconf/gstreamer-gconf.pc
+gst-libs/gst/gconf/gstreamer-gconf-uninstalled.pc
 gst-plugins.spec
 gst/Makefile
 gst/ac3parse/Makefile
 gst/adder/Makefile
+gst/audioconvert/Makefile
 gst/audioscale/Makefile
 gst/auparse/Makefile
 gst/avi/Makefile
@@ -1020,6 +1188,7 @@ gst/asfdemux/Makefile
 gst/cdxaparse/Makefile
 gst/chart/Makefile
 gst/cutter/Makefile
+gst/debug/Makefile
 gst/deinterlace/Makefile
 gst/effectv/Makefile
 gst/festival/Makefile
@@ -1044,10 +1213,13 @@ gst/modplug/Makefile
 gst/modplug/libmodplug/Makefile
 gst/monoscope/Makefile
 gst/oneton/Makefile
+gst/overlay/Makefile
 gst/passthrough/Makefile
 gst/playondemand/Makefile
 gst/qtdemux/Makefile
+gst/realmedia/Makefile
 gst/rtjpeg/Makefile
+gst/rtp/Makefile
 gst/silence/Makefile
 gst/sine/Makefile
 gst/smooth/Makefile
@@ -1055,16 +1227,17 @@ gst/smpte/Makefile
 gst/spectrum/Makefile
 gst/speed/Makefile
 gst/stereo/Makefile
-gst/stereomono/Makefile
 gst/synaesthesia/Makefile
+gst/tcp/Makefile
 gst/udp/Makefile
 gst/vbidec/Makefile
+gst/videocrop/Makefile
+gst/videofilter/Makefile
+gst/videoflip/Makefile
 gst/videoscale/Makefile
 gst/videotestsrc/Makefile
-gst/videocrop/Makefile
 gst/volenv/Makefile
 gst/volume/Makefile
-gst/vumeter/Makefile
 gst/wavenc/Makefile
 gst/wavparse/Makefile
 gst/y4m/Makefile
@@ -1076,9 +1249,7 @@ sys/qcam/Makefile
 sys/v4l/Makefile
 sys/v4l2/Makefile
 sys/vcd/Makefile
-sys/vga/Makefile
 sys/xvideo/Makefile
-sys/videosink/Makefile
 ext/Makefile
 ext/a52dec/Makefile
 ext/aalib/Makefile
@@ -1086,43 +1257,47 @@ ext/alsa/Makefile
 ext/arts/Makefile
 ext/artsd/Makefile
 ext/audiofile/Makefile
-ext/avifile/Makefile
 ext/cdparanoia/Makefile
+ext/divx/Makefile
 ext/dv/Makefile
 ext/dvdread/Makefile
 ext/dvdnav/Makefile
 ext/esd/Makefile
 ext/ffmpeg/Makefile
 ext/flac/Makefile
+ext/gdk_pixbuf/Makefile
 ext/gnomevfs/Makefile
 ext/gsm/Makefile
 ext/hermes/Makefile
-ext/http/Makefile
+dnl ext/http/Makefile
 ext/jack/Makefile
 ext/jpeg/Makefile
 ext/ladspa/Makefile
 ext/lame/Makefile
+ext/ivorbis/Makefile
 ext/lcs/Makefile
 ext/libfame/Makefile
 ext/libpng/Makefile
 ext/mad/Makefile
 ext/mas/Makefile
+ext/matroska/Makefile
 ext/mikmod/Makefile
-ext/mjpegtools/Makefile
 ext/mpeg2dec/Makefile
-ext/openquicktime/Makefile
+ext/mplex/Makefile
+ext/pango/Makefile
 ext/raw1394/Makefile
-ext/rtp/Makefile
 ext/sdl/Makefile
 ext/shout/Makefile
 ext/shout2/Makefile
 ext/sidplay/Makefile
 ext/smoothwave/Makefile
 ext/snapshot/Makefile
+ext/speex/Makefile
+ext/sndfile/Makefile
 ext/swfdec/Makefile
 ext/vorbis/Makefile
 ext/tarkin/Makefile
-ext/xmms/Makefile
+ext/xvid/Makefile
 gst-libs/Makefile
 gst-libs/gst/Makefile
 gst-libs/gst/audio/Makefile
@@ -1136,6 +1311,7 @@ gst-libs/gst/riff/Makefile
 gst-libs/gst/video/Makefile
 gst-libs/ext/Makefile
 gst-libs/ext/ffmpeg/Makefile
+gst-libs/ext/mplex/Makefile
 examples/dynparams/Makefile
 examples/capsfilter/Makefile
 examples/seeking/Makefile
@@ -1143,9 +1319,11 @@ examples/indexing/Makefile
 examples/Makefile
 testsuite/autoplug/Makefile
 testsuite/spider/Makefile
+testsuite/alsa/Makefile
 testsuite/Makefile
 tools/Makefile
 gconf/Makefile
+pkgconfig/Makefile
 )
 AC_OUTPUT