summaryrefslogtreecommitdiffstats
path: root/multimedia/gstreamer-plugins
diff options
context:
space:
mode:
authorahze <ahze@df743ca5-7f9a-e211-a948-0013205c9059>2004-11-15 13:44:15 +0800
committerahze <ahze@df743ca5-7f9a-e211-a948-0013205c9059>2004-11-15 13:44:15 +0800
commit6e56d6a5ebeee89e690668e1d98ef1a1c9b21101 (patch)
treea33621e2b1a7ab9bed73e6e170d51aced1189a43 /multimedia/gstreamer-plugins
parentd21e4ffb56bfe8a6115c626e06dbb815b771d03b (diff)
downloadmarcuscom-ports-6e56d6a5ebeee89e690668e1d98ef1a1c9b21101.tar
marcuscom-ports-6e56d6a5ebeee89e690668e1d98ef1a1c9b21101.tar.gz
marcuscom-ports-6e56d6a5ebeee89e690668e1d98ef1a1c9b21101.tar.bz2
marcuscom-ports-6e56d6a5ebeee89e690668e1d98ef1a1c9b21101.tar.lz
marcuscom-ports-6e56d6a5ebeee89e690668e1d98ef1a1c9b21101.tar.xz
marcuscom-ports-6e56d6a5ebeee89e690668e1d98ef1a1c9b21101.tar.zst
marcuscom-ports-6e56d6a5ebeee89e690668e1d98ef1a1c9b21101.zip
Massive import of gstreamer-plugins
This is gstreamer-plugins with each plugin in its own separate port. Includes bsd.gstreamer.mk so ports can use the following examples WANT_GSTREAMER= yes .include <bsd.port.pre.mk> .if defined(WITH_VORBIS) USE_GSTREAMER+= vorbis .endif or USE_GSTREAMER= yes .include <bsd.port.pre.mk> .if defined(WITH_FAAD) USE_GSTREAMER+= faad .endif USE_GSTREAMER=yes will always install multimedia/gstreamer-plugins WITH_GSTREAMER=yes will only include bsd.gstreamer.mk for use after bsd.port.pre.mk Approved by: marcus git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@3061 df743ca5-7f9a-e211-a948-0013205c9059
Diffstat (limited to 'multimedia/gstreamer-plugins')
-rw-r--r--multimedia/gstreamer-plugins/Makefile146
-rw-r--r--multimedia/gstreamer-plugins/Makefile.common389
-rw-r--r--multimedia/gstreamer-plugins/distinfo2
-rw-r--r--multimedia/gstreamer-plugins/files/bsdi_dvd.h340
-rw-r--r--multimedia/gstreamer-plugins/files/patch-configure12
-rw-r--r--multimedia/gstreamer-plugins/files/patch-ext::ivorbis::vorbisenc.h103
-rw-r--r--multimedia/gstreamer-plugins/files/patch-ext_libcaca_Makefile.in23
-rw-r--r--multimedia/gstreamer-plugins/files/patch-ext_mpeg2enc_gstmpeg2encoptions.cc26
-rw-r--r--multimedia/gstreamer-plugins/files/patch-ext_sdl_Makefile.in23
-rw-r--r--multimedia/gstreamer-plugins/files/patch-gst_tcp_gsttcpclientsrc.h11
-rw-r--r--multimedia/gstreamer-plugins/files/patch-sys_cdrom_gstcdplayer-ioctl-bsd.h72
-rw-r--r--multimedia/gstreamer-plugins/files/patch-sys_oss_gstosselement.h10
-rw-r--r--multimedia/gstreamer-plugins/pkg-descr17
-rw-r--r--multimedia/gstreamer-plugins/pkg-plist174
14 files changed, 1348 insertions, 0 deletions
diff --git a/multimedia/gstreamer-plugins/Makefile b/multimedia/gstreamer-plugins/Makefile
new file mode 100644
index 000000000..378d2bad0
--- /dev/null
+++ b/multimedia/gstreamer-plugins/Makefile
@@ -0,0 +1,146 @@
+# New ports collection makefile for: gstreamer plugins
+# Date created: Wed Jul 10 23:38:01 UTC 2002
+# Whom: Mario Sergio Fujikawa Ferreira <lioux@FreeBSD.org>
+#
+# $FreeBSD: ports/multimedia/gstreamer-plugins/Makefile,v 1.64 2004/09/11 01:08:33 marcus Exp $
+#
+
+PORTNAME= gstreamer
+PORTVERSION= 0.8.5
+CATEGORIES?= multimedia audio
+MASTER_SITES= ${MASTER_SITE_GNOME} \
+ http://gstreamer.freedesktop.org/src/gst-plugins/
+MASTER_SITE_SUBDIR= sources/gst-plugins/0.8
+PKGNAMESUFFIX= -plugins${GST_PLUGIN_SUFFIX}
+DISTNAME= gst-plugins-${PORTVERSION}
+DIST_SUBDIR= gnome2
+
+MAINTAINER= lioux@FreeBSD.org
+COMMENT?= GStreamer written collection of plugins handling several media types
+
+LIB_DEPENDS+= gstreamer-0.8.5:${PORTSDIR}/multimedia/gstreamer \
+ popt.0:${PORTSDIR}/devel/popt
+
+SHLIB_VERSION= 1
+VERSION= 0.8
+
+WANT_GSTREAMER= yes
+USE_X_PREFIX= yes
+USE_BZIP2= yes
+USE_GMAKE= yes
+USE_GNOME+= gnomehack \
+ gnomehier \
+ gnomeprefix \
+ pkgconfig \
+ gconf2
+USE_REINPLACE= yes
+USE_LIBTOOL_VER=15
+GST_PLUGIN?= base
+
+CONFIGURE_ENV= PKG_CONFIG=${PKG_CONFIG} \
+ CFLAGS="${CFLAGS} -I${LOCALBASE}/include" \
+ CPPFLAGS="${CPPFLAGS} -I${X11BASE}/include -I${LOCALBASE}/include" \
+ LDFLAGS="${LDFLAGS} -L${X11BASE}/lib -L${LOCALBASE}/lib"
+
+.include <bsd.port.pre.mk>
+
+.if ${GST_PLUGIN} == "base"
+GCONF_SCHEMAS= gstreamer-0.8.schemas
+
+INSTALLS_SHLIB= yes
+
+PLIST_SUB= VERSION="${VERSION}" \
+ SHLIB_VERSION="${SHLIB_VERSION}"
+
+## Additional directories which should be both built and installed
+## but configure neglected to correctly identify them
+# cdrom/vcd support
+EXTRA_BUILD_DIR+= sys/vcd
+# modplug
+EXTRA_BUILD_DIR+= gst/modplug
+.endif
+
+# cdrom default device
+.ifdef(WITH_CDROM_DEVICE)
+DEFAULT_CDROM_DEVICE=${WITH_CDROM_DEVICE}
+.else
+. if ${OSVERSION} < 500000
+DEFAULT_CDROM_DEVICE=/dev/acd0c
+. else
+DEFAULT_CDROM_DEVICE=/dev/acd0
+. endif
+.endif
+
+# dvd default device
+.ifdef(WITH_DVD_DEVICE)
+DEFAULT_DVD_DEVICE=${WITH_DVD_DEVICE}
+.else
+. if ${OSVERSION} < 500000
+DEFAULT_DVD_DEVICE=/dev/acd0c
+. else
+DEFAULT_DVD_DEVICE=/dev/acd0
+. endif
+.endif
+
+post-extract:
+# for cdrom/vcd support
+# taken from mplayer distfile
+# MD5 (MPlayer-1.0pre4.tar.bz2) = 83ebac0f05b192516a41fca2350ca01a
+ @${CP} ${FILESDIR}/bsdi_dvd.h ${WRKSRC}/sys/vcd/
+
+post-patch:
+ @${FIND} ${WRKSRC} -type f | \
+ ${XARGS} -n 10 ${REINPLACE_CMD} -e \
+ 's|malloc\.h|stdlib.h|; \
+ s|stdint\.h|inttypes.h|; \
+ s|%%VERSION%%|${VERSION}|'
+# cdrom default device
+ @${REINPLACE_CMD} -e 's|/dev/cdrom|${DEFAULT_CDROM_DEVICE}|' \
+ ${WRKSRC}/ext/cdparanoia/gstcdparanoia.c \
+ ${WRKSRC}/sys/cdrom/gstcdplayer.c \
+ ${WRKSRC}/sys/vcd/vcdsrc.c
+# dvd default device
+ @${REINPLACE_CMD} -e 's|/dev/dvd|${DEFAULT_DVD_DEVICE}|' \
+ ${WRKSRC}/ext/dvdnav/dvdnavsrc.c \
+ ${WRKSRC}/ext/dvdread/dvdreadsrc.c
+# cdrom/vcd support
+ @${REINPLACE_CMD} -e 's|<linux/cdrom.h>|"bsdi_dvd.h"|' \
+ ${WRKSRC}/sys/cdrom/gstcdplayer_ioctl.c \
+ ${WRKSRC}/sys/vcd/vcdsrc.c \
+ ${WRKSRC}/sys/vcd/vcdsrc.h
+# KDE libkio required thread support
+ @${REINPLACE_CMD} -E \
+ -e 's|(KIO_CFLAGS=.+)"$$|\1 ${PTHREAD_CFLAGS}"|' \
+ -e 's|(KIO_LIBS=.+)"$$|\1 ${PTHREAD_LIBS}"|' \
+ ${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT}
+# mplex fix -- gst configure does not use mjpegtool's config to find include.
+ @${REINPLACE_CMD} -E \
+ -e 's|PFLAGS@|PFLAGS@ -I${LOCALBASE}/include/mjpegtools -I${LOCALBASE}/include/mjpegtools/mplex|' \
+ ${WRKSRC}/ext/mplex/Makefile.in
+# speex fix -- speex.h has moved to include/speex/speex.h
+ @${REINPLACE_CMD} -e 's|-I.|-I. -I${LOCALBASE}/include/speex|' \
+ ${WRKSRC}/ext/speex/Makefile.in
+# Fix gst-register when using -O -march=athlon-xp
+ @${REINPLACE_CMD} -e 's|@CXXF|-fgcse @CXXF|g' \
+ ${WRKSRC}/gst/modplug/Makefile.in \
+ ${WRKSRC}/gst/modplug/libmodplug/Makefile.in
+
+post-build:
+.ifdef(EXTRA_BUILD_DIR)
+. for dir in ${EXTRA_BUILD_DIR}
+ @cd ${WRKSRC}/${dir}; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${ALL_TARGET}
+. endfor
+.endif
+
+post-install:
+.ifdef(EXTRA_BUILD_DIR)
+. for dir in ${EXTRA_BUILD_DIR}
+ @cd ${WRKSRC}/${dir}; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${INSTALL_TARGET}
+. endfor
+.endif
+# register plugins
+ -@${X11BASE}/bin/gst-register-${GST_VERSION} \
+ --gst-registry=${PREFIX}/share/gnome/cache/gstreamer-${GST_VERSION}/registry.xml 2>/dev/null
+
+.include "${MASTERDIR}/Makefile.common"
+.include <bsd.port.post.mk>
diff --git a/multimedia/gstreamer-plugins/Makefile.common b/multimedia/gstreamer-plugins/Makefile.common
new file mode 100644
index 000000000..dfaf324a9
--- /dev/null
+++ b/multimedia/gstreamer-plugins/Makefile.common
@@ -0,0 +1,389 @@
+GST_ALL_PLUGINS= \
+ a52dec \
+ aalib \
+ aalibtest \
+ alsa \
+ arts \
+ artsc \
+ audiofile \
+ cdparanoia \
+ dirac \
+ divx \
+ dts \
+ dvdnav \
+ dvdread \
+ dxr3 \
+ esd \
+ faac \
+ faad \
+ flac \
+ freetypetest \
+ gdk_pixbuf \
+ gnome_vfs \
+ gsm \
+ hermes \
+ ivorbis \
+ jack \
+ jpeg \
+ ladspa \
+ lame \
+ lcs \
+ libcaca \
+ libdv \
+ libfame \
+ libmng \
+ libpng \
+ librfb \
+ libvisual \
+ mad \
+ mikmod \
+ mpeg2dec \
+ mpeg2enc \
+ mplex \
+ musicbrainz \
+ nas \
+ ogg \
+ osx_audio \
+ pango \
+ qcam \
+ raw1394 \
+ sdl \
+ shout \
+ shout2 \
+ sidplay \
+ smoothwave \
+ sndfile \
+ sunaudio \
+ speex \
+ swfdec \
+ tarkin \
+ theora \
+ v4l \
+ v4l2 \
+ vcd \
+ vorbis \
+ xine \
+ xvid
+
+# Disable all plugins by default\
+.for d in ${GST_ALL_PLUGINS}
+CONFIGURE_ARGS+= --disable-${d}
+.endfor
+
+CONFIGURE_ARGS+=--disable-tests \
+ --disable-alsa \
+ --disable-http \
+ --enable-gconf \
+ --enable-gconftoo \
+ --enable-static \
+ --enable-x \
+ --enable-xshm \
+ --enable-xvideo
+
+.if ${GST_PLUGIN}!="base"
+
+GST_PLUGIN_SUFFIX?= -${GST_PLUGIN}
+
+COMMENT= Gstreamer ${GST_PLUGIN} plugin
+
+# Enable the right plugin
+
+CONFIGURE_ARGS:=${CONFIGURE_ARGS:S|--disable-${p}|--enable-${p}|}
+
+# Build/Install directory. defaults to ext/${GST_PLUGIN}
+# few plugins are in sys/
+GST_PLUGIN_DIR?= ext/${GST_PLUGIN}
+
+#
+GST_LIB_DIR= lib/gstreamer-${VERSION}
+
+# Auto create PLIST
+PLIST= ${NONEXISTENT}
+PLIST_FILES?= ${GST_LIB_DIR}/libgst${GST_PLUGIN}${GST_PLIST_SUFFIX}.so
+
+# aalib
+.if ${GST_PLUGIN}=="aalib"
+LIB_DEPENDS+= aa.1:${PORTSDIR}/graphics/aalib
+PLIST_FILES= ${GST_LIB_DIR}/libgstaasink.so
+.endif
+
+# artsd
+.if ${GST_PLUGIN}=="artsd"
+LIB_DEPENDS+= artsc.0:${PORTSDIR}/audio/arts
+GST_PLIST_SUFFIX= sink
+.endif
+
+# cdparanoia
+.if ${GST_PLUGIN}=="cdparanoia"
+LIB_DEPENDS+= cdda_interface.0:${PORTSDIR}/audio/cdparanoia
+.endif
+
+# dirac
+.if ${GST_PLUGIN}=="dirac"
+BUILD_DEPENDS+= ${LOCALBASE}/lib/libconv_common.a:${PORTSDIR}/multimedia/dirac
+.endif
+
+# dts
+.if ${GST_PLUGIN}=="dts"
+BUILD_DEPENDS+= ${LOCALBASE}/lib/libdts_pic.a:${PORTSDIR}/multimedia/libdts
+RUN_DEPENDS+= ${LOCALBASE}/lib/libdts_pic.a:${PORTSDIR}/multimedia/libdts
+GST_PLIST_SUFFIX= dec
+.endif
+
+# esound
+.if ${GST_PLUGIN}=="esound"
+USE_GNOME+= esound
+GST_PLUGIN_DIR= ext/esd
+PLIST_FILES= ${GST_LIB_DIR}/libgstesd.so
+.endif
+
+# faac
+.if ${GST_PLUGIN}=="faac"
+LIB_DEPENDS+= faac.0:${PORTSDIR}/audio/faac
+.endif
+
+# faad
+.if ${GST_PLUGIN}=="faad"
+LIB_DEPENDS+= faad.0:${PORTSDIR}/audio/faad
+.endif
+
+# flac
+.if ${GST_PLUGIN}=="flac"
+LIB_DEPENDS+= FLAC.5:${PORTSDIR}/audio/flac
+.endif
+
+# gdkpixbuf
+.if ${GST_PLUGIN}=="gdkpixbuf"
+USE_GNOME+= gdkpixbuf
+GST_PLUGIN_DIR= ext/gdk_pixbuf
+.endif
+
+# gnomevfs
+.if ${GST_PLUGIN}=="gnomevfs"
+USE_GNOME+= gnomevfs2
+.endif
+
+# gsm
+.if ${GST_PLUGIN}=="gsm"
+LIB_DEPENDS+= gsm.1:${PORTSDIR}/audio/gsm
+.endif
+
+# jack
+.if ${GST_PLUGIN}=="jack"
+LIB_DEPENDS+= jack.0:${PORTSDIR}/audio/jack
+.endif
+
+# hermes
+.if ${GST_PLUGIN}=="hermes"
+LIB_DEPENDS+ Hermes.1:${PORTSDIR}/graphics/Hermes
+PLIST_FILES= ${GST_LIB_DIR}/libgsthermescolorspace.so
+.endif
+
+# jpeg
+.if ${GST_PLUGIN}=="jpeg"
+LIB_DEPENDS+= jpeg.9:${PORTSDIR}/graphics/jpeg
+CONFLICTS+= gstreamer-plugins-jpeg-mmx-*
+.endif
+
+# jpeg-mmx
+.if ${GST_PLUGIN}=="jpeg-mmx"
+LIB_DEPEDNS+= jpeg-mmx.62:${PORTSDIR}/graphics/jpeg-mmx
+CONFLICTS+= gstreamer-plugins-jpeg-*.*
+
+GST_PLUGIN_DIR= ext/jpeg
+PLIST_FILES= ${GST_LIB_DIR}/libgstjpeg.so
+.endif
+
+# ladspa
+.if ${GST_PLUGIN}=="ldspa"
+BUILD_DEPENDS+= ${LOCALBASE}/include/ladspa.h:${PORTSDIR}/audio/ladspa
+.endif
+
+# lame
+.if ${GST_PLUGIN}=="lame"
+LIB_DEPENDS+= mp3lame.0:${PORTSDIR}/audio/lame
+.endif
+
+# a52dec
+.if ${GST_PLUGIN}=="a52dec"
+LIB_DEPENDS+= a52.0:${PORTSDIR}/audio/liba52
+.endif
+
+# audiofile
+.if ${GST_PLUGIN}=="audiofile"
+LIB_DEPENDS+= audiofile.0:${PORTSDIR}/audio/libaudiofile
+.endif
+
+# libcaca
+.if ${GST_PLUGIN}=="libcaca"
+BUILD_DEPENDS+= ${LOCALBASE}/lib/libcaca.a:${PORTSDIR}/graphics/libcaca
+PLIST_FILES= ${GST_LIB_DIR}/libgstcacasink.so
+.endif
+
+# dv
+.if ${GST_PLUGIN}=="dv"
+LIB_DEPENDS+= dv.4:${PORTSDIR}/multimedia/libdv
+GST_PLIST_SUFFIX= dec
+.endif
+
+# dvd (dvdnav dvdread)
+.if ${GST_PLUGIN}=="dvd"
+LIB_DEPENDS+= dvdnav.3:${PORTSDIR}/multimedia/libdvdnav
+GST_PLUGIN_DIR= ext/dvdnav \
+ ext/dvdread
+PLIST_FILES= ${GST_LIB_DIR}/libgstdvdnavsrc.so \
+ ${GST_LIB_DIR}/libgstdvdreadsrc.so
+.endif
+
+# libfame
+.if ${GST_PLUGIN}=="libfame"
+LIB_DEPENDS+= fame-0.9.1:${PORTSDIR}/multimedia/libfame
+.endif
+
+# libmng
+.if ${GST_PLUGIN}=="libmng"
+LIB_DEPENDS+= mng.1:${PORTSDIR}/graphics/libmng
+PLIST_FILES= ${GST_LIB_DIR}/libgstmng.so
+.endif
+
+# mikmod
+.if ${GST_PLUGIN}=="mikmod"
+LIB_DEPENDS+= mikmod.2:${PORTSDIR}/audio/libmikmod
+.endif
+
+# mpeg2dec
+.if ${GST_PLUGIN}=="mpeg2dec"
+LIB_DEPENDS+= mpeg2.0:${PORTSDIR}/multimedia/libmpeg2
+.endif
+
+# mplex
+.if ${GST_PLUGIN}=="mplex"
+LIB_DEPENDS+= lavjpeg-1.6.2:${PORTSDIR}/multimedia/mjpegtools
+.endif
+
+# musicbrainz
+.if ${GST_PLUGIN}=="musicbrainz"
+LIB_DEPENDS+= musicbrainz.4:${PORTSDIR}/audio/libmusicbrainz
+PLIST_FILES= lib/gstreamer-${VERSION}/libgsttrm.so
+.endif
+
+# shout
+.if ${GST_PLUGIN}=="shout"
+LIB_DEPENDS+= shout.2:${PORTSDIR}/audio/libshout
+.endif
+
+# sidplay
+.if ${GST_PLUGIN}=="sidplay"
+LIB_DEPENDS+= sidplay.1:${PORTSDIR}/audio/libsidplay
+PLIST_FILES= ${GST_LIB_DIR}/libgstsid.so
+.endif
+
+# sndfile
+.if ${GST_PLUGIN}=="sndfile"
+LIB_DEPENDS+= sndfile.1:${PORTSDIR}/audio/libsndfile
+.endif
+
+# theora
+.if ${GST_PLUGIN}=="theora"
+LIB_DEPENDS+= theora.0:${PORTSDIR}/graphics/libtheora
+.endif
+
+# mad
+.if ${GST_PLUGIN}=="mad"
+LIB_DEPENDS+= mad.2:${PORTSDIR}/audio/libmad \
+ id3tag.2:${PORTSDIR}/audio/libid3tag
+.endif
+
+# mpeg2enc
+.if ${GST_PLUGIN}=="mpeg2enc"
+USE_GSTREAMER+= mplex
+LIB_DEPENDS+= lavjpeg-1.6.2:${PORTSDIR}/multimedia/mjpegtools
+
+# XXX - make sure CONFIGURE works with mpeg2enc even with "ccache
+# c++" ... weird but necessary
+CONFIGURE_ENV+= HAVE_CXX=yes
+.endif
+
+# nas
+.if ${GST_PLUGIN}=="nas"
+LIB_DEPENDS+= audio.2:${PORTSDIR}/audio/nas
+GST_PLIST_SUFFIX= sink
+.endif
+
+# ogg
+.if ${GST_PLUGIN}=="ogg"
+LIB_DEPENDS+= ogg.5:${PORTSDIR}/audio/libogg
+.endif
+
+# pango
+.if ${GST_PLUGIN}=="pango"
+USE_GNOME+= pango
+PLIST_FILES= ${GST_LIB_DIR}/libgsttextoverlay.so
+.endif
+
+# libpng
+.if ${GST_PLUGIN}=="libpng"
+LIB_DEPENDS+= png.5:${PORTSDIR}/graphics/png
+GST_PLUGIN_DIR= ext/libpng \
+ ext/snapshot
+PLIST_FILES= ${GST_LIB_DIR}/libgstpng.so \
+ ${GST_LIB_DIR}/libgstsnapshot.so
+.endif
+
+# sdl
+.if ${GST_PLUGIN}=="sdl"
+USE_SDL+= sdl
+GST_PLIST_SUFFIX= videosink
+.endif
+
+# smoothwave
+.if ${GST_PLUGIN}=="smoothwave"
+USE_GNOME+= gtk20
+.endif
+
+# speex
+.if ${GST_PLUGIN}=="speex"
+LIB_DEPENDS+= speex.3:${PORTSDIR}/audio/speex
+.endif
+
+# swfdec
+.if ${GST_PLUGIN}=="swfdec"
+LIB_DEPENDS+= swfdec.0:${PORTSDIR}/graphics/swfdec
+.endif
+
+# vorbis
+.if ${GST_PLUGIN}=="vorbis"
+USE_GSTREAMER+= ogg
+LIB_DEPENDS+= vorbis.3:${PORTSDIR}/audio/libvorbis
+.endif
+
+# ivorbis
+.if ${GST_PLUGIN}=="ivorbis"
+LIB_DEPENDS+= vorbisidec.1:${PORTSDIR}/audio/libtremor
+.endif
+
+# xine
+.if ${GST_PLUGIN}=="xine"
+LIB_DEPENDS+= xine.9:${PORTSDIR}/multimedia/libxine
+.endif
+
+# xvid
+.if ${GST_PLUGIN}=="xvid"
+LIB_DEPENDS+= xvidcore.4:${PORTSDIR}/multimedia/xvid
+.endif
+
+LIB_DEPENDS+= gstgconf-${VERSION}.${SHLIB_VERSION}:${PORTSDIR}/multimedia/gstreamer-plugins
+
+do-build:
+.for dir in ${GST_PREBUILD_DIR} ${GST_PLUGIN_DIR} ${GST_POSTBUILD_DIR}
+ @cd ${WRKSRC}/${dir}; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} \
+ ${MAKEFILE} ${MAKE_ARGS} ${ALL_TARGET}
+.endfor
+
+do-install:
+.for dir in ${GST_PLUGIN_DIR}
+ @cd ${WRKSRC}/${dir}; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} \
+ ${MAKEFILE} ${MAKE_ARGS} ${INSTALL_TARGET}
+.endfor
+
+.endif
diff --git a/multimedia/gstreamer-plugins/distinfo b/multimedia/gstreamer-plugins/distinfo
new file mode 100644
index 000000000..dbece6d3b
--- /dev/null
+++ b/multimedia/gstreamer-plugins/distinfo
@@ -0,0 +1,2 @@
+MD5 (gnome2/gst-plugins-0.8.5.tar.bz2) = da9ed7c74b9ac0ccc5d2efcf4fd60db0
+SIZE (gnome2/gst-plugins-0.8.5.tar.bz2) = 2031638
diff --git a/multimedia/gstreamer-plugins/files/bsdi_dvd.h b/multimedia/gstreamer-plugins/files/bsdi_dvd.h
new file mode 100644
index 000000000..ff61ebd25
--- /dev/null
+++ b/multimedia/gstreamer-plugins/files/bsdi_dvd.h
@@ -0,0 +1,340 @@
+#ifndef _DVD_H_
+#define _DVD_H_
+
+#include <sys/cdefs.h>
+#include <machine/endian.h>
+#include <sys/ioctl.h>
+
+__BEGIN_DECLS
+int dvd_cdrom_ioctl(int, unsigned long, void *);
+int cdrom_blocksize(int, int);
+void dvd_cdrom_debug(int);
+__END_DECLS
+
+#define ioctl(a,b,c) dvd_cdrom_ioctl((a),(b),(c))
+
+typedef unsigned char __u8;
+typedef unsigned short __u16;
+typedef unsigned int __u32;
+
+#define DVD_READ_STRUCT 0x5390 /* Read structure */
+#define DVD_WRITE_STRUCT 0x5391 /* Write structure */
+#define DVD_AUTH 0x5392 /* Authentication */
+
+#define DVD_STRUCT_PHYSICAL 0x00
+#define DVD_STRUCT_COPYRIGHT 0x01
+#define DVD_STRUCT_DISCKEY 0x02
+#define DVD_STRUCT_BCA 0x03
+#define DVD_STRUCT_MANUFACT 0x04
+
+struct dvd_layer {
+ __u8 book_version : 4;
+ __u8 book_type : 4;
+ __u8 min_rate : 4;
+ __u8 disc_size : 4;
+ __u8 layer_type : 4;
+ __u8 track_path : 1;
+ __u8 nlayers : 2;
+ __u8 track_density : 4;
+ __u8 linear_density : 4;
+ __u8 bca : 1;
+ __u32 start_sector;
+ __u32 end_sector;
+ __u32 end_sector_l0;
+};
+
+struct dvd_physical {
+ __u8 type;
+ __u8 layer_num;
+ struct dvd_layer layer[4];
+};
+
+struct dvd_copyright {
+ __u8 type;
+
+ __u8 layer_num;
+ __u8 cpst;
+ __u8 rmi;
+};
+
+struct dvd_disckey {
+ __u8 type;
+
+ unsigned agid : 2;
+ __u8 value[2048];
+};
+
+struct dvd_bca {
+ __u8 type;
+
+ int len;
+ __u8 value[188];
+};
+
+struct dvd_manufact {
+ __u8 type;
+
+ __u8 layer_num;
+ int len;
+ __u8 value[2048];
+};
+
+typedef union {
+ __u8 type;
+
+ struct dvd_physical physical;
+ struct dvd_copyright copyright;
+ struct dvd_disckey disckey;
+ struct dvd_bca bca;
+ struct dvd_manufact manufact;
+} dvd_struct;
+
+/*
+ * DVD authentication ioctl
+ */
+
+/* Authentication states */
+#define DVD_LU_SEND_AGID 0
+#define DVD_HOST_SEND_CHALLENGE 1
+#define DVD_LU_SEND_KEY1 2
+#define DVD_LU_SEND_CHALLENGE 3
+#define DVD_HOST_SEND_KEY2 4
+
+/* Termination states */
+#define DVD_AUTH_ESTABLISHED 5
+#define DVD_AUTH_FAILURE 6
+
+/* Other functions */
+#define DVD_LU_SEND_TITLE_KEY 7
+#define DVD_LU_SEND_ASF 8
+#define DVD_INVALIDATE_AGID 9
+#define DVD_LU_SEND_RPC_STATE 10
+#define DVD_HOST_SEND_RPC_STATE 11
+
+/* State data */
+typedef __u8 dvd_key[5]; /* 40-bit value, MSB is first elem. */
+typedef __u8 dvd_challenge[10]; /* 80-bit value, MSB is first elem. */
+
+struct dvd_lu_send_agid {
+ __u8 type;
+ unsigned agid : 2;
+};
+
+struct dvd_host_send_challenge {
+ __u8 type;
+ unsigned agid : 2;
+
+ dvd_challenge chal;
+};
+
+struct dvd_send_key {
+ __u8 type;
+ unsigned agid : 2;
+
+ dvd_key key;
+};
+
+struct dvd_lu_send_challenge {
+ __u8 type;
+ unsigned agid : 2;
+
+ dvd_challenge chal;
+};
+
+#define DVD_CPM_NO_COPYRIGHT 0
+#define DVD_CPM_COPYRIGHTED 1
+
+#define DVD_CP_SEC_NONE 0
+#define DVD_CP_SEC_EXIST 1
+
+#define DVD_CGMS_UNRESTRICTED 0
+#define DVD_CGMS_SINGLE 2
+#define DVD_CGMS_RESTRICTED 3
+
+struct dvd_lu_send_title_key {
+ __u8 type;
+ unsigned agid : 2;
+
+ dvd_key title_key;
+ int lba;
+ unsigned cpm : 1;
+ unsigned cp_sec : 1;
+ unsigned cgms : 2;
+};
+
+struct dvd_lu_send_asf {
+ __u8 type;
+ unsigned agid : 2;
+
+ unsigned asf : 1;
+};
+
+struct dvd_host_send_rpcstate {
+ __u8 type;
+ __u8 pdrc;
+};
+
+struct dvd_lu_send_rpcstate {
+ __u8 type : 2;
+ __u8 vra : 3;
+ __u8 ucca : 3;
+ __u8 region_mask;
+ __u8 rpc_scheme;
+};
+
+typedef union {
+ __u8 type;
+
+ struct dvd_lu_send_agid lsa;
+ struct dvd_host_send_challenge hsc;
+ struct dvd_send_key lsk;
+ struct dvd_lu_send_challenge lsc;
+ struct dvd_send_key hsk;
+ struct dvd_lu_send_title_key lstk;
+ struct dvd_lu_send_asf lsasf;
+ struct dvd_host_send_rpcstate hrpcs;
+ struct dvd_lu_send_rpcstate lrpcs;
+} dvd_authinfo;
+
+
+typedef struct {
+ __u16 report_key_length;
+ __u8 reserved1;
+ __u8 reserved2;
+#if BYTE_ORDER == BIG_ENDIAN
+ __u8 type_code : 2;
+ __u8 vra : 3;
+ __u8 ucca : 3;
+#elif BYTE_ORDER == LITTLE_ENDIAN
+ __u8 ucca : 3;
+ __u8 vra : 3;
+ __u8 type_code : 2;
+#endif
+ __u8 region_mask;
+ __u8 rpc_scheme;
+ __u8 reserved3;
+} rpc_state_t;
+
+/*
+ * Stuff for the CDROM ioctls
+*/
+
+#define CDROMREADTOCHDR 0x5305 /* Read TOC header (cdrom_tochdr) */
+#define CDROMREADTOCENTRY 0x5306 /* Read TOC entry (cdrom_tocentry) */
+#define CDROMEJECT 0x5309 /* Ejects the cdrom media */
+#define CDROMCLOSETRAY 0x5319 /* Reverse of CDROMEJECT */
+#define CDROM_DRIVE_STATUS 0x5326 /* Get tray position, etc. */
+#define CDROM_DISC_STATUS 0x5327 /* Get disc type, etc. */
+#define CDROMREADMODE2 0x530c /* Read CDROM mode 2 data (2336 Bytes) */
+#define CDROMREADMODE1 0x530d /* Read CDROM mode 1 data (2048 Bytes) */
+#define CDROMREADRAW 0x5314 /* read data in raw mode (2352 bytes) */
+
+#define CD_MINS 74 /* max. minutes per CD, not really a limit */
+#define CD_SECS 60 /* seconds per minute */
+#define CD_FRAMES 75 /* frames per second */
+#define CD_MSF_OFFSET 150 /* MSF numbering offset of first frame */
+
+#define CD_HEAD_SIZE 4 /* header (address) bytes per raw data frame */
+#define CD_SYNC_SIZE 12 /* 12 sync bytes per raw data frame */
+#define CD_FRAMESIZE 2048 /* bytes per frame, "cooked" mode */
+#define CD_FRAMESIZE_RAW 2352 /* bytes per frame, "raw" mode */
+#define CD_FRAMESIZE_RAW0 (CD_FRAMESIZE_RAW-CD_SYNC_SIZE-CD_HEAD_SIZE) /*2336*/
+#define CD_FRAMESIZE_RAW1 (CD_FRAMESIZE_RAW-CD_SYNC_SIZE) /*2340*/
+
+/* CD-ROM address types (cdrom_tocentry.cdte_format) */
+#define CDROM_LBA 0x01 /* logical block: first frame is #0 */
+#define CDROM_MSF 0x02 /* minute-second-frame: binary. not bcd here!*/
+
+/* bit to tell whether track is data or audio (cdrom_tocentry.cdte_ctrl) */
+#define CDROM_DATA_TRACK 0x04
+
+/* The leadout track is always 0xAA, regardless of # of tracks on disc */
+#define CDROM_LEADOUT 0xAA
+
+/* drive status returned by CDROM_DRIVE_STATUS ioctl */
+#define CDS_NO_INFO 0 /* if not implemented */
+#define CDS_NO_DISC 1
+#define CDS_TRAY_OPEN 2
+#define CDS_DRIVE_NOT_READY 3
+#define CDS_DISC_OK 4
+
+/*
+ * Return values for CDROM_DISC_STATUS ioctl.
+ * Can also return CDS_NO_INFO and CDS_NO_DISC from above
+*/
+#define CDS_AUDIO 100
+#define CDS_DATA_1 101
+#define CDS_DATA_2 102
+#define CDS_XA_2_1 103
+#define CDS_XA_2_2 104
+#define CDS_MIXED 105
+
+/* For compile compatibility only - we don't support changers */
+#define CDSL_NONE ((int) (~0U>>1)-1)
+#define CDSL_CURRENT ((int) (~0U>>1))
+
+struct cdrom_msf
+{
+ __u8 cdmsf_min0; /* start minute */
+ __u8 cdmsf_sec0; /* start second */
+ __u8 cdmsf_frame0; /* start frame */
+ __u8 cdmsf_min1; /* end minute */
+ __u8 cdmsf_sec1; /* end second */
+ __u8 cdmsf_frame1; /* end frame */
+};
+
+struct cdrom_tochdr
+ {
+ __u8 cdth_trk0; /* start track */
+ __u8 cdth_trk1; /* end track */
+ };
+
+struct cdrom_msf0
+{
+ __u8 minute;
+ __u8 second;
+ __u8 frame;
+};
+
+union cdrom_addr
+{
+ struct cdrom_msf0 msf;
+ int lba;
+};
+
+struct cdrom_tocentry
+{
+ __u8 cdte_track;
+ __u8 cdte_adr :4;
+ __u8 cdte_ctrl :4;
+ __u8 cdte_format;
+ union cdrom_addr cdte_addr;
+ __u8 cdte_datamode;
+};
+
+struct modesel_head
+{
+ __u8 reserved1;
+ __u8 medium;
+ __u8 reserved2;
+ __u8 block_desc_length;
+ __u8 density;
+ __u8 number_of_blocks_hi;
+ __u8 number_of_blocks_med;
+ __u8 number_of_blocks_lo;
+ __u8 reserved3;
+ __u8 block_length_hi;
+ __u8 block_length_med;
+ __u8 block_length_lo;
+};
+
+typedef struct
+{
+ int data;
+ int audio;
+ int cdi;
+ int xa;
+ int error;
+} tracktype;
+
+#endif /* _DVD_H_ */
diff --git a/multimedia/gstreamer-plugins/files/patch-configure b/multimedia/gstreamer-plugins/files/patch-configure
new file mode 100644
index 000000000..92b1deb51
--- /dev/null
+++ b/multimedia/gstreamer-plugins/files/patch-configure
@@ -0,0 +1,12 @@
+--- configure.orig Wed Jun 23 21:30:24 2004
++++ configure Wed Jun 23 21:30:25 2004
+@@ -46068,7 +46068,8 @@
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ ac_check_lib_save_LIBS=$LIBS
+-LIBS="-laudio $X_LIBS $LIBS"
++#xxx fix the non x case is er niet...
++LIBS="-laudio -lm -lXt $X_LIBS $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
+ _ACEOF
diff --git a/multimedia/gstreamer-plugins/files/patch-ext::ivorbis::vorbisenc.h b/multimedia/gstreamer-plugins/files/patch-ext::ivorbis::vorbisenc.h
new file mode 100644
index 000000000..90d39a1a2
--- /dev/null
+++ b/multimedia/gstreamer-plugins/files/patch-ext::ivorbis::vorbisenc.h
@@ -0,0 +1,103 @@
+--- /dev/null Thu Feb 12 22:22:00 2004
++++ ext/ivorbis/vorbisenc.h Thu Feb 12 22:24:08 2004
+@@ -0,0 +1,100 @@
++/* GStreamer
++ * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Library General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Library General Public License for more details.
++ *
++ * You should have received a copy of the GNU Library General Public
++ * License along with this library; if not, write to the
++ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
++ * Boston, MA 02111-1307, USA.
++ */
++
++
++#ifndef __VORBISENC_H__
++#define __VORBISENC_H__
++
++
++#include <gst/gst.h>
++
++#include <tremor/ivorbiscodec.h>
++
++#ifdef __cplusplus
++extern "C" {
++#endif /* __cplusplus */
++
++#define GST_TYPE_VORBISENC \
++ (vorbisenc_get_type())
++#define GST_VORBISENC(obj) \
++ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_VORBISENC,VorbisEnc))
++#define GST_VORBISENC_CLASS(klass) \
++ (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_VORBISENC,VorbisEncClass))
++#define GST_IS_VORBISENC(obj) \
++ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_VORBISENC))
++#define GST_IS_VORBISENC_CLASS(obj) \
++ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_VORBISENC))
++
++typedef struct _VorbisEnc VorbisEnc;
++typedef struct _VorbisEncClass VorbisEncClass;
++
++struct _VorbisEnc {
++ GstElement element;
++
++ GstPad *sinkpad,
++ *srcpad;
++
++ ogg_stream_state os; /* take physical pages, weld into a logical
++ stream of packets */
++ ogg_page og; /* one Ogg bitstream page. Vorbis packets are inside */
++ ogg_packet op; /* one raw packet of data for decode */
++
++ vorbis_info vi; /* struct that stores all the static vorbis bitstream
++ settings */
++ vorbis_comment vc; /* struct that stores all the user comments */
++
++ vorbis_dsp_state vd; /* central working state for the packet->PCM decoder */
++ vorbis_block vb; /* local working space for packet->PCM decode */
++
++ gboolean eos;
++
++ gboolean managed;
++ gint bitrate;
++ gint min_bitrate;
++ gint max_bitrate;
++ gfloat quality;
++ gboolean quality_set;
++ gint serial;
++
++ gint channels;
++ gint frequency;
++
++ guint64 samples_in;
++ guint64 bytes_out;
++
++ GstCaps *metadata;
++
++ gboolean setup;
++ gboolean flush_header;
++ gchar *last_message;
++};
++
++struct _VorbisEncClass {
++ GstElementClass parent_class;
++};
++
++GType vorbisenc_get_type(void);
++
++
++#ifdef __cplusplus
++}
++#endif /* __cplusplus */
++
++
++#endif /* __VORBISENC_H__ */
diff --git a/multimedia/gstreamer-plugins/files/patch-ext_libcaca_Makefile.in b/multimedia/gstreamer-plugins/files/patch-ext_libcaca_Makefile.in
new file mode 100644
index 000000000..0ee53a92e
--- /dev/null
+++ b/multimedia/gstreamer-plugins/files/patch-ext_libcaca_Makefile.in
@@ -0,0 +1,23 @@
+--- ext/libcaca/Makefile.in.orig Mon Oct 4 00:07:18 2004
++++ ext/libcaca/Makefile.in Mon Oct 4 00:07:59 2004
+@@ -76,8 +76,7 @@
+ pluginLTLIBRARIES_INSTALL = $(INSTALL)
+ LTLIBRARIES = $(plugin_LTLIBRARIES)
+ am__DEPENDENCIES_1 =
+-libgstcacasink_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+- $(top_builddir)/gst-libs/gst/libgstinterfaces-$(GST_MAJORMINOR).la
++libgstcacasink_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+ am_libgstcacasink_la_OBJECTS = libgstcacasink_la-gstcacasink.lo
+ libgstcacasink_la_OBJECTS = $(am_libgstcacasink_la_OBJECTS)
+ DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+@@ -616,9 +615,7 @@
+ plugin_LTLIBRARIES = libgstcacasink.la
+ libgstcacasink_la_SOURCES = gstcacasink.c
+ libgstcacasink_la_CFLAGS = $(GST_CFLAGS) $(LIBCACA_CFLAGS)
+-libgstcacasink_la_LIBADD = $(LIBCACA_LIBS) \
+- $(top_builddir)/gst-libs/gst/libgstinterfaces-$(GST_MAJORMINOR).la
+-
++libgstcacasink_la_LIBADD = $(LIBCACA_LIBS) -lgstinterfaces-%%VERSION%%
+ libgstcacasink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
+ noinst_HEADERS = gstcacasink.h
+ all: all-am
diff --git a/multimedia/gstreamer-plugins/files/patch-ext_mpeg2enc_gstmpeg2encoptions.cc b/multimedia/gstreamer-plugins/files/patch-ext_mpeg2enc_gstmpeg2encoptions.cc
new file mode 100644
index 000000000..aabbc2971
--- /dev/null
+++ b/multimedia/gstreamer-plugins/files/patch-ext_mpeg2enc_gstmpeg2encoptions.cc
@@ -0,0 +1,26 @@
+--- ext/mpeg2enc/gstmpeg2encoptions.cc.orig Mon Jul 5 19:54:18 2004
++++ ext/mpeg2enc/gstmpeg2encoptions.cc Mon Jul 5 20:05:37 2004
+@@ -267,11 +267,23 @@
+ * Class init stuff.
+ */
+
++#if !defined(_SC_NPROCESSORS_ONLN) && defined(__FreeBSD__)
++#include <sys/types.h>
++#include <sys/sysctl.h>
++#endif
++
+ GstMpeg2EncOptions::GstMpeg2EncOptions ():
+ MPEG2EncOptions ()
+ {
+ /* autodetect number of CPUs */
++#if !defined(_SC_NPROCESSORS_ONLN) && defined(__FreeBSD__)
++ /* We need to use a sysctl to get the number of CPUs. */
++ size_t len = sizeof (num_cpus);
++
++ sysctlbyname ("hw.ncpu", &num_cpus, &len, NULL, 0);
++#else
+ num_cpus = sysconf (_SC_NPROCESSORS_ONLN);
++#endif
+ if (num_cpus < 0)
+ num_cpus = 1;
+ if (num_cpus > 32)
diff --git a/multimedia/gstreamer-plugins/files/patch-ext_sdl_Makefile.in b/multimedia/gstreamer-plugins/files/patch-ext_sdl_Makefile.in
new file mode 100644
index 000000000..c943042ad
--- /dev/null
+++ b/multimedia/gstreamer-plugins/files/patch-ext_sdl_Makefile.in
@@ -0,0 +1,23 @@
+--- ext/sdl/Makefile.in.orig Mon Oct 4 00:56:57 2004
++++ ext/sdl/Makefile.in Mon Oct 4 00:57:47 2004
+@@ -76,8 +76,7 @@
+ pluginLTLIBRARIES_INSTALL = $(INSTALL)
+ LTLIBRARIES = $(plugin_LTLIBRARIES)
+ am__DEPENDENCIES_1 =
+-libgstsdlvideosink_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+- $(top_builddir)/gst-libs/gst/libgstinterfaces-@GST_MAJORMINOR@.la
++libgstsdlvideosink_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+ am_libgstsdlvideosink_la_OBJECTS = \
+ libgstsdlvideosink_la-sdlvideosink.lo
+ libgstsdlvideosink_la_OBJECTS = $(am_libgstsdlvideosink_la_OBJECTS)
+@@ -617,9 +616,7 @@
+ plugin_LTLIBRARIES = libgstsdlvideosink.la
+ libgstsdlvideosink_la_SOURCES = sdlvideosink.c
+ libgstsdlvideosink_la_CFLAGS = $(GST_CFLAGS) $(SDL_CFLAGS)
+-libgstsdlvideosink_la_LIBADD = $(SDL_LIBS) \
+- $(top_builddir)/gst-libs/gst/libgstinterfaces-@GST_MAJORMINOR@.la
+-
++libgstsdlvideosink_la_LIBADD = $(SDL_LIBS) -lgstinterfaces-%%VERSION%%
+ libgstsdlvideosink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
+ noinst_HEADERS = sdlvideosink.h
+ all: all-am
diff --git a/multimedia/gstreamer-plugins/files/patch-gst_tcp_gsttcpclientsrc.h b/multimedia/gstreamer-plugins/files/patch-gst_tcp_gsttcpclientsrc.h
new file mode 100644
index 000000000..9d4414eb6
--- /dev/null
+++ b/multimedia/gstreamer-plugins/files/patch-gst_tcp_gsttcpclientsrc.h
@@ -0,0 +1,11 @@
+--- gst/tcp/gsttcpclientsrc.h.orig Wed Jun 23 23:44:07 2004
++++ gst/tcp/gsttcpclientsrc.h Wed Jun 23 23:44:26 2004
+@@ -29,6 +29,8 @@
+ #endif /* __cplusplus */
+
+ #include <netdb.h> /* sockaddr_in */
++#include <sys/types.h>
++#include <sys/socket.h>
+ #include <netinet/in.h> /* sockaddr_in */
+ #include <unistd.h>
+ #include "gsttcp.h"
diff --git a/multimedia/gstreamer-plugins/files/patch-sys_cdrom_gstcdplayer-ioctl-bsd.h b/multimedia/gstreamer-plugins/files/patch-sys_cdrom_gstcdplayer-ioctl-bsd.h
new file mode 100644
index 000000000..daaefac5e
--- /dev/null
+++ b/multimedia/gstreamer-plugins/files/patch-sys_cdrom_gstcdplayer-ioctl-bsd.h
@@ -0,0 +1,72 @@
+--- sys/cdrom/gstcdplayer_ioctl_bsd.h.orig Mon Mar 1 06:52:03 2004
++++ sys/cdrom/gstcdplayer_ioctl_bsd.h Tue Mar 9 16:05:36 2004
+@@ -142,6 +142,7 @@
+ {
+ struct ioc_toc_header toc_header;
+ struct ioc_read_toc_entry toc_entry;
++ struct cd_toc_entry toc_entry_data;
+ guint i;
+
+ cd->fd = open(device,O_RDONLY | O_NONBLOCK);
+@@ -151,7 +152,7 @@
+ }
+
+ /* get the toc header information */
+- if (ioctl(cd->fd,CDIOREADTOCHDR,&toc_header) != 0) {
++ if (ioctl(cd->fd,CDIOREADTOCHEADER,&toc_header) != 0) {
+ close(cd->fd);
+ cd->fd = -1;
+ return FALSE;
+@@ -161,6 +162,8 @@
+ for (i = 1; i <= toc_header.ending_track; i++) {
+ toc_entry.address_format = CD_MSF_FORMAT;
+ toc_entry.starting_track = i;
++ toc_entry.data = &toc_entry_data;
++ toc_entry.data_len = sizeof(toc_entry_data);
+
+ if (ioctl(cd->fd,CDIOREADTOCENTRYS,&toc_entry) != 0) {
+ close(cd->fd);
+@@ -168,9 +171,9 @@
+ return FALSE;
+ }
+
+- cd->tracks[i].minute = toc_entry.entry.addr.msf.minute;
+- cd->tracks[i].second = toc_entry.entry.addr.msf.second;
+- cd->tracks[i].frame = toc_entry.entry.addr.msf.frame;
++ cd->tracks[i].minute = toc_entry.data->addr.msf.minute;
++ cd->tracks[i].second = toc_entry.data->addr.msf.second;
++ cd->tracks[i].frame = toc_entry.data->addr.msf.frame;
+ cd->tracks[i].data_track = (toc_entry.data->control & 4) == 4;
+ }
+
+@@ -186,9 +189,9 @@
+ return FALSE;
+ }
+
+- cd->tracks[LEADOUT].minute = toc_entry.entry.addr.msf.minute;
+- cd->tracks[LEADOUT].second = toc_entry.entry.addr.msf.second;
+- cd->tracks[LEADOUT].frame = toc_entry.entry.addr.msf.frame;
++ cd->tracks[LEADOUT].minute = toc_entry.data->addr.msf.minute;
++ cd->tracks[LEADOUT].second = toc_entry.data->addr.msf.second;
++ cd->tracks[LEADOUT].frame = toc_entry.data->addr.msf.frame;
+
+ cd->num_tracks = toc_header.ending_track;
+
+@@ -224,6 +227,8 @@
+ return FALSE;
+ }
+
++ /* lets return TRUE and lets see what happes (may not be correct)*/
++ return TRUE;
+ }
+
+ gboolean cd_pause(struct cd *cd)
+@@ -321,7 +326,7 @@
+ return -1;
+ }
+
+-#ifdef __NetBSD__
++#if defined(__NetBSD__) || defined(__FreeBSD__)
+ return sub_channel.data->what.track_info.track_number;
+ #else
+ return sub_channel.data->track_number;
diff --git a/multimedia/gstreamer-plugins/files/patch-sys_oss_gstosselement.h b/multimedia/gstreamer-plugins/files/patch-sys_oss_gstosselement.h
new file mode 100644
index 000000000..30258ba11
--- /dev/null
+++ b/multimedia/gstreamer-plugins/files/patch-sys_oss_gstosselement.h
@@ -0,0 +1,10 @@
+--- sys/oss/gstosselement.h.orig Tue Mar 9 16:46:05 2004
++++ sys/oss/gstosselement.h Tue Mar 9 16:46:14 2004
+@@ -23,6 +23,7 @@
+ #ifndef __GST_OSS_ELEMENT_H__
+ #define __GST_OSS_ELEMENT_H__
+
++#include <sys/types.h>
+ #include <gst/gst.h>
+
+ /* debugging category */
diff --git a/multimedia/gstreamer-plugins/pkg-descr b/multimedia/gstreamer-plugins/pkg-descr
new file mode 100644
index 000000000..80300084c
--- /dev/null
+++ b/multimedia/gstreamer-plugins/pkg-descr
@@ -0,0 +1,17 @@
+[ excerpt from developer's site ]
+
+This is a collection of plugins written with the GStreamer framework.
+Some features of these plugins are:
+
+- Dynamically loaded plugins provide elements and media types,
+ demand-loaded via an XML registry, similar to ld.so.cache
+- Element interface handles all known types of sources, filters,
+ sinks
+- Capabilities system allows verification of element compatibility
+ using MIME types and media-specific properties
+- Autoplugging uses capabilities system to complete complex paths
+ automatically
+- Pipelines can be saved to XML and loaded back to working state
+- Resource friendly plugins don't waste RAM
+
+WWW: http://gstreamer.sourceforge.net/
diff --git a/multimedia/gstreamer-plugins/pkg-plist b/multimedia/gstreamer-plugins/pkg-plist
new file mode 100644
index 000000000..08fe7a3f1
--- /dev/null
+++ b/multimedia/gstreamer-plugins/pkg-plist
@@ -0,0 +1,174 @@
+bin/gst-launch-ext-%%VERSION%%
+bin/gst-visualise-%%VERSION%%
+include/gstreamer-%%VERSION%%/gst/audio/audio.h
+include/gstreamer-%%VERSION%%/gst/audio/audioclock.h
+include/gstreamer-%%VERSION%%/gst/audio/gstaudiofilter.h
+include/gstreamer-%%VERSION%%/gst/colorbalance/colorbalance-enumtypes.h
+include/gstreamer-%%VERSION%%/gst/colorbalance/colorbalance.h
+include/gstreamer-%%VERSION%%/gst/colorbalance/colorbalancechannel.h
+include/gstreamer-%%VERSION%%/gst/floatcast/floatcast.h
+include/gstreamer-%%VERSION%%/gst/gconf/gconf.h
+include/gstreamer-%%VERSION%%/gst/idct/idct.h
+include/gstreamer-%%VERSION%%/gst/media-info/media-info.h
+include/gstreamer-%%VERSION%%/gst/mixer/mixer-enumtypes.h
+include/gstreamer-%%VERSION%%/gst/mixer/mixer.h
+include/gstreamer-%%VERSION%%/gst/mixer/mixeroptions.h
+include/gstreamer-%%VERSION%%/gst/mixer/mixertrack.h
+include/gstreamer-%%VERSION%%/gst/navigation/navigation.h
+include/gstreamer-%%VERSION%%/gst/play/play-enumtypes.h
+include/gstreamer-%%VERSION%%/gst/play/play.h
+include/gstreamer-%%VERSION%%/gst/propertyprobe/propertyprobe.h
+include/gstreamer-%%VERSION%%/gst/resample/resample.h
+include/gstreamer-%%VERSION%%/gst/riff/riff-ids.h
+include/gstreamer-%%VERSION%%/gst/riff/riff-media.h
+include/gstreamer-%%VERSION%%/gst/riff/riff-read.h
+include/gstreamer-%%VERSION%%/gst/tag/tag.h
+include/gstreamer-%%VERSION%%/gst/tuner/tuner-enumtypes.h
+include/gstreamer-%%VERSION%%/gst/tuner/tuner.h
+include/gstreamer-%%VERSION%%/gst/tuner/tunerchannel.h
+include/gstreamer-%%VERSION%%/gst/tuner/tunernorm.h
+include/gstreamer-%%VERSION%%/gst/video/video.h
+include/gstreamer-%%VERSION%%/gst/video/videosink.h
+include/gstreamer-%%VERSION%%/gst/xoverlay/xoverlay.h
+include/gstreamer-%%VERSION%%/gst/xwindowlistener/xwindowlistener.h
+lib/gstreamer-%%VERSION%%/libgstac3parse.so
+lib/gstreamer-%%VERSION%%/libgstadder.so
+lib/gstreamer-%%VERSION%%/libgstalaw.so
+lib/gstreamer-%%VERSION%%/libgstalpha.so
+lib/gstreamer-%%VERSION%%/libgstalphacolor.so
+lib/gstreamer-%%VERSION%%/libgstasf.so
+lib/gstreamer-%%VERSION%%/libgstaudio.so
+lib/gstreamer-%%VERSION%%/libgstaudioconvert.so
+lib/gstreamer-%%VERSION%%/libgstaudiofilter.so
+lib/gstreamer-%%VERSION%%/libgstaudiorate.so
+lib/gstreamer-%%VERSION%%/libgstaudioscale.so
+lib/gstreamer-%%VERSION%%/libgstauparse.so
+lib/gstreamer-%%VERSION%%/libgstavi.so
+lib/gstreamer-%%VERSION%%/libgstcdplayer.so
+lib/gstreamer-%%VERSION%%/libgstcdxaparse.so
+lib/gstreamer-%%VERSION%%/libgstchart.so
+lib/gstreamer-%%VERSION%%/libgstcolorspace.so
+lib/gstreamer-%%VERSION%%/libgstcutter.so
+lib/gstreamer-%%VERSION%%/libgstdebug.so
+lib/gstreamer-%%VERSION%%/libgstdecodebin.so
+lib/gstreamer-%%VERSION%%/libgstdeinterlace.so
+lib/gstreamer-%%VERSION%%/libgstefence.so
+lib/gstreamer-%%VERSION%%/libgsteffectv.so
+lib/gstreamer-%%VERSION%%/libgstfestival.so
+lib/gstreamer-%%VERSION%%/libgstffmpegcolorspace.so
+lib/gstreamer-%%VERSION%%/libgstfilter.so
+lib/gstreamer-%%VERSION%%/libgstflxdec.so
+lib/gstreamer-%%VERSION%%/libgstgamma.so
+lib/gstreamer-%%VERSION%%/libgstglimagesink.so
+lib/gstreamer-%%VERSION%%/libgstgoom.so
+lib/gstreamer-%%VERSION%%/libgstidct.so
+lib/gstreamer-%%VERSION%%/libgstinterleave.so
+lib/gstreamer-%%VERSION%%/libgstlevel.so
+lib/gstreamer-%%VERSION%%/libgstmatroska.so
+lib/gstreamer-%%VERSION%%/libgstmedian.so
+lib/gstreamer-%%VERSION%%/libgstmixmatrix.so
+lib/gstreamer-%%VERSION%%/libgstmodplug.so
+lib/gstreamer-%%VERSION%%/libgstmonoscope.so
+lib/gstreamer-%%VERSION%%/libgstmp1videoparse.so
+lib/gstreamer-%%VERSION%%/libgstmpeg1systemencode.so
+lib/gstreamer-%%VERSION%%/libgstmpeg2subt.so
+lib/gstreamer-%%VERSION%%/libgstmpegaudio.so
+lib/gstreamer-%%VERSION%%/libgstmpegaudioparse.so
+lib/gstreamer-%%VERSION%%/libgstmpegstream.so
+lib/gstreamer-%%VERSION%%/libgstmulaw.so
+lib/gstreamer-%%VERSION%%/libgstmultifilesink.so
+lib/gstreamer-%%VERSION%%/libgstmultipart.so
+lib/gstreamer-%%VERSION%%/libgstnavigationtest.so
+lib/gstreamer-%%VERSION%%/libgstossaudio.so
+lib/gstreamer-%%VERSION%%/libgstoverlay.so
+lib/gstreamer-%%VERSION%%/libgstpassthrough.so
+lib/gstreamer-%%VERSION%%/libgstplaybin.so
+lib/gstreamer-%%VERSION%%/libgstplayondemand.so
+lib/gstreamer-%%VERSION%%/libgstqtdemux.so
+lib/gstreamer-%%VERSION%%/libgstresample.so
+lib/gstreamer-%%VERSION%%/libgstriff.so
+lib/gstreamer-%%VERSION%%/libgstrmdemux.so
+lib/gstreamer-%%VERSION%%/libgstrtjpeg.so
+lib/gstreamer-%%VERSION%%/libgstrtp.so
+lib/gstreamer-%%VERSION%%/libgstsilence.so
+lib/gstreamer-%%VERSION%%/libgstsinesrc.so
+lib/gstreamer-%%VERSION%%/libgstsmooth.so
+lib/gstreamer-%%VERSION%%/libgstsmpte.so
+lib/gstreamer-%%VERSION%%/libgstspectrum.so
+lib/gstreamer-%%VERSION%%/libgstspeed.so
+lib/gstreamer-%%VERSION%%/libgststereo.so
+lib/gstreamer-%%VERSION%%/libgstswitch.so
+lib/gstreamer-%%VERSION%%/libgstsynaesthesia.so
+lib/gstreamer-%%VERSION%%/libgsttagedit.so
+lib/gstreamer-%%VERSION%%/libgsttcp.so
+lib/gstreamer-%%VERSION%%/libgsttypefindfunctions.so
+lib/gstreamer-%%VERSION%%/libgstudp.so
+lib/gstreamer-%%VERSION%%/libgstvbidec.so
+lib/gstreamer-%%VERSION%%/libgstvcdsrc.so
+lib/gstreamer-%%VERSION%%/libgstvideo.so
+lib/gstreamer-%%VERSION%%/libgstvideobalance.so
+lib/gstreamer-%%VERSION%%/libgstvideobox.so
+lib/gstreamer-%%VERSION%%/libgstvideocrop.so
+lib/gstreamer-%%VERSION%%/libgstvideodrop.so
+lib/gstreamer-%%VERSION%%/libgstvideofilter.so
+lib/gstreamer-%%VERSION%%/libgstvideoflip.so
+lib/gstreamer-%%VERSION%%/libgstvideomixer.so
+lib/gstreamer-%%VERSION%%/libgstvideorate.so
+lib/gstreamer-%%VERSION%%/libgstvideoscale.so
+lib/gstreamer-%%VERSION%%/libgstvideotestsrc.so
+lib/gstreamer-%%VERSION%%/libgstvolenv.so
+lib/gstreamer-%%VERSION%%/libgstvolume.so
+lib/gstreamer-%%VERSION%%/libgstwavenc.so
+lib/gstreamer-%%VERSION%%/libgstwavparse.so
+lib/gstreamer-%%VERSION%%/libgstximagesink.so
+lib/gstreamer-%%VERSION%%/libgstxvimagesink.so
+lib/gstreamer-%%VERSION%%/libgstxwindowlistener.so
+lib/gstreamer-%%VERSION%%/libgsty4menc.so
+lib/libgstgconf-%%VERSION%%.a
+lib/libgstgconf-%%VERSION%%.so
+lib/libgstgconf-%%VERSION%%.so.%%SHLIB_VERSION%%
+lib/libgstinterfaces-%%VERSION%%.a
+lib/libgstinterfaces-%%VERSION%%.so
+lib/libgstinterfaces-%%VERSION%%.so.%%SHLIB_VERSION%%
+lib/libgstmedia-info-%%VERSION%%.a
+lib/libgstmedia-info-%%VERSION%%.so
+lib/libgstmedia-info-%%VERSION%%.so.%%SHLIB_VERSION%%
+lib/libgstplay-%%VERSION%%.a
+lib/libgstplay-%%VERSION%%.so
+lib/libgstplay-%%VERSION%%.so.%%SHLIB_VERSION%%
+libdata/pkgconfig/gstreamer-gconf-%%VERSION%%.pc
+libdata/pkgconfig/gstreamer-interfaces-%%VERSION%%.pc
+libdata/pkgconfig/gstreamer-libs-%%VERSION%%.pc
+libdata/pkgconfig/gstreamer-media-info-%%VERSION%%.pc
+libdata/pkgconfig/gstreamer-play-%%VERSION%%.pc
+libdata/pkgconfig/gstreamer-plugins-%%VERSION%%.pc
+share/locale/af/LC_MESSAGES/gst-plugins-%%VERSION%%.mo
+share/locale/az/LC_MESSAGES/gst-plugins-%%VERSION%%.mo
+share/locale/cs/LC_MESSAGES/gst-plugins-%%VERSION%%.mo
+share/locale/en_GB/LC_MESSAGES/gst-plugins-%%VERSION%%.mo
+share/locale/hu/LC_MESSAGES/gst-plugins-%%VERSION%%.mo
+share/locale/nl/LC_MESSAGES/gst-plugins-%%VERSION%%.mo
+share/locale/sq/LC_MESSAGES/gst-plugins-%%VERSION%%.mo
+share/locale/sr/LC_MESSAGES/gst-plugins-%%VERSION%%.mo
+share/locale/sv/LC_MESSAGES/gst-plugins-%%VERSION%%.mo
+share/locale/uk/LC_MESSAGES/gst-plugins-%%VERSION%%.mo
+@dirrm lib/gstreamer-%%VERSION%%
+@dirrm include/gstreamer-%%VERSION%%/gst/xwindowlistener
+@dirrm include/gstreamer-%%VERSION%%/gst/xoverlay
+@dirrm include/gstreamer-%%VERSION%%/gst/video
+@dirrm include/gstreamer-%%VERSION%%/gst/tuner
+@dirrm include/gstreamer-%%VERSION%%/gst/tag
+@dirrm include/gstreamer-%%VERSION%%/gst/riff
+@dirrm include/gstreamer-%%VERSION%%/gst/resample
+@dirrm include/gstreamer-%%VERSION%%/gst/propertyprobe
+@dirrm include/gstreamer-%%VERSION%%/gst/play
+@dirrm include/gstreamer-%%VERSION%%/gst/navigation
+@dirrm include/gstreamer-%%VERSION%%/gst/mixer
+@dirrm include/gstreamer-%%VERSION%%/gst/media-info
+@dirrm include/gstreamer-%%VERSION%%/gst/idct
+@dirrm include/gstreamer-%%VERSION%%/gst/gconf
+@dirrm include/gstreamer-%%VERSION%%/gst/floatcast
+@dirrm include/gstreamer-%%VERSION%%/gst/colorbalance
+@dirrm include/gstreamer-%%VERSION%%/gst/audio
+@unexec rmdir %D/include/gstreamer-%%VERSION%%/gst 2>/dev/null || true
+@unexec rmdir %D/include/gstreamer-%%VERSION%% 2>/dev/null || true