summaryrefslogtreecommitdiff
path: root/multimedia/xine-lib
diff options
context:
space:
mode:
Diffstat (limited to 'multimedia/xine-lib')
-rw-r--r--multimedia/xine-lib/Makefile5
-rw-r--r--multimedia/xine-lib/Makefile.common5
-rw-r--r--multimedia/xine-lib/distinfo18
-rw-r--r--multimedia/xine-lib/patches/patch-ae38
-rw-r--r--multimedia/xine-lib/patches/patch-ag10
-rw-r--r--multimedia/xine-lib/patches/patch-ap8
-rw-r--r--multimedia/xine-lib/patches/patch-fa14
-rw-r--r--multimedia/xine-lib/patches/patch-ga164
-rw-r--r--multimedia/xine-lib/patches/patch-gb26
-rw-r--r--multimedia/xine-lib/patches/patch-gc24
10 files changed, 272 insertions, 40 deletions
diff --git a/multimedia/xine-lib/Makefile b/multimedia/xine-lib/Makefile
index 6dedbd12dd2..7483034252c 100644
--- a/multimedia/xine-lib/Makefile
+++ b/multimedia/xine-lib/Makefile
@@ -1,9 +1,7 @@
-# $NetBSD: Makefile,v 1.53 2008/01/06 15:36:41 drochner Exp $
+# $NetBSD: Makefile,v 1.54 2008/01/11 16:05:27 drochner Exp $
.include "Makefile.common"
-PKGREVISION= 1
-
COMMENT= Multimedia player library
BUILDLINK_API_DEPENDS.vcdimager+= vcdimager>=0.7.20nb1
@@ -43,6 +41,7 @@ CONFIGURE_ARGS+= --disable-opengl
.include "../../multimedia/libtheora/buildlink3.mk"
.include "../../sysutils/vcdimager-devel/buildlink3.mk"
.include "../../x11/libXext/buildlink3.mk"
+.include "../../x11/libXt/buildlink3.mk"
.include "../../x11/libXinerama/buildlink3.mk"
.include "../../x11/libXv/buildlink3.mk"
.include "../../x11/xextproto/buildlink3.mk"
diff --git a/multimedia/xine-lib/Makefile.common b/multimedia/xine-lib/Makefile.common
index d9470e4edb7..6ec590f54b7 100644
--- a/multimedia/xine-lib/Makefile.common
+++ b/multimedia/xine-lib/Makefile.common
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.common,v 1.42 2007/11/22 20:20:21 drochner Exp $
+# $NetBSD: Makefile.common,v 1.43 2008/01/11 16:05:27 drochner Exp $
#
DISTNAME= xine-lib-${XINE_LIB_VER}
@@ -6,11 +6,12 @@ XINE_PKGNAME= xine-lib-${XINE_LIB_VER}
PKGNAME?= ${XINE_PKGNAME}
CATEGORIES?= multimedia
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=xine/}
+EXTRACT_SUFX= .tar.bz2
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= http://xinehq.de/
-XINE_LIB_VER= 1.1.8
+XINE_LIB_VER= 1.1.9
PLIST_SUBST+= XINE_LIB_VER=${XINE_LIB_VER:Q}
DISTINFO_FILE= ${.CURDIR}/../../multimedia/xine-lib/distinfo
diff --git a/multimedia/xine-lib/distinfo b/multimedia/xine-lib/distinfo
index e9a570e653f..8a15b42b7a5 100644
--- a/multimedia/xine-lib/distinfo
+++ b/multimedia/xine-lib/distinfo
@@ -1,20 +1,20 @@
-$NetBSD: distinfo,v 1.48 2007/11/22 20:20:21 drochner Exp $
+$NetBSD: distinfo,v 1.49 2008/01/11 16:05:27 drochner Exp $
-SHA1 (xine-lib-1.1.8.tar.gz) = 869905908a831a959ae3c6962d6d3204dc53d39b
-RMD160 (xine-lib-1.1.8.tar.gz) = b4207e0d0373b68d8d3c3fb66a467953c0024732
-Size (xine-lib-1.1.8.tar.gz) = 8872132 bytes
+SHA1 (xine-lib-1.1.9.tar.bz2) = f9e36b6cc69f76fed3b95de8a29ef2255770aa33
+RMD160 (xine-lib-1.1.9.tar.bz2) = 179dc66d13f5f1dcdf134ac82ed71b905c7332e8
+Size (xine-lib-1.1.9.tar.bz2) = 7391259 bytes
SHA1 (patch-aa) = e09d34a121080b03bc67b2d8a3ca27463b771acc
SHA1 (patch-ab) = ef13b60c2bea54f354acf1b2d70c04594dac36c9
SHA1 (patch-ad) = 94aaac03f74c72a1ca753d1320aac07d1bb8a846
-SHA1 (patch-ae) = 78060d0d1a721642776a909ab3dfef6bd4441a33
-SHA1 (patch-ag) = 8638939d400eb11fc01fd832b205366b906fc9ee
+SHA1 (patch-ae) = 417d730034cc4dbf3103e07afb8432822084c64b
+SHA1 (patch-ag) = fa2298e1214a4dbea36526aed27a6e506a069681
SHA1 (patch-ah) = ba408237d4a717cc91b5d06ede425048914a9a1f
SHA1 (patch-ai) = f0b33c1a36082445a86bcf71e07a6210aa21b7dc
SHA1 (patch-aj) = 4215c3bc37cf636e563a509f9a391081ed8e773b
SHA1 (patch-ak) = 744f59d1b9e40983f25bb532db1a5d4e92be6fbe
SHA1 (patch-al) = 9e3ad86a7d7f32e58de157fa37141138af10838e
SHA1 (patch-ao) = c4524c88bb4ce61b13e354d22aa0f7445ff0aa37
-SHA1 (patch-ap) = 756db263fc805a75a0d6be5bdb10344a6fd9c2e9
+SHA1 (patch-ap) = e4801863b0d4625fe6db9e4c51218f55b90c6100
SHA1 (patch-aq) = f6efa28ab1b9a24b79c18c181a5d309db53172e4
SHA1 (patch-as) = a0a93a256589e87a66eef31494441aa1b200f834
SHA1 (patch-av) = 40e9a44a506a0006b6761e8367c65239bd4856ee
@@ -29,3 +29,7 @@ SHA1 (patch-db) = 3ad4ca6f43a379b251211477972cd6d34b1f821a
SHA1 (patch-dc) = 11c4212029e67f22796e57706b42400a0dbcac3a
SHA1 (patch-eb) = b65e2c7c30fc04115d55da1ce1f6f65216ac1d23
SHA1 (patch-ee) = 49efc9d722f2141e88106d87414586ab80e4f5a9
+SHA1 (patch-fa) = a69fe09588596bfc3d74fad29e5a1aeeeead4dfd
+SHA1 (patch-ga) = 3f987a5660e48e86d0edab3ab15436227282eed1
+SHA1 (patch-gb) = 8d104ac33a7f8dbd47ff4f132b4360788efa29b8
+SHA1 (patch-gc) = 876e9c319d8ff01c57267c90f3f1b8c55a3fb766
diff --git a/multimedia/xine-lib/patches/patch-ae b/multimedia/xine-lib/patches/patch-ae
index 48a0fdb94d5..e9d903d4c70 100644
--- a/multimedia/xine-lib/patches/patch-ae
+++ b/multimedia/xine-lib/patches/patch-ae
@@ -1,8 +1,8 @@
-$NetBSD: patch-ae,v 1.4 2007/06/15 18:20:06 drochner Exp $
+$NetBSD: patch-ae,v 1.5 2008/01/11 16:05:27 drochner Exp $
---- src/input/input_vcd.c.orig 2007-04-05 00:18:00.000000000 +0200
+--- src/input/input_vcd.c.orig 2008-01-01 14:30:08.000000000 +0100
+++ src/input/input_vcd.c
-@@ -32,6 +32,7 @@
+@@ -29,6 +29,7 @@
#include <errno.h>
#include <fcntl.h>
#include <sys/ioctl.h>
@@ -10,70 +10,70 @@ $NetBSD: patch-ae,v 1.4 2007/06/15 18:20:06 drochner Exp $
#include <string.h>
#include <netinet/in.h>
#ifdef HAVE_LINUX_CDROM_H
-@@ -95,7 +96,7 @@ typedef struct {
+@@ -92,7 +93,7 @@ typedef struct {
#if defined (__linux__) || defined(__sun)
struct cdrom_tochdr tochdr;
struct cdrom_tocentry tocent[100];
--#elif defined (__FreeBSD__)
+-#elif defined (__FreeBSD_kernel__)
+#elif (defined(BSD) && BSD >= 199306)
struct ioc_toc_header tochdr;
struct cd_toc_entry *tocent;
off_t cur_sec;
-@@ -120,7 +121,7 @@ typedef struct {
+@@ -117,7 +118,7 @@ typedef struct {
int cur_track;
--#if defined (__linux__) || defined(__sun) || defined(__FreeBSD__)
+-#if defined (__linux__) || defined(__sun) || defined (__FreeBSD_kernel__)
+#if defined (__linux__) || defined(__sun) || (defined(BSD) && BSD >= 199306)
uint8_t cur_min, cur_sec, cur_frame;
#endif
-@@ -180,7 +181,7 @@ static int input_vcd_read_toc (vcd_input
+@@ -177,7 +178,7 @@ static int input_vcd_read_toc (vcd_input
return 0;
}
--#elif defined (__FreeBSD__)
+-#elif defined (__FreeBSD_kernel__)
+#elif (defined(BSD) && BSD >= 199306)
static int input_vcd_read_toc (vcd_input_class_t *this, int fd) {
struct ioc_read_toc_entry te;
-@@ -396,7 +397,7 @@ static off_t vcd_plugin_read (input_plug
+@@ -393,7 +394,7 @@ static off_t vcd_plugin_read (input_plug
memcpy (buf, data.data, VCDSECTORSIZE); /* FIXME */
return VCDSECTORSIZE;
}
--#elif defined (__FreeBSD__)
+-#elif defined (__FreeBSD_kernel__)
+#elif (defined(BSD) && BSD >= 199306)
static off_t vcd_plugin_read (input_plugin_t *this_gen,
char *buf, off_t nlen) {
vcd_input_plugin_t *this = (vcd_input_plugin_t *) this_gen;
-@@ -534,7 +535,7 @@ static buf_element_t *vcd_plugin_read_bl
+@@ -531,7 +532,7 @@ static buf_element_t *vcd_plugin_read_bl
memcpy (buf->mem, data.data, VCDSECTORSIZE); /* FIXME */
return buf;
}
--#elif defined (__FreeBSD__)
+-#elif defined (__FreeBSD_kernel__)
+#elif (defined(BSD) && BSD >= 199306)
static buf_element_t *vcd_plugin_read_block (input_plugin_t *this_gen,
fifo_buffer_t *fifo, off_t nlen) {
-@@ -693,7 +694,7 @@ static off_t vcd_plugin_seek (input_plug
+@@ -690,7 +691,7 @@ static off_t vcd_plugin_seek (input_plug
return offset ; /* FIXME */
}
--#elif defined (__FreeBSD__)
+-#elif defined (__FreeBSD_kernel__)
+#elif (defined(BSD) && BSD >= 199306)
static off_t vcd_plugin_seek (input_plugin_t *this_gen,
off_t offset, int origin) {
-@@ -767,7 +768,7 @@ static off_t vcd_plugin_get_length (inpu
+@@ -764,7 +765,7 @@ static off_t vcd_plugin_get_length (inpu
return (off_t) 0;
}
--#elif defined (__FreeBSD__)
+-#elif defined (__FreeBSD_kernel__)
+#elif (defined(BSD) && BSD >= 199306)
static off_t vcd_plugin_get_length (input_plugin_t *this_gen) {
vcd_input_plugin_t *this = (vcd_input_plugin_t *) this_gen;
off_t len ;
-@@ -862,6 +863,10 @@ static int vcd_plugin_open (input_plugin
+@@ -859,6 +860,10 @@ static int vcd_plugin_open (input_plugin
this->cur_min = this->cls->tocent[this->cur_track].cdte_addr.msf.minute;
this->cur_sec = this->cls->tocent[this->cur_track].cdte_addr.msf.second;
this->cur_frame = this->cls->tocent[this->cur_track].cdte_addr.msf.frame;
@@ -81,6 +81,6 @@ $NetBSD: patch-ae,v 1.4 2007/06/15 18:20:06 drochner Exp $
+ this->cur_min = this->cls->tocent[this->cur_track+1 - this->cls->tochdr.starting_track].addr.msf.minute;
+ this->cur_sec = this->cls->tocent[this->cur_track+1 - this->cls->tochdr.starting_track].addr.msf.second;
+ this->cur_frame = this->cls->tocent[this->cur_track+1 - this->cls->tochdr.starting_track].addr.msf.frame;
- #elif defined (__FreeBSD__)
+ #elif defined (__FreeBSD_kernel__)
{
int bsize = 2352;
diff --git a/multimedia/xine-lib/patches/patch-ag b/multimedia/xine-lib/patches/patch-ag
index 0ecdd83e0d5..8388ae4b104 100644
--- a/multimedia/xine-lib/patches/patch-ag
+++ b/multimedia/xine-lib/patches/patch-ag
@@ -1,6 +1,6 @@
-$NetBSD: patch-ag,v 1.17 2007/11/22 20:20:21 drochner Exp $
+$NetBSD: patch-ag,v 1.18 2008/01/11 16:05:27 drochner Exp $
---- configure.ac.orig 2007-08-25 15:27:01.000000000 +0200
+--- configure.ac.orig 2008-01-04 19:02:22.000000000 +0100
+++ configure.ac
@@ -98,7 +98,7 @@ dnl ------------------------------------
AC_CANONICAL_HOST
@@ -104,12 +104,12 @@ $NetBSD: patch-ag,v 1.17 2007/11/22 20:20:21 drochner Exp $
AC_DEFINE([HAVE_WIN32_CDROM], [1],
[Define 1 if you have MinGW CD-ROM support])
;;
-- freebsd4.*)
-+ freebsd4.* | dragonfly*)
+- freebsd4.*|kfreebsd*-gnu)
++ freebsd4.*|kfreebsd*-gnu|dragonfly*)
AC_DEFINE([HAVE_FREEBSD_CDROM], [1],
[Define 1 if you have FreeBSD CD-ROM support])
;;
-@@ -2581,7 +2598,7 @@ case $host in
+@@ -2591,7 +2608,7 @@ case $host in
dnl FreeBSD (et al.) does not complete linking for shared objects when pthreads
dnl are requested, as different implementations are present; to avoid problems
dnl use -Wl,-z,defs only for those platform not behaving this way.
diff --git a/multimedia/xine-lib/patches/patch-ap b/multimedia/xine-lib/patches/patch-ap
index c0b32dcdacd..6b7bf720726 100644
--- a/multimedia/xine-lib/patches/patch-ap
+++ b/multimedia/xine-lib/patches/patch-ap
@@ -1,6 +1,6 @@
-$NetBSD: patch-ap,v 1.6 2007/11/22 20:20:22 drochner Exp $
+$NetBSD: patch-ap,v 1.7 2008/01/11 16:05:27 drochner Exp $
---- src/dxr3/Makefile.am.orig 2007-08-19 01:36:45.000000000 +0200
+--- src/dxr3/Makefile.am.orig 2008-01-01 18:07:56.000000000 +0100
+++ src/dxr3/Makefile.am
@@ -16,6 +16,9 @@ endif
if HAVE_LIBRTE
@@ -16,8 +16,8 @@ $NetBSD: patch-ap,v 1.6 2007/11/22 20:20:22 drochner Exp $
dxr3_scr.c \
video_out_dxr3.c
--xineplug_vo_out_dxr3_la_LIBADD = $(link_fame) $(link_rte) $(link_x_libs) $(XINE_LIB) $(LTLIBINTL) $(DYNAMIC_LD_LIBS) -lm
-+xineplug_vo_out_dxr3_la_LIBADD = $(link_fame) $(link_rte) $(link_xinerama) $(link_x_libs) $(XINE_LIB) $(LTLIBINTL) $(DYNAMIC_LD_LIBS) -lm
+-xineplug_vo_out_dxr3_la_LIBADD = $(XINE_LIB) $(link_fame) $(link_rte) $(link_x_libs) $(LTLIBINTL) $(DYNAMIC_LD_LIBS) -lm
++xineplug_vo_out_dxr3_la_LIBADD = $(XINE_LIB) $(link_fame) $(link_rte) $(link_xinerama) $(link_x_libs) $(LTLIBINTL) $(DYNAMIC_LD_LIBS) -lm
xineplug_vo_out_dxr3_la_CFLAGS = $(VISIBILITY_FLAG) $(AM_CFLAGS)
xineplug_vo_out_dxr3_la_LDFLAGS = -avoid-version -module
diff --git a/multimedia/xine-lib/patches/patch-fa b/multimedia/xine-lib/patches/patch-fa
new file mode 100644
index 00000000000..dccf4f04d0c
--- /dev/null
+++ b/multimedia/xine-lib/patches/patch-fa
@@ -0,0 +1,14 @@
+$NetBSD: patch-fa,v 1.1 2008/01/11 16:05:27 drochner Exp $
+
+--- m4/pthreads.m4.orig 2008-01-10 16:56:36.000000000 +0100
++++ m4/pthreads.m4
+@@ -37,6 +37,9 @@ AC_DEFUN([CC_PTHREAD_FLAGS], [
+ esac
+ fi
+
++dnl compensate for pkgsrc pthread.bl3 smartness
++ PTHREAD_LIBS="${PTHREAD_LDFLAGS} ${PTHREAD_LIBS}"
++
+ AC_CACHE_CHECK([if $CC supports Pthread],
+ AS_TR_SH([cc_cv_pthreads]),
+ [ac_save_CFLAGS="$CFLAGS"
diff --git a/multimedia/xine-lib/patches/patch-ga b/multimedia/xine-lib/patches/patch-ga
new file mode 100644
index 00000000000..57ce3b080ac
--- /dev/null
+++ b/multimedia/xine-lib/patches/patch-ga
@@ -0,0 +1,164 @@
+$NetBSD: patch-ga,v 1.1 2008/01/11 16:05:28 drochner Exp $
+
+--- src/input/libreal/rmff.c.orig 2008-01-01 14:30:08.000000000 +0100
++++ src/input/libreal/rmff.c
+@@ -35,9 +35,14 @@
+ * writes header data to a buffer
+ */
+
+-static void rmff_dump_fileheader(rmff_fileheader_t *fileheader, char *buffer) {
++static int rmff_dump_fileheader(rmff_fileheader_t *fileheader, uint8_t *buffer,
++int bufsize) {
++
++ if (!fileheader) return 0;
++
++ if (bufsize < RMFF_FILEHEADER_SIZE)
++ return -1;
+
+- if (!fileheader) return;
+ fileheader->object_id=_X_BE_32(&fileheader->object_id);
+ fileheader->size=_X_BE_32(&fileheader->size);
+ fileheader->object_version=_X_BE_16(&fileheader->object_version);
+@@ -53,11 +58,17 @@ static void rmff_dump_fileheader(rmff_fi
+ fileheader->file_version=_X_BE_32(&fileheader->file_version);
+ fileheader->num_headers=_X_BE_32(&fileheader->num_headers);
+ fileheader->object_id=_X_BE_32(&fileheader->object_id);
++
++ return RMFF_FILEHEADER_SIZE;
+ }
+
+-static void rmff_dump_prop(rmff_prop_t *prop, char *buffer) {
++static int rmff_dump_prop(rmff_prop_t *prop, uint8_t *buffer, int bufsize) {
++
++ if (!prop) return 0;
++
++ if (bufsize < RMFF_PROPHEADER_SIZE)
++ return -1;
+
+- if (!prop) return;
+ prop->object_id=_X_BE_32(&prop->object_id);
+ prop->size=_X_BE_32(&prop->size);
+ prop->object_version=_X_BE_16(&prop->object_version);
+@@ -93,13 +104,20 @@ static void rmff_dump_prop(rmff_prop_t *
+ prop->num_streams=_X_BE_16(&prop->num_streams);
+ prop->flags=_X_BE_16(&prop->flags);
+ prop->object_id=_X_BE_32(&prop->object_id);
++
++ return RMFF_PROPHEADER_SIZE;
+ }
+
+-static void rmff_dump_mdpr(rmff_mdpr_t *mdpr, char *buffer) {
++static int rmff_dump_mdpr(rmff_mdpr_t *mdpr, uint8_t *buffer, int bufsize) {
+
+ int s1, s2, s3;
+
+- if (!mdpr) return;
++ if (!mdpr) return 0;
++
++ if (bufsize < RMFF_MDPRHEADER_SIZE + mdpr->type_specific_len +
++ mdpr->stream_name_size + mdpr->mime_type_size)
++ return -1;
++
+ mdpr->object_id=_X_BE_32(&mdpr->object_id);
+ mdpr->size=_X_BE_32(&mdpr->size);
+ mdpr->object_version=_X_BE_16(&mdpr->object_version);
+@@ -141,13 +159,19 @@ static void rmff_dump_mdpr(rmff_mdpr_t *
+ mdpr->duration=_X_BE_32(&mdpr->duration);
+ mdpr->object_id=_X_BE_32(&mdpr->object_id);
+
++ return RMFF_MDPRHEADER_SIZE + s1 + s2 + s3;
+ }
+
+-static void rmff_dump_cont(rmff_cont_t *cont, char *buffer) {
++static int rmff_dump_cont(rmff_cont_t *cont, uint8_t *buffer, int bufsize) {
+
+ int p;
+
+- if (!cont) return;
++ if (!cont) return 0;
++
++ if (bufsize < RMFF_CONTHEADER_SIZE + cont->title_len + cont->author_len +
++ cont->copyright_len + cont->comment_len)
++ return -1;
++
+ cont->object_id=_X_BE_32(&cont->object_id);
+ cont->size=_X_BE_32(&cont->size);
+ cont->object_version=_X_BE_16(&cont->object_version);
+@@ -181,11 +205,19 @@ static void rmff_dump_cont(rmff_cont_t *
+ cont->size=_X_BE_32(&cont->size);
+ cont->object_version=_X_BE_16(&cont->object_version);
+ cont->object_id=_X_BE_32(&cont->object_id);
++
++ return RMFF_CONTHEADER_SIZE + cont->title_len + cont->author_len +
++ cont->copyright_len + cont->comment_len;
+ }
+
+-static void rmff_dump_dataheader(rmff_data_t *data, char *buffer) {
++static int rmff_dump_dataheader(rmff_data_t *data, uint8_t *buffer, int
++bufsize) {
++
++ if (!data) return 0;
++
++ if (bufsize < RMFF_DATAHEADER_SIZE)
++ return -1;
+
+- if (!data) return;
+ data->object_id=_X_BE_32(&data->object_id);
+ data->size=_X_BE_32(&data->size);
+ data->object_version=_X_BE_16(&data->object_version);
+@@ -201,31 +233,43 @@ static void rmff_dump_dataheader(rmff_da
+ data->size=_X_BE_32(&data->size);
+ data->object_version=_X_BE_16(&data->object_version);
+ data->object_id=_X_BE_32(&data->object_id);
++
++ return RMFF_DATAHEADER_SIZE;
+ }
+
+-int rmff_dump_header(rmff_header_t *h, char *buffer, int max) {
++int rmff_dump_header(rmff_header_t *h, void *buf_gen, int max) {
++ uint8_t *buffer = buf_gen;
+
+- int written=0;
++ int written=0, size;
+ rmff_mdpr_t **stream=h->streams;
+
+- rmff_dump_fileheader(h->fileheader, &buffer[written]);
+- written+=h->fileheader->size;
+- rmff_dump_prop(h->prop, &buffer[written]);
+- written+=h->prop->size;
+- rmff_dump_cont(h->cont, &buffer[written]);
+- written+=h->cont->size;
++ if ((size=rmff_dump_fileheader(h->fileheader, &buffer[written], max)) < 0)
++ return -1;
++ written+=size;
++ max -= size;
++ if ((size=rmff_dump_prop(h->prop, &buffer[written], max)) < 0)
++ return -1;
++ written+=size;
++ max -= size;
++ if ((size=rmff_dump_cont(h->cont, &buffer[written], max)) < 0)
++ return -1;
++ written+=size;
++ max -= size;
+ if (stream)
+ {
+ while(*stream)
+ {
+- rmff_dump_mdpr(*stream, &buffer[written]);
+- written+=(*stream)->size;
++ if ((size=rmff_dump_mdpr(*stream, &buffer[written], max)) < 0)
++ return -1;
++ written+=size;
++ max -= size;
+ stream++;
+ }
+ }
+
+- rmff_dump_dataheader(h->data, &buffer[written]);
+- written+=18;
++ if ((size=rmff_dump_dataheader(h->data, &buffer[written], max)) < 0)
++ return -1;
++ written+=size;
+
+ return written;
+ }
diff --git a/multimedia/xine-lib/patches/patch-gb b/multimedia/xine-lib/patches/patch-gb
new file mode 100644
index 00000000000..5b2c8cd333b
--- /dev/null
+++ b/multimedia/xine-lib/patches/patch-gb
@@ -0,0 +1,26 @@
+$NetBSD: patch-gb,v 1.1 2008/01/11 16:05:28 drochner Exp $
+
+--- src/input/libreal/rmff.h.orig 2008-01-01 14:30:08.000000000 +0100
++++ src/input/libreal/rmff.h
+@@ -39,6 +39,12 @@
+
+ #define RMFF_HEADER_SIZE 0x12
+
++#define RMFF_FILEHEADER_SIZE 18
++#define RMFF_PROPHEADER_SIZE 50
++#define RMFF_MDPRHEADER_SIZE 46
++#define RMFF_CONTHEADER_SIZE 18
++#define RMFF_DATAHEADER_SIZE 18
++
+ #define FOURCC_TAG( ch0, ch1, ch2, ch3 ) \
+ (((long)(unsigned char)(ch3) ) | \
+ ( (long)(unsigned char)(ch2) << 8 ) | \
+@@ -245,7 +251,7 @@ int rmff_get_header_size(rmff_header_t *
+ /*
+ * dumps the header <h> to <buffer>. <max> is the size of <buffer>
+ */
+-int rmff_dump_header(rmff_header_t *h, char *buffer, int max);
++int rmff_dump_header(rmff_header_t *h, void *buffer, int max);
+
+ /*
+ * dumps a packet header
diff --git a/multimedia/xine-lib/patches/patch-gc b/multimedia/xine-lib/patches/patch-gc
new file mode 100644
index 00000000000..45daa1f8f41
--- /dev/null
+++ b/multimedia/xine-lib/patches/patch-gc
@@ -0,0 +1,24 @@
+$NetBSD: patch-gc,v 1.1 2008/01/11 16:05:28 drochner Exp $
+
+--- src/input/librtsp/rtsp_session.c.orig 2008-01-01 14:30:08.000000000 +0100
++++ src/input/librtsp/rtsp_session.c
+@@ -148,6 +148,11 @@ connect:
+
+ rtsp_session->header_left =
+ rtsp_session->header_len = rmff_dump_header(h,rtsp_session->header,HEADER_SIZE);
++ if (rtsp_session->header_len < 0) {
++ xprintf (stream->xine, XINE_VERBOSITY_LOG,
++ _("rtsp_session: rtsp server returned overly-large headers, session can not be established.\n"));
++ goto session_abort;
++ }
+
+ xine_buffer_copyin(rtsp_session->recv, 0, rtsp_session->header, rtsp_session->header_len);
+ rtsp_session->recv_size = rtsp_session->header_len;
+@@ -157,6 +162,7 @@ connect:
+ {
+ xprintf(stream->xine, XINE_VERBOSITY_LOG,
+ _("rtsp_session: rtsp server type '%s' not supported yet. sorry.\n"), server);
++session_abort:
+ rtsp_close(rtsp_session->s);
+ free(server);
+ xine_buffer_free(rtsp_session->recv);