From 803ff8f49ca059d493eb66857d01a5e207317d52 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Mon, 24 Nov 2003 04:08:47 +0000 Subject: [PATCH] tagging stuff and build fixes. In detail: Original commit message from CVS: tagging stuff and build fixes. In detail: - make gdk-pixbuf loader work when distchecking - fix invalid syntax in ffmpeg Makefile. wildcards for EXTRA_DIST are not allowed. This broke builds where distdir != srcdir - fix ffmpeg cvs grabbing when srcdir != distdir - new id3tag plugin for id3 tag reading/writing (uses mad's libid3tag) - mad and libid3tag require mad/libid3tag v0.15. Fixed configure to require that - added ogg demuxer in ext/ogg. The demuxer does not handle events yet. Especially getting seeking right will require some effort or code copying from libvorbis. - added raw vorbis detection to typefinding. oggdemux requires a typefind function to detect its contents. - tags plugin in gst/tags. Provides API in . API includes tag matching GStreamer <=> ID3 and GStreamer <=> vorbis and writing/reading vorbiscomments or ID3v1 tags. Also included is a simple vorbiscomment reader/writer. Writing will not really work though until someone writes oggmux. - various build fixes. Mostly missing (DIST)CLEANFILES. - vorbisenc handles tag writing. Now it's YOUR turn to fix and write more plugins that handle writing/reading of tags. :) --- configure.ac | 24 +++++--- ext/Makefile.am | 8 +++ ext/smoothwave/.gitignore | 1 + gst-libs/ext/ffmpeg/Makefile.am | 131 +++++++++++++++++++++++++++------------- gst/smoothwave/.gitignore | 1 + m4/as-slurp-ffmpeg.m4 | 5 +- m4/ogg.m4 | 102 +++++++++++++++++++++++++++++++ pkgconfig/Makefile.am | 2 +- sys/dxr3/Makefile.am | 3 + 9 files changed, 226 insertions(+), 51 deletions(-) create mode 100644 ext/smoothwave/.gitignore create mode 100644 gst/smoothwave/.gitignore create mode 100644 m4/ogg.m4 diff --git a/configure.ac b/configure.ac index b1070ff..6889940 100644 --- a/configure.ac +++ b/configure.ac @@ -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, 1, 1, GST_CVS="no", GST_CVS="yes") +AS_VERSION(gst-plugins, GST_PLUGINS_VERSION, 0, 7, 2, 1, GST_CVS="no", GST_CVS="yes") dnl add a suffix to apps if test x$program_suffix = xNONE ; then @@ -189,7 +189,6 @@ fi AC_SUBST(GST_CONTROL_LIBS) - dnl Set up conditionals for (target) architecture: dnl ============================================== @@ -241,6 +240,8 @@ if test "x$HAVE_GTK_22" = "xyes"; then AC_SUBST(GTK_VERSION) GTK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0` GTK_SYSCONFDIR=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0` + GDK_PIXBUF_LIBDIR=`$PKG_CONFIG --variable=libdir gdk-pixbuf-2.0` + GDK_PIXBUF_PREFIXDIR=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0` AC_SUBST(GTK_BASE_DIR) else PKG_CHECK_MODULES(GTK2, gtk+-2.0, HAVE_GTK_20=yes, HAVE_GTK_20=no) @@ -255,7 +256,7 @@ AC_SUBST(GTK_CFLAGS) AC_SUBST(HAVE_GTK) AM_CONDITIONAL(HAVE_GDK_LOADERS, test "x$HAVE_GTK_22" = "xyes") -GDK_PIXBUF_LOADER_DIR="\$(libdir)/gtk-2.0/\$(GTK_VERSION)/\loaders" +GDK_PIXBUF_LOADER_DIR="$GDK_PIXBUF_LIBDIR/gtk-2.0/\$(GTK_VERSION)/loaders" AC_ARG_WITH(gdk-pixbuf-loader-dir, AC_HELP_STRING([--with-gdk-pixbuf-loader-dir], [directory to install the gdk_pixbuf loader]), @@ -265,7 +266,7 @@ AC_ARG_WITH(gdk-pixbuf-loader-dir, ]) AC_SUBST(GDK_PIXBUF_LOADER_DIR) -GDK_PIXBUF_CONFFILE="\$(sysconfdir)/gtk-2.0/gdk-pixbuf.loaders" +GDK_PIXBUF_CONFFILE="$GDK_PIXBUF_PREFIXDIR/gtk-2.0/gdk-pixbuf.loaders" AC_ARG_WITH(gdk-pixbuf-conffile, AC_HELP_STRING([--with-gdk-pixbuf-conffile], [path to the gdk_pixbuf config file]), @@ -334,6 +335,7 @@ GST_PLUGINS_ALL="\ speed \ stereo \ synaesthesia \ + tags \ tcp \ typefind \ udp \ @@ -970,16 +972,15 @@ 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, [ dnl check with pkg-config first - PKG_CHECK_MODULES(MAD, mad id3tag, HAVE_MAD="yes", HAVE_MAD="no") + PKG_CHECK_MODULES(MAD, mad >= 0.15 id3tag >= 0.15, 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") + AC_CHECK_LIB(id3tag, id3_tag_options, HAVE_MAD="yes" MAD_LIBS="-lmad -lid3tag -lz") LIBS=$save_LIBS fi fi @@ -1096,6 +1097,13 @@ GST_CHECK_FEATURE(TARKIN, [tarkinenc tarkindec], tarkin, [ HAVE_TARKIN="yes" ]) +dnl *** ogg *** +translit(dnm, m, l) AM_CONDITIONAL(USE_OGG, true) +GST_CHECK_FEATURE(OGG, [ogg de/encoder], oggdemux oggmux, [ + XIPH_PATH_OGG(HAVE_OGG=yes, HAVE_OGG=no) + AS_SCRUB_INCLUDE(OGG_CFLAGS) +]) + dnl *** vorbis *** dnl AM_PATH_VORBIS only takes two options translit(dnm, m, l) AM_CONDITIONAL(USE_VORBIS, true) @@ -1365,6 +1373,7 @@ gst/spectrum/Makefile gst/speed/Makefile gst/stereo/Makefile gst/synaesthesia/Makefile +gst/tags/Makefile gst/tcp/Makefile gst/typefind/Makefile gst/udp/Makefile @@ -1427,6 +1436,7 @@ ext/mas/Makefile ext/mikmod/Makefile ext/mpeg2dec/Makefile ext/mplex/Makefile +ext/ogg/Makefile ext/pango/Makefile ext/raw1394/Makefile ext/sdl/Makefile diff --git a/ext/Makefile.am b/ext/Makefile.am index d70a37e..a26660d 100644 --- a/ext/Makefile.am +++ b/ext/Makefile.am @@ -196,6 +196,12 @@ else MPLEX_DIR= endif +if USE_OGG +OGG_DIR=ogg +else +OGG_DIR= +endif + if USE_PANGO PANGO_DIR=pango else @@ -313,6 +319,7 @@ SUBDIRS=\ $(MIKMOD_DIR) \ $(MPEG2DEC_DIR) \ $(MPLEX_DIR) \ + $(OGG_DIR) \ $(PANGO_DIR) \ $(RAW1394_DIR) \ $(SDL_DIR) \ @@ -361,6 +368,7 @@ DIST_SUBDIRS=\ mikmod \ mpeg2dec \ mplex \ + ogg \ pango \ raw1394 \ sdl \ diff --git a/ext/smoothwave/.gitignore b/ext/smoothwave/.gitignore new file mode 100644 index 0000000..2c411dd3 --- /dev/null +++ b/ext/smoothwave/.gitignore @@ -0,0 +1 @@ +demo-osssrc diff --git a/gst-libs/ext/ffmpeg/Makefile.am b/gst-libs/ext/ffmpeg/Makefile.am index 0a7a076..eaa23fc 100644 --- a/gst-libs/ext/ffmpeg/Makefile.am +++ b/gst-libs/ext/ffmpeg/Makefile.am @@ -25,43 +25,6 @@ patches: SUBDIRS = -EXTRA_DIST = \ - $(PATCHES) \ - Tag \ - ffmpeg/CREDITS \ - ffmpeg/INSTALL \ - ffmpeg/README \ - ffmpeg/config.mak \ - ffmpeg/configure \ - ffmpeg/cygwin_inttypes.h \ - ffmpeg/ffserver.h \ - ffmpeg/ffmpeg.c \ - ffmpeg/ffserver.c \ - ffmpeg/berrno.h \ - ffmpeg/config.h \ - ffmpeg/libavcodec/alpha/*.c \ - ffmpeg/libavcodec/alpha/*.h \ - ffmpeg/libavcodec/alpha/*.S \ - ffmpeg/libavcodec/armv4l/*.c \ - ffmpeg/libavcodec/armv4l/*.S \ - ffmpeg/libavcodec/i386/*.c \ - ffmpeg/libavcodec/i386/*.h \ - ffmpeg/libavcodec/liba52/*.c \ - ffmpeg/libavcodec/liba52/*.h \ - ffmpeg/libavcodec/ppc/*.c \ - ffmpeg/libavcodec/ppc/*.h \ - ffmpeg/libavcodec/ps2/*.c \ - ffmpeg/libavcodec/ps2/*.h \ - ffmpeg/libavcodec/*.c \ - ffmpeg/libavcodec/*.h \ - ffmpeg/libavformat/*.c \ - ffmpeg/libavformat/*.h \ - ffmpeg/tests/*.c \ - ffmpeg/tests/*.ref \ - ffmpeg/tests/*.sh \ - ffmpeg/tests/test.conf \ - ffmpeg/vhook/*.c - checkout: cvs -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg co ffmpeg @@ -164,9 +127,7 @@ libavformat_la_CFLAGS = $(defs) -Wall -I$(srcdir) -I$(srcdir)/ffmpeg \ -I$(top_srcdir)/gst-libs/ext/linux/ -DHAVE_AV_CONFIG_H \ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE - -if HAVE_CPU_I386 -sources_i386 = \ +files_i386 = \ ffmpeg/libavcodec/i386/cputest.c \ ffmpeg/libavcodec/i386/dsputil_mmx.c \ ffmpeg/libavcodec/i386/fdct_mmx.c \ @@ -175,12 +136,13 @@ sources_i386 = \ ffmpeg/libavcodec/i386/motion_est_mmx.c \ ffmpeg/libavcodec/i386/mpegvideo_mmx.c \ ffmpeg/libavcodec/i386/simple_idct_mmx.c +if HAVE_CPU_I386 +sources_i386 = $(files_i386) else sources_i386 = endif -if HAVE_CPU_PPC -sources_powerpc = \ +files_powerpc = \ ffmpeg/libavcodec/ppc/dsputil_ppc.c \ ffmpeg/libavcodec/ppc/mpegvideo_ppc.c # disabled Altivec support for now until someone shows up that make them compile conditionally @@ -189,6 +151,8 @@ sources_powerpc = \ # ffmpeg/libavcodec/ppc/gmc_altivec.c \ # ffmpeg/libavcodec/ppc/idct_altivec.c \ # ffmpeg/libavcodec/ppc/mpegvideo_altivec.c +if HAVE_CPU_PPC +sources_powerpc = $(files_powerpc) else sources_powerpc = endif @@ -270,3 +234,86 @@ libavcodec_la_SOURCES = \ $(sources_i386) \ $(sources_powerpc) +more_libavcodec_files = \ + ffmpeg/libavcodec/mdec.c \ + ffmpeg/libavcodec/motion_est_template.c \ + ffmpeg/libavcodec/svq3.c \ + ffmpeg/libavcodec/wmv2.c + + +all_headers = \ + ffmpeg/berrno.h \ + ffmpeg/cmdutils.h \ + ffmpeg/cygwin_inttypes.h \ + ffmpeg/ffserver.h \ + ffmpeg/xvmc_render.h \ + ffmpeg/libavcodec/ac3.h \ + ffmpeg/libavcodec/ac3tab.h \ + ffmpeg/libavcodec/avcodec.h \ + ffmpeg/libavcodec/bswap.h \ + ffmpeg/libavcodec/cabac.h \ + ffmpeg/libavcodec/common.h \ + ffmpeg/libavcodec/dsputil.h \ + ffmpeg/libavcodec/dvdata.h \ + ffmpeg/libavcodec/faandct.h \ + ffmpeg/libavcodec/fastmemcpy.h \ + ffmpeg/libavcodec/golomb.h \ + ffmpeg/libavcodec/h263data.h \ + ffmpeg/libavcodec/h264data.h \ + ffmpeg/libavcodec/imgconvert_template.h \ + ffmpeg/libavcodec/indeo3data.h \ + ffmpeg/libavcodec/mpeg12data.h \ + ffmpeg/libavcodec/mpeg4data.h \ + ffmpeg/libavcodec/mpegaudio.h \ + ffmpeg/libavcodec/mpegaudiodectab.h \ + ffmpeg/libavcodec/mpegaudiotab.h \ + ffmpeg/libavcodec/mpegvideo.h \ + ffmpeg/libavcodec/msmpeg4data.h \ + ffmpeg/libavcodec/oggvorbis.h \ + ffmpeg/libavcodec/ra144.h \ + ffmpeg/libavcodec/ra288.h \ + ffmpeg/libavcodec/rational.h \ + ffmpeg/libavcodec/simple_idct.h \ + ffmpeg/libavcodec/sp5x.h \ + ffmpeg/libavcodec/svq1_cb.h \ + ffmpeg/libavcodec/svq1_vlc.h \ + ffmpeg/libavcodec/vp3data.h \ + ffmpeg/libavcodec/wmadata.h \ + ffmpeg/libavcodec/i386/dsputil_mmx_avg.h \ + ffmpeg/libavcodec/i386/dsputil_mmx_rnd.h \ + ffmpeg/libavcodec/i386/mmx.h \ + ffmpeg/libavcodec/ppc/dsputil_altivec.h \ + ffmpeg/libavcodec/ppc/dsputil_ppc.h \ + ffmpeg/libavcodec/ppc/gcc_fixes.h \ + ffmpeg/libavformat/avformat.h \ + ffmpeg/libavformat/avi.h \ + ffmpeg/libavformat/avio.h \ + ffmpeg/libavformat/barpainet.h \ + ffmpeg/libavformat/dv.h \ + ffmpeg/libavformat/dv1394.h \ + ffmpeg/libavformat/framehook.h \ + ffmpeg/libavformat/mpegts.h \ + ffmpeg/libavformat/os_support.h \ + ffmpeg/libavformat/rtp.h \ + ffmpeg/libavformat/rtsp.h \ + ffmpeg/libavformat/rtspcodes.h + +DISTCLEANFILES = \ + ffmpeg/config.h \ + ffmpeg/config.mak + +EXTRA_DIST = \ + $(PATCHES) \ + Tag \ + ffmpeg/CREDITS \ + ffmpeg/INSTALL \ + ffmpeg/README \ + ffmpeg/configure \ + ffmpeg/ffmpeg.c \ + ffmpeg/ffserver.c \ + $(libavcodec_la_SOURCES) \ + $(more_libavcodec_files) \ + $(libavformat_la_SOURCES) \ + $(files_i386) \ + $(files_powerpc) \ + $(all_headers) diff --git a/gst/smoothwave/.gitignore b/gst/smoothwave/.gitignore new file mode 100644 index 0000000..2c411dd3 --- /dev/null +++ b/gst/smoothwave/.gitignore @@ -0,0 +1 @@ +demo-osssrc diff --git a/m4/as-slurp-ffmpeg.m4 b/m4/as-slurp-ffmpeg.m4 index a339842..0df909c 100644 --- a/m4/as-slurp-ffmpeg.m4 +++ b/m4/as-slurp-ffmpeg.m4 @@ -22,7 +22,10 @@ AC_DEFUN(AS_SLURP_FFMPEG, DIRECTORY=`pwd` # get/update cvs if test ! -d $1; then mkdir -p $1; fi - cd $1 + dnl we need to check $srcdir/$1 or it will always checkout ffmpeg even if it is there + dnl at least when top_srcdir != top_builddir. + dnl FIXME: unfortunately this makes the checkout go into top_srcdir + cd $srcdir/$1 if test ! -e ffmpeg/README; then # check out cvs code diff --git a/m4/ogg.m4 b/m4/ogg.m4 new file mode 100644 index 0000000..c73bab5 --- /dev/null +++ b/m4/ogg.m4 @@ -0,0 +1,102 @@ +# Configure paths for libogg +# Jack Moffitt 10-21-2000 +# Shamelessly stolen from Owen Taylor and Manish Singh + +dnl XIPH_PATH_OGG([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) +dnl Test for libogg, and define OGG_CFLAGS and OGG_LIBS +dnl +AC_DEFUN(XIPH_PATH_OGG, +[dnl +dnl Get the cflags and libraries +dnl +AC_ARG_WITH(ogg,[ --with-ogg=PFX Prefix where libogg is installed (optional)], ogg_prefix="$withval", ogg_prefix="") +AC_ARG_WITH(ogg-libraries,[ --with-ogg-libraries=DIR Directory where libogg library is installed (optional)], ogg_libraries="$withval", ogg_libraries="") +AC_ARG_WITH(ogg-includes,[ --with-ogg-includes=DIR Directory where libogg header files are installed (optional)], ogg_includes="$withval", ogg_includes="") +AC_ARG_ENABLE(oggtest, [ --disable-oggtest Do not try to compile and run a test Ogg program],, enable_oggtest=yes) + + if test "x$ogg_libraries" != "x" ; then + OGG_LIBS="-L$ogg_libraries" + elif test "x$ogg_prefix" != "x" ; then + OGG_LIBS="-L$ogg_prefix/lib" + elif test "x$prefix" != "xNONE" ; then + OGG_LIBS="-L$prefix/lib" + fi + + OGG_LIBS="$OGG_LIBS -logg" + + if test "x$ogg_includes" != "x" ; then + OGG_CFLAGS="-I$ogg_includes" + elif test "x$ogg_prefix" != "x" ; then + OGG_CFLAGS="-I$ogg_prefix/include" + elif test "$prefix" != "xNONE"; then + OGG_CFLAGS="-I$prefix/include" + fi + + AC_MSG_CHECKING(for Ogg) + no_ogg="" + + + if test "x$enable_oggtest" = "xyes" ; then + ac_save_CFLAGS="$CFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $OGG_CFLAGS" + LIBS="$LIBS $OGG_LIBS" +dnl +dnl Now check if the installed Ogg is sufficiently new. +dnl + rm -f conf.oggtest + AC_TRY_RUN([ +#include +#include +#include +#include + +int main () +{ + system("touch conf.oggtest"); + return 0; +} + +],, no_ogg=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + + if test "x$no_ogg" = "x" ; then + AC_MSG_RESULT(yes) + ifelse([$1], , :, [$1]) + else + AC_MSG_RESULT(no) + if test -f conf.oggtest ; then + : + else + echo "*** Could not run Ogg test program, checking why..." + CFLAGS="$CFLAGS $OGG_CFLAGS" + LIBS="$LIBS $OGG_LIBS" + AC_TRY_LINK([ +#include +#include +], [ return 0; ], + [ echo "*** The test program compiled, but did not run. This usually means" + echo "*** that the run-time linker is not finding Ogg or finding the wrong" + echo "*** version of Ogg. If it is not finding Ogg, you'll need to set your" + echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" + echo "*** to the installed location Also, make sure you have run ldconfig if that" + echo "*** is required on your system" + echo "***" + echo "*** If you have an old version installed, it is best to remove it, although" + echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"], + [ echo "*** The test program failed to compile or link. See the file config.log for the" + echo "*** exact error that occured. This usually means Ogg was incorrectly installed" + echo "*** or that you have moved Ogg since it was installed." ]) + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + OGG_CFLAGS="" + OGG_LIBS="" + ifelse([$2], , :, [$2]) + fi + AC_SUBST(OGG_CFLAGS) + AC_SUBST(OGG_LIBS) + rm -f conf.oggtest +]) diff --git a/pkgconfig/Makefile.am b/pkgconfig/Makefile.am index bd89d68..808545a 100644 --- a/pkgconfig/Makefile.am +++ b/pkgconfig/Makefile.am @@ -42,7 +42,7 @@ pkgconfig_DATA = \ gstreamer-play-@GST_MAJORMINOR@.pc \ gstreamer-interfaces-@GST_MAJORMINOR@.pc -CLEANFILES = $(pcfiles) $(pcfiles_uninstalled) +CLEANFILES = $(pcfiles) $(pcfiles_uninstalled) $(GCONF_PC) $(GCONF_PC_UNINSTALLED) EXTRA_DIST= \ gstreamer-libs.pc.in gstreamer-libs-uninstalled.pc.in \ gstreamer-play.pc.in gstreamer-play-uninstalled.pc.in diff --git a/sys/dxr3/Makefile.am b/sys/dxr3/Makefile.am index a13bc82..071fc36 100644 --- a/sys/dxr3/Makefile.am +++ b/sys/dxr3/Makefile.am @@ -13,6 +13,9 @@ built_headers = dxr3marshal.h noinst_HEADERS = dxr3videosink.h dxr3audiosink.h dxr3spusink.h \ dxr3common.h ac3_padder.h +EXTRA_DIST = dxr3marshal.list + + dxr3marshal.h: dxr3marshal.list glib-genmarshal --header --prefix=dxr3_marshal $^ > dxr3marshal.h.tmp mv dxr3marshal.h.tmp dxr3marshal.h -- 2.7.4