diff options
author | drochner <drochner@pkgsrc.org> | 2008-01-11 16:05:27 +0000 |
---|---|---|
committer | drochner <drochner@pkgsrc.org> | 2008-01-11 16:05:27 +0000 |
commit | 508ca350e2aca5db2de4c6b49b6872f2e31a2f6b (patch) | |
tree | 8a178af74f16b176c0eb7d1b10fdca537069a9a2 | |
parent | 6d9324864cc163ad04af42d4b4ee98a61cb58866 (diff) | |
download | pkgsrc-508ca350e2aca5db2de4c6b49b6872f2e31a2f6b.tar.gz |
update to 1.1.9
changes:
There are improvements to DVB subtitle support and H.264 video, and fixes
for MP3 playback, DVB, ivtv, Flash video streams and some playlist types
(particularly XML ones). One significant fix is that the special "be nice
to the user" '#' handling has been dropped since it seems to have been
causing more problems than it fixes.
pkgsrc note: a fix for CVE-2008-0225 (RTSP buffer overflow) is
already included
-rw-r--r-- | multimedia/xine-lib/Makefile | 5 | ||||
-rw-r--r-- | multimedia/xine-lib/Makefile.common | 5 | ||||
-rw-r--r-- | multimedia/xine-lib/distinfo | 18 | ||||
-rw-r--r-- | multimedia/xine-lib/patches/patch-ae | 38 | ||||
-rw-r--r-- | multimedia/xine-lib/patches/patch-ag | 10 | ||||
-rw-r--r-- | multimedia/xine-lib/patches/patch-ap | 8 | ||||
-rw-r--r-- | multimedia/xine-lib/patches/patch-fa | 14 | ||||
-rw-r--r-- | multimedia/xine-lib/patches/patch-ga | 164 | ||||
-rw-r--r-- | multimedia/xine-lib/patches/patch-gb | 26 | ||||
-rw-r--r-- | multimedia/xine-lib/patches/patch-gc | 24 |
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); |