This should go in, either like this or with wavpack added.
Any objections?
On 2009/01/11 19:45, Brad wrote:
> On Sat, Jan 10, 2009 at 06:26:52PM -0500, Brad wrote:
> > On Thu, Jan 08, 2009 at 02:21:37AM -0500, Brad wrote:
> > > Here is an update to Xine-lib 1.1.16. A bunch of security fixes
> > > and a lot of bug fixes.
> > >
> > > * Security fixes:
> > > - Heap overflow in Quicktime atom parsing. (CVE-2008-5234 vector 1)
> > > - Multiple buffer overflows. (CVE-2008-5236)
> > > - Multiple integer overflows. (CVE-2008-5237)
> > > - Unchecked read function results. (CVE-2008-5239)
> > > - Unchecked malloc using untrusted values. (CVE-2008-5240 vectors 3 &
> > > 4)
> > > - Buffer indexing using an untrusted value. (CVE-2008-5243)
> > >
> > > Please test.
> >
> > If you had problems building the previous revision of this diff please
> > try this revision as it should resolve those issues..
>
> A quick 1.1.16.1 release has been made which consits of mainly
> bug fixes, build fixes and a regression fix or two for 1.1.16.
> Please test.
>
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/multimedia/xine-lib/Makefile,v
> retrieving revision 1.45
> diff -u -p -r1.45 Makefile
> --- Makefile 29 Dec 2008 23:26:21 -0000 1.45
> +++ Makefile 12 Jan 2009 00:22:23 -0000
> @@ -5,15 +5,15 @@ SHARED_ONLY= Yes
> COMMENT-main= multimedia decoding library
> COMMENT-jack= jackd audio output module for xine-lib
>
> -V= 1.1.15
> +V= 1.1.16.1
> DISTNAME= xine-lib-${V}
> -PKGNAME-main= ${DISTNAME}p7
> +PKGNAME-main= ${DISTNAME}
> PKGNAME-jack= xine-lib-jack-${V}
> CATEGORIES= multimedia
> MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=xine/}
> EXTRACT_SUFX= .tar.bz2
>
> -SHARED_LIBS= xine 23.0
> +SHARED_LIBS= xine 24.0
>
> HOMEPAGE= http://xinehq.de/
>
> @@ -41,7 +41,7 @@ LIB_DEPENDS-main= ${LIB_DEPENDS} \
> FLAC.>=5::audio/flac \
> SDL.>=3::devel/sdl \
> a52::audio/liba52 \
> - avcodec.>=7,postproc.>=7::graphics/ffmpeg \
> + avcodec.>=7,avutil.>=6,postproc.>=7::graphics/ffmpeg \
> dvdnav.>=5::multimedia/libdvdnav \
> faad.>=2::audio/faad \
> mad.>=2::audio/libmad \
> @@ -61,7 +61,7 @@ USE_GMAKE= Yes
> USE_LIBTOOL= Yes
> LIBTOOL_FLAGS+= --tag=disable-static
>
> -XINEAPI_REV= 1.24
> +XINEAPI_REV= 1.25
> SUBST_VARS+= XINEAPI_REV
>
> .if ${MACHINE_ARCH} == "i386"
> Index: distinfo
> ===================================================================
> RCS file: /cvs/ports/multimedia/xine-lib/distinfo,v
> retrieving revision 1.14
> diff -u -p -r1.14 distinfo
> --- distinfo 20 Aug 2008 01:54:01 -0000 1.14
> +++ distinfo 12 Jan 2009 00:23:18 -0000
> @@ -1,5 +1,5 @@
> -MD5 (xine-lib-1.1.15.tar.bz2) = QqK0iTt/iS6zNN4vw21JyA==
> -RMD160 (xine-lib-1.1.15.tar.bz2) = XGTdUcBabhfLbfy7ipAJuoVxx18=
> -SHA1 (xine-lib-1.1.15.tar.bz2) = vLVn6ioRxfJrI4TVQAuEZuqQSMY=
> -SHA256 (xine-lib-1.1.15.tar.bz2) =
> B93yqfUhQX3S8JdTSlLd2dKINnmTL5Za5+ewEl08ncw=
> -SIZE (xine-lib-1.1.15.tar.bz2) = 7478750
> +MD5 (xine-lib-1.1.16.1.tar.bz2) = neEdt+JixWTP26mEGgkuvg==
> +RMD160 (xine-lib-1.1.16.1.tar.bz2) = PHaxL66Muofm07zq/L8vs++U4WQ=
> +SHA1 (xine-lib-1.1.16.1.tar.bz2) = gnCSVKBgPjlxBYqs+FeJJrddSiA=
> +SHA256 (xine-lib-1.1.16.1.tar.bz2) =
> n8JS0G5dskJlyDB2Z2vR8dDgk1cyufIex/yqw1v4CjY=
> +SIZE (xine-lib-1.1.16.1.tar.bz2) = 7382381
> Index: patches/patch-configure_ac
> ===================================================================
> RCS file: /cvs/ports/multimedia/xine-lib/patches/patch-configure_ac,v
> retrieving revision 1.1
> diff -u -p -r1.1 patch-configure_ac
> --- patches/patch-configure_ac 14 Dec 2008 23:57:34 -0000 1.1
> +++ patches/patch-configure_ac 12 Jan 2009 00:25:07 -0000
> @@ -1,6 +1,6 @@
> $OpenBSD: patch-configure_ac,v 1.1 2008/12/14 23:57:34 brad Exp $
> ---- configure.ac.orig Wed Aug 13 12:26:38 2008
> -+++ configure.ac Wed Dec 10 23:54:45 2008
> +--- configure.ac.orig Sun Jan 11 18:58:58 2009
> ++++ configure.ac Sun Jan 11 19:24:07 2009
> @@ -206,6 +206,10 @@ AC_PROG_GMSGFMT_PLURAL
>
> AC_CHECK_FUNCS([nl_langinfo])
> @@ -12,7 +12,7 @@ $OpenBSD: patch-configure_ac,v 1.1 2008/
> dnl ---------------------------------------------
> dnl Checks for typedefs, structures, and compiler characteristics.
> dnl ---------------------------------------------
> -@@ -537,9 +541,9 @@ t q
> +@@ -539,9 +543,9 @@ t q
> b
> :q
> q"
> @@ -24,7 +24,7 @@ $OpenBSD: patch-configure_ac,v 1.1 2008/
> AC_DEFINE_UNQUOTED([LIBXV_SO], "${x_lib_location:-libXv.so}", [The soname
> of libXv, needed for dlopen()])
>
>
> -@@ -1264,7 +1268,7 @@ if test "x$enable_a52dec" = "xno"; then
> +@@ -1261,7 +1265,7 @@ if test "x$enable_a52dec" = "xno"; then
> AC_MSG_RESULT([a52dec support disabled])
> elif test "x$external_a52dec" = "xyes"; then
> have_a52="yes"
> @@ -33,7 +33,7 @@ $OpenBSD: patch-configure_ac,v 1.1 2008/
> [
> #ifdef HAVE_SYS_TYPES_H
> # include <sys/types.h>
> -@@ -1355,9 +1359,10 @@ if test "x$with_mng" = "xyes"; then
> +@@ -1352,9 +1356,10 @@ if test "x$with_mng" = "xyes"; then
> AC_CHECK_LIB(mng, mng_initialize,
> [ AC_CHECK_HEADER(libmng.h,
> [ have_libmng=yes
> @@ -46,7 +46,7 @@ $OpenBSD: patch-configure_ac,v 1.1 2008/
> AC_SUBST(MNG_LIBS)
> else
> have_libmng=no
> -@@ -1550,6 +1555,28 @@ AM_CONDITIONAL([HAVE_JACK], [test "x$have_jack" = "xye
> +@@ -1547,6 +1552,28 @@ AM_CONDITIONAL([HAVE_JACK], [test "x$have_jack" = "xye
>
>
> dnl ---------------------------------------------
> @@ -75,7 +75,7 @@ $OpenBSD: patch-configure_ac,v 1.1 2008/
> dnl gnome-vfs support
> dnl ---------------------------------------------
>
> -@@ -2513,7 +2540,7 @@ dnl ---------------------------------------------
> +@@ -2505,7 +2532,7 @@ dnl ---------------------------------------------
>
> XINE_BUILD_CC="`$CC -v 2>&1 | tail -1 2>/dev/null`"
> XINE_BUILD_OS="`uname -s -r -m`"
> @@ -84,16 +84,7 @@ $OpenBSD: patch-configure_ac,v 1.1 2008/
> AC_SUBST(XINE_BUILD_CC)
> AC_SUBST(XINE_BUILD_OS)
> AC_SUBST(XINE_BUILD_DATE)
> -@@ -2651,7 +2678,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.
> -- *-freebsd*) ;;
> -+ *-freebsd*|*-openbsd*) ;;
> - *)
> - AC_TRY_LDFLAGS([-Wl,-z,defs], [NOUNDEF="-Wl,-z,defs"])
> - ;;
> -@@ -3173,6 +3200,9 @@ if test "x$have_pulseaudio" = "xyes"; then
> +@@ -3159,6 +3186,9 @@ if test "x$have_pulseaudio" = "xyes"; then
> fi
> if test "x$have_jack" = "xyes"; then
> echo " - Jack"
> Index: patches/patch-m4_attributes_m4
> ===================================================================
> RCS file: patches/patch-m4_attributes_m4
> diff -N patches/patch-m4_attributes_m4
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-m4_attributes_m4 8 Jan 2009 06:13:53 -0000
> @@ -0,0 +1,12 @@
> +$OpenBSD$
> +--- m4/attributes.m4.orig Thu Jan 8 01:12:43 2009
> ++++ m4/attributes.m4 Thu Jan 8 01:13:31 2009
> +@@ -109,7 +109,7 @@ AC_DEFUN([CC_NOUNDEFINED], [
> + 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.
> +- *-freebsd*) ;;
> ++ *-freebsd* | *-openbsd*) ;;
> + *)
> + dnl First of all check for the --no-undefined variant of GNU ld.
> This allows
> + dnl for a much more readable commandline, so that people can
> understand what
> Index: patches/patch-src_audio_out_Makefile_in
> ===================================================================
> RCS file:
> /cvs/ports/multimedia/xine-lib/patches/patch-src_audio_out_Makefile_in,v
> retrieving revision 1.12
> diff -u -p -r1.12 patch-src_audio_out_Makefile_in
> --- patches/patch-src_audio_out_Makefile_in 29 Dec 2008 23:26:21 -0000
> 1.12
> +++ patches/patch-src_audio_out_Makefile_in 8 Jan 2009 06:09:34 -0000
> @@ -1,7 +1,7 @@
> $OpenBSD: patch-src_audio_out_Makefile_in,v 1.12 2008/12/29 23:26:21 jakemsr
> Exp $
> ---- src/audio_out/Makefile.in.orig Thu Aug 14 17:18:39 2008
> -+++ src/audio_out/Makefile.in Sat Dec 27 20:50:00 2008
> -@@ -170,6 +170,18 @@ xineplug_ao_out_jack_la_LINK = $(LIBTOOL) --tag=CC $(A
> +--- src/audio_out/Makefile.in.orig Wed Jan 7 11:16:50 2009
> ++++ src/audio_out/Makefile.in Thu Jan 8 01:02:34 2009
> +@@ -171,6 +171,18 @@ xineplug_ao_out_jack_la_LINK = $(LIBTOOL) --tag=CC $(A
> $(xineplug_ao_out_jack_la_LDFLAGS) $(LDFLAGS) -o $@
> @have_jack_t...@am_xineplug_ao_out_jack_la_rpath = -rpath \
> @HAVE_JACK_TRUE@ $(xineplugdir)
> @@ -20,7 +20,7 @@ $OpenBSD: patch-src_audio_out_Makefile_i
> xineplug_ao_out_none_la_DEPENDENCIES = $(XINE_LIB) \
> $(am__DEPENDENCIES_1)
> am_xineplug_ao_out_none_la_OBJECTS = \
> -@@ -233,6 +245,7 @@ SOURCES = $(xineplug_ao_out_alsa_la_SOURCES) \
> +@@ -234,6 +246,7 @@ SOURCES = $(xineplug_ao_out_alsa_la_SOURCES) \
> $(xineplug_ao_out_file_la_SOURCES) \
> $(xineplug_ao_out_fusionsound_la_SOURCES) \
> $(xineplug_ao_out_jack_la_SOURCES) \
> @@ -28,7 +28,7 @@ $OpenBSD: patch-src_audio_out_Makefile_i
> $(xineplug_ao_out_none_la_SOURCES) \
> $(xineplug_ao_out_oss_la_SOURCES) \
> $(xineplug_ao_out_pulseaudio_la_SOURCES) \
> -@@ -246,6 +259,7 @@ DIST_SOURCES = $(xineplug_ao_out_alsa_la_SOURCES) \
> +@@ -247,6 +260,7 @@ DIST_SOURCES = $(xineplug_ao_out_alsa_la_SOURCES) \
> $(xineplug_ao_out_file_la_SOURCES) \
> $(xineplug_ao_out_fusionsound_la_SOURCES) \
> $(xineplug_ao_out_jack_la_SOURCES) \
> @@ -36,7 +36,7 @@ $OpenBSD: patch-src_audio_out_Makefile_i
> $(xineplug_ao_out_none_la_SOURCES) \
> $(xineplug_ao_out_oss_la_SOURCES) \
> $(xineplug_ao_out_pulseaudio_la_SOURCES) \
> -@@ -355,6 +369,8 @@ IRIXAL_LIBS = @IRIXAL_LIBS@
> +@@ -358,6 +372,8 @@ IRIXAL_LIBS = @IRIXAL_LIBS@
> IRIXAL_STATIC_LIB = @IRIXAL_STATIC_LIB@
> JACK_CFLAGS = @JACK_CFLAGS@
> JACK_LIBS = @JACK_LIBS@
> @@ -44,8 +44,8 @@ $OpenBSD: patch-src_audio_out_Makefile_i
> +SNDIO_LIBS = @SNDIO_LIBS@
> KSTAT_LIBS = @KSTAT_LIBS@
> LDFLAGS = @LDFLAGS@
> - LIBCDIO_CFLAGS = @LIBCDIO_CFLAGS@
> -@@ -583,6 +599,7 @@ EXTRA_DIST = audio_irixal_out.c
> + LDFLAGS_NOUNDEFINED = @LDFLAGS_NOUNDEFINED@
> +@@ -586,6 +602,7 @@ EXTRA_DIST = audio_irixal_out.c
> @have_pulseaudio_t...@pulseaudio_module = xineplug_ao_out_pulseaudio.la
> @have_fusionsound_t...@fusionsound_module = xineplug_ao_out_fusionsound.la
> @have_jack_t...@jack_module = xineplug_ao_out_jack.la
> @@ -53,7 +53,7 @@ $OpenBSD: patch-src_audio_out_Makefile_i
>
> # IMPORTANT:
> # ---------
> -@@ -600,7 +617,8 @@ xineplug_LTLIBRARIES = xineplug_ao_out_none.la xineplu
> +@@ -603,7 +620,8 @@ xineplug_LTLIBRARIES = xineplug_ao_out_none.la xineplu
> $(pulseaudio_module) \
> $(directx2_module) \
> $(fusionsound_module) \
> @@ -63,7 +63,7 @@ $OpenBSD: patch-src_audio_out_Makefile_i
>
> xineplug_ao_out_none_la_SOURCES = audio_none_out.c
> xineplug_ao_out_none_la_LIBADD = $(XINE_LIB) $(LTLIBINTL)
> -@@ -667,6 +685,10 @@ xineplug_ao_out_jack_la_SOURCES = audio_jack_out.c
> +@@ -670,6 +688,10 @@ xineplug_ao_out_jack_la_SOURCES = audio_jack_out.c
> xineplug_ao_out_jack_la_LIBADD = $(XINE_LIB) $(JACK_LIBS) $(LTLIBINTL)
> xineplug_ao_out_jack_la_CFLAGS = $(VISIBILITY_FLAG) $(JACK_CFLAGS)
> xineplug_ao_out_jack_la_LDFLAGS = -avoid-version -module
> @@ -74,7 +74,7 @@ $OpenBSD: patch-src_audio_out_Makefile_i
> all: all-am
>
> .SUFFIXES:
> -@@ -745,6 +767,8 @@ xineplug_ao_out_fusionsound.la: $(xineplug_ao_out_fusi
> +@@ -748,6 +770,8 @@ xineplug_ao_out_fusionsound.la: $(xineplug_ao_out_fusi
> $(xineplug_ao_out_fusionsound_la_LINK)
> $(am_xineplug_ao_out_fusionsound_la_rpath)
> $(xineplug_ao_out_fusionsound_la_OBJECTS)
> $(xineplug_ao_out_fusionsound_la_LIBADD) $(LIBS)
> xineplug_ao_out_jack.la: $(xineplug_ao_out_jack_la_OBJECTS)
> $(xineplug_ao_out_jack_la_DEPENDENCIES)
> $(xineplug_ao_out_jack_la_LINK) $(am_xineplug_ao_out_jack_la_rpath)
> $(xineplug_ao_out_jack_la_OBJECTS) $(xineplug_ao_out_jack_la_LIBADD) $(LIBS)
> @@ -83,7 +83,7 @@ $OpenBSD: patch-src_audio_out_Makefile_i
> xineplug_ao_out_none.la: $(xineplug_ao_out_none_la_OBJECTS)
> $(xineplug_ao_out_none_la_DEPENDENCIES)
> $(xineplug_ao_out_none_la_LINK) -rpath $(xineplugdir)
> $(xineplug_ao_out_none_la_OBJECTS) $(xineplug_ao_out_none_la_LIBADD) $(LIBS)
> xineplug_ao_out_oss.la: $(xineplug_ao_out_oss_la_OBJECTS)
> $(xineplug_ao_out_oss_la_DEPENDENCIES)
> -@@ -769,6 +793,7 @@ distclean-compile:
> +@@ -772,6 +796,7 @@ distclean-compile:
> @AMDEP_TRUE@@am__include@
> @am__qu...@./$(DEPDIR)/xineplug_ao_out_file_la-audio_file_out....@am__quote@
> @AMDEP_TRUE@@am__include@
> @am__qu...@./$(DEPDIR)/xineplug_ao_out_fusionsound_la-audio_fusionsound_out....@am__quote@
> @AMDEP_TRUE@@am__include@
> @am__qu...@./$(DEPDIR)/xineplug_ao_out_jack_la-audio_jack_out....@am__quote@
> @@ -91,7 +91,7 @@ $OpenBSD: patch-src_audio_out_Makefile_i
> @AMDEP_TRUE@@am__include@
> @am__qu...@./$(DEPDIR)/xineplug_ao_out_none_la-audio_none_out....@am__quote@
> @AMDEP_TRUE@@am__include@
> @am__qu...@./$(DEPDIR)/xineplug_ao_out_oss_la-audio_oss_out....@am__quote@
> @AMDEP_TRUE@@am__include@
> @am__qu...@./$(DEPDIR)/xineplug_ao_out_pulseaudio_la-audio_pulse_out....@am__quote@
> -@@ -857,6 +882,13 @@ xineplug_ao_out_jack_la-audio_jack_out.lo: audio_jack_
> +@@ -860,6 +885,13 @@ xineplug_ao_out_jack_la-audio_jack_out.lo: audio_jack_
> @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='audio_jack_out.c'
> object='xineplug_ao_out_jack_la-audio_jack_out.lo' libtool=yes
> @AMDEPBACKSLASH@
> @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE)
> $(depcomp) @AMDEPBACKSLASH@
> @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS)
> $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES)
> $(AM_CPPFLAGS) $(CPPFLAGS) $(xineplug_ao_out_jack_la_CFLAGS) $(CFLAGS) -c -o
> xineplug_ao_out_jack_la-audio_jack_out.lo `test -f 'audio_jack_out.c' || echo
> '$(srcdir)/'`audio_jack_out.c
> Index: patches/patch-src_audio_out_audio_sun_out_c
> ===================================================================
> RCS file: patches/patch-src_audio_out_audio_sun_out_c
> diff -N patches/patch-src_audio_out_audio_sun_out_c
> --- patches/patch-src_audio_out_audio_sun_out_c 15 Jan 2008 00:36:46
> -0000 1.6
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,60 +0,0 @@
> -$OpenBSD: patch-src_audio_out_audio_sun_out_c,v 1.6 2008/01/15 00:36:46
> jakemsr Exp $
> ---- src/audio_out/audio_sun_out.c.orig Tue Jan 1 08:30:08 2008
> -+++ src/audio_out/audio_sun_out.c Wed Jan 9 01:50:21 2008
> -@@ -582,9 +582,9 @@ static int ao_sun_bytes_per_frame(ao_driver_t *this_ge
> - static int ao_sun_delay(ao_driver_t *this_gen)
> - {
> - sun_driver_t *this = (sun_driver_t *) this_gen;
> -+#ifdef __svr4__
> - audio_info_t info;
> -
> --#ifdef __svr4__
> - if (ioctl(this->audio_fd, AUDIO_GETINFO, &info) == 0 &&
> - (this->frames_in_buffer == 0 || info.play.samples > 0)) {
> -
> -@@ -632,8 +632,9 @@ static int ao_sun_delay(ao_driver_t *this_gen)
> - #endif
> - }
> - #else
> -- if (ioctl(this->audio_fd, AUDIO_GETINFO, &info) == 0)
> -- return info.play.seek / this->bytes_per_frame;
> -+ u_long bytes;
> -+ if (ioctl(this->audio_fd, AUDIO_WSEEK, &bytes) == 0)
> -+ return bytes / this->bytes_per_frame;
> - #endif
> - return NOT_REAL_TIME;
> - }
> -@@ -888,8 +889,7 @@ static int ao_sun_ctrl(ao_driver_t *this_gen, int cmd,
> -
> - this->frames_in_buffer = 0;
> - this->last_samplecnt = 0;
> --#endif
> --#ifdef __NetBSD__
> -+#else
> - ioctl(this->audio_fd, AUDIO_FLUSH);
> - #endif
> - break;
> -@@ -964,11 +964,20 @@ static ao_driver_t *ao_sun_open_plugin (audio_driver_c
> - status = ioctl(this->audio_fd, AUDIO_SETINFO, &info);
> -
> - if (status < 0) {
> -- xprintf(this->xine, XINE_VERBOSITY_LOG,
> -+ /* some devices are 48kHz only */
> -+ AUDIO_INITINFO(&info);
> -+ info.play.encoding = AUDIO_ENCODING_LINEAR;
> -+ info.play.precision = AUDIO_PRECISION_16;
> -+ info.play.sample_rate = 48000;
> -+ status = ioctl(this->audio_fd, AUDIO_SETINFO, &info);
> -+
> -+ if (status < 0) {
> -+ xprintf(this->xine, XINE_VERBOSITY_LOG,
> - _("audio_sun_out: audio ioctl on device %s failed: %s\n"), devname,
> strerror(errno));
> -
> -- free (this);
> -- return NULL;
> -+ free (this);
> -+ return NULL;
> -+ }
> - }
> -
> - /*
> Index: patches/patch-src_demuxers_demux_flv_c
> ===================================================================
> RCS file: patches/patch-src_demuxers_demux_flv_c
> diff -N patches/patch-src_demuxers_demux_flv_c
> --- patches/patch-src_demuxers_demux_flv_c 16 Sep 2008 02:37:04 -0000
> 1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,378 +0,0 @@
> -$OpenBSD: patch-src_demuxers_demux_flv_c,v 1.1 2008/09/16 02:37:04 brad Exp $
> ---- src/demuxers/demux_flv.c.orig Sat Jun 14 19:15:00 2008
> -+++ src/demuxers/demux_flv.c Fri Sep 5 20:52:34 2008
> -@@ -21,10 +21,10 @@
> - /*
> - * Flash Video (.flv) File Demuxer
> - * by Mike Melanson (melan...@pcisys.net) and
> -- * Claudio Ciccani (k...@directfb.org)
> -+ * Claudio Ciccani (k...@users.sf.net)
> - *
> - * For more information on the FLV file format, visit:
> -- *
> http://download.macromedia.com/pub/flash/flash_file_format_specification.pdf
> -+ * http://www.adobe.com/devnet/flv/pdf/video_file_format_spec_v9.pdf
> - */
> -
> - #ifdef HAVE_CONFIG_H
> -@@ -110,14 +110,20 @@ typedef struct {
> - #define FLV_SOUND_FORMAT_ADPCM 0x01
> - #define FLV_SOUND_FORMAT_MP3 0x02
> - #define FLV_SOUND_FORMAT_PCM_LE 0x03
> -+#define FLV_SOUND_FORMAT_NELLY16 0x04 /* Nellymoser 16KHz */
> - #define FLV_SOUND_FORMAT_NELLY8 0x05 /* Nellymoser 8KHz */
> - #define FLV_SOUND_FORMAT_NELLY 0x06 /* Nellymoser */
> -+#define FLV_SOUND_FORMAT_ALAW 0x07 /* G.711 A-LAW */
> -+#define FLV_SOUND_FORMAT_MULAW 0x08 /* G.711 MU-LAW */
> -+#define FLV_SOUND_FORMAT_AAC 0x0a
> -+#define FLV_SOUND_FORMAT_MP38 0x0e /* MP3 8KHz */
> -
> - #define FLV_VIDEO_FORMAT_FLV1 0x02 /* Sorenson H.263 */
> - #define FLV_VIDEO_FORMAT_SCREEN 0x03
> - #define FLV_VIDEO_FORMAT_VP6 0x04 /* On2 VP6 */
> - #define FLV_VIDEO_FORMAT_VP6A 0x05 /* On2 VP6 with alphachannel */
> - #define FLV_VIDEO_FORMAT_SCREEN2 0x06
> -+#define FLV_VIDEO_FORMAT_H264 0x07
> -
> - #define FLV_DATA_TYPE_NUMBER 0x00
> - #define FLV_DATA_TYPE_BOOL 0x01
> -@@ -429,11 +435,24 @@ static int read_flv_packet(demux_flv_t *this, int prev
> - buf_type = BUF_AUDIO_FLVADPCM;
> - break;
> - case FLV_SOUND_FORMAT_MP3:
> -+ case FLV_SOUND_FORMAT_MP38:
> - buf_type = BUF_AUDIO_MPEG;
> - break;
> - case FLV_SOUND_FORMAT_PCM_LE:
> - buf_type = BUF_AUDIO_LPCM_LE;
> - break;
> -+ case FLV_SOUND_FORMAT_ALAW:
> -+ buf_type = BUF_AUDIO_ALAW;
> -+ break;
> -+ case FLV_SOUND_FORMAT_MULAW:
> -+ buf_type = BUF_AUDIO_MULAW;
> -+ break;
> -+ case FLV_SOUND_FORMAT_AAC:
> -+ buf_type = BUF_AUDIO_AAC;
> -+ /* AAC extra header */
> -+ this->input->read(this->input, buffer, 1 );
> -+ remaining_bytes--;
> -+ break;
> - default:
> - lprintf(" unsupported audio format (%d)...\n", buffer[0] >> 4);
> - buf_type = BUF_AUDIO_UNKNOWN;
> -@@ -464,8 +483,17 @@ static int read_flv_packet(demux_flv_t *this, int prev
> - }
> - remaining_bytes--;
> -
> -- if ((buffer[0] >> 4) == 0x01)
> -- buf_flags = BUF_FLAG_KEYFRAME;
> -+ switch ((buffer[0] >> 4)) {
> -+ case 0x01:
> -+ buf_flags = BUF_FLAG_KEYFRAME;
> -+ break;
> -+ case 0x05:
> -+ /* skip server command */
> -+ this->input->seek(this->input, remaining_bytes, SEEK_CUR);
> -+ continue;
> -+ default:
> -+ break;
> -+ }
> -
> - this->videocodec = buffer[0] & 0x0F; /* override */
> - switch (this->videocodec) {
> -@@ -484,6 +512,12 @@ static int read_flv_packet(demux_flv_t *this, int prev
> - this->input->read(this->input, buffer, 4);
> - remaining_bytes -= 4;
> - break;
> -+ case FLV_VIDEO_FORMAT_H264:
> -+ buf_type = BUF_VIDEO_H264;
> -+ /* AVC extra header */
> -+ this->input->read(this->input, buffer, 4);
> -+ remaining_bytes -= 4;
> -+ break;
> - default:
> - lprintf(" unsupported video format (%d)...\n", buffer[0] &
> 0x0F);
> - buf_type = BUF_VIDEO_UNKNOWN;
> -@@ -511,6 +545,23 @@ static int read_flv_packet(demux_flv_t *this, int prev
> - bih->biSize++;
> - buf->size++;
> - }
> -+ else if (buf_type == BUF_VIDEO_H264 && buffer[0] == 0) {
> -+ /* AVC sequence header */
> -+ if (remaining_bytes > buf->max_size-buf->size) {
> -+ xprintf(this->xine, XINE_VERBOSITY_LOG,
> -+ _("sequence header too big (%u bytes)!\n"),
> remaining_bytes);
> -+ this->input->read(this->input, buf->content+buf->size,
> buf->max_size-buf->size);
> -+ this->input->seek(this->input,
> remaining_bytes-buf->max_size-buf->size, SEEK_CUR);
> -+ bih->biSize = buf->max_size;
> -+ buf->size = buf->max_size;
> -+ }
> -+ else {
> -+ this->input->read(this->input, buf->content+buf->size,
> remaining_bytes);
> -+ bih->biSize += remaining_bytes;
> -+ buf->size += remaining_bytes;
> -+ }
> -+ remaining_bytes = 0;
> -+ }
> - fifo->put(fifo, buf);
> - this->got_video_header = 1;
> - }
> -@@ -537,11 +588,21 @@ static int read_flv_packet(demux_flv_t *this, int prev
> - buf->type = BUF_AUDIO_FLVADPCM;
> - break;
> - case FLV_SOUND_FORMAT_MP3:
> -+ case FLV_SOUND_FORMAT_MP38:
> - buf->type = BUF_AUDIO_MPEG;
> - break;
> - case FLV_SOUND_FORMAT_PCM_LE:
> - buf->type = BUF_AUDIO_LPCM_LE;
> - break;
> -+ case FLV_SOUND_FORMAT_ALAW:
> -+ buf->type = BUF_AUDIO_ALAW;
> -+ break;
> -+ case FLV_SOUND_FORMAT_MULAW:
> -+ buf->type = BUF_AUDIO_MULAW;
> -+ break;
> -+ case FLV_SOUND_FORMAT_AAC:
> -+ buf->type = BUF_AUDIO_AAC;
> -+ break;
> - default:
> - buf->type = BUF_AUDIO_UNKNOWN;
> - break;
> -@@ -549,9 +610,10 @@ static int read_flv_packet(demux_flv_t *this, int prev
> - buf->size = 0;
> - this->audio_fifo->put(this->audio_fifo, buf);
> - this->got_audio_header = 1;
> -+ lprintf(" got audio header from metadata...\n");
> - }
> -
> -- if (!this->got_video_header && this->videocodec) {
> -+ if (!this->got_video_header && this->videocodec &&
> this->videocodec != FLV_VIDEO_FORMAT_H264) {
> - xine_bmiheader *bih;
> - buf = this->video_fifo->buffer_pool_alloc(this->video_fifo);
> - buf->decoder_flags = BUF_FLAG_HEADER | BUF_FLAG_STDHEADER |
> -@@ -583,6 +645,7 @@ static int read_flv_packet(demux_flv_t *this, int prev
> - }
> - this->video_fifo->put(this->video_fifo, buf);
> - this->got_video_header = 1;
> -+ lprintf(" got video header from metadata...\n");
> - }
> -
> - return this->status;
> -@@ -600,33 +663,61 @@ static int read_flv_packet(demux_flv_t *this, int prev
> - while (remaining_bytes) {
> - buf = fifo->buffer_pool_alloc(fifo);
> - buf->type = buf_type;
> -- buf->pts = (int64_t) pts * 90;
> -
> -- if (!preview)
> -- check_newpts(this, buf->pts, (tag_type == FLV_TAG_TYPE_VIDEO));
> --
> - buf->extra_info->input_time = pts;
> - if (this->input->get_length(this->input)) {
> - buf->extra_info->input_normpos =
> - (int)((double)this->input->get_current_pos(this->input) *
> 65535.0 / this->size);
> - }
> -+
> -+ if ((buf_type == BUF_VIDEO_H264 || buf_type == BUF_AUDIO_AAC) &&
> buffer[0] == 0) {
> -+ /* AVC/AAC sequence header */
> -+ buf->pts = 0;
> -+ buf->size = 0;
> -+
> -+ buf->decoder_flags = BUF_FLAG_SPECIAL | BUF_FLAG_HEADER;
> -+ if (preview)
> -+ buf->decoder_flags |= BUF_FLAG_PREVIEW;
> -
> -- if (remaining_bytes > buf->max_size)
> -- buf->size = buf->max_size;
> -- else
> -- buf->size = remaining_bytes;
> -- remaining_bytes -= buf->size;
> -+ buf->decoder_info[1] = BUF_SPECIAL_DECODER_CONFIG;
> -+ buf->decoder_info[2] = MIN(remaining_bytes, buf->max_size);
> -+ buf->decoder_info_ptr[2] = buf->mem;
> -+
> -+ if (this->input->read(this->input, buf->mem, buf->decoder_info[2])
> != buf->decoder_info[2]) {
> -+ buf->free_buffer(buf);
> -+ this->status = DEMUX_FINISHED;
> -+ break;
> -+ }
> -+
> -+ if (remaining_bytes > buf->max_size) {
> -+ xprintf(this->xine, XINE_VERBOSITY_LOG,
> -+ _("sequence header too big (%u bytes)!\n"),
> remaining_bytes);
> -+ this->input->seek(this->input, remaining_bytes-buf->max_size,
> SEEK_CUR);
> -+ }
> -+ remaining_bytes = 0;
> -+ }
> -+ else {
> -+ buf->pts = (int64_t) pts * 90;
> -+ if (!preview)
> -+ check_newpts(this, buf->pts, (tag_type == FLV_TAG_TYPE_VIDEO));
> -
> -- buf->decoder_flags = buf_flags;
> -- if (preview)
> -- buf->decoder_flags |= BUF_FLAG_PREVIEW;
> -- if (!remaining_bytes)
> -- buf->decoder_flags |= BUF_FLAG_FRAME_END;
> -+ if (remaining_bytes > buf->max_size)
> -+ buf->size = buf->max_size;
> -+ else
> -+ buf->size = remaining_bytes;
> -+ remaining_bytes -= buf->size;
> -
> -- if (this->input->read(this->input, buf->content, buf->size) !=
> buf->size) {
> -- buf->free_buffer(buf);
> -- this->status = DEMUX_FINISHED;
> -- break;
> -+ buf->decoder_flags = buf_flags;
> -+ if (preview)
> -+ buf->decoder_flags |= BUF_FLAG_PREVIEW;
> -+ if (!remaining_bytes)
> -+ buf->decoder_flags |= BUF_FLAG_FRAME_END;
> -+
> -+ if (this->input->read(this->input, buf->content, buf->size) !=
> buf->size) {
> -+ buf->free_buffer(buf);
> -+ this->status = DEMUX_FINISHED;
> -+ break;
> -+ }
> - }
> -
> - fifo->put(fifo, buf);
> -@@ -649,8 +740,8 @@ static void seek_flv_file(demux_flv_t *this, off_t see
> -
> - lprintf(" seeking %s to %d...\n",
> - do_rewind ? "backward" : "forward", seek_pts);
> --
> -- if (seek_pts == 0) {
> -+
> -+ if (seek_pos == 0 && seek_pts == 0) {
> - this->input->seek(this->input, this->start, SEEK_SET);
> - this->cur_pts = 0;
> - return;
> -@@ -676,11 +767,9 @@ static void seek_flv_file(demux_flv_t *this, off_t see
> -
> - this->input->seek(this->input, this->index[i].offset-4, SEEK_SET);
> - this->cur_pts = this->index[i].pts;
> -- return;
> - }
> - }
> --
> -- if (seek_pos && this->videocodec && abs(seek_pts-this->cur_pts) > 300000)
> {
> -+ else if (seek_pos && this->videocodec && abs(seek_pts-this->cur_pts) >
> 300000) {
> - off_t pos, size;
> -
> - pos = this->input->get_current_pos(this->input);
> -@@ -715,49 +804,50 @@ static void seek_flv_file(demux_flv_t *this, off_t see
> -
> - lprintf(" ...resync failed!\n");
> - this->input->seek(this->input, pos, SEEK_SET);
> -- return;
> - }
> --
> -- while (do_rewind ? (seek_pts < this->cur_pts) : (seek_pts >
> this->cur_pts)) {
> -- unsigned char tag_type;
> -- int data_size;
> -- int ptag_size;
> -+ else if (seek_pts) {
> -+ while (do_rewind ? (seek_pts < this->cur_pts) : (seek_pts >
> this->cur_pts)) {
> -+ unsigned char tag_type;
> -+ int data_size;
> -+ int ptag_size;
> -
> -- if (next_tag)
> -- this->input->seek(this->input, next_tag, SEEK_CUR);
> -+ if (next_tag)
> -+ this->input->seek(this->input, next_tag, SEEK_CUR);
> -
> -- len = this->input->read(this->input, buffer, 16);
> -- if (len != 16) {
> -- len = (len < 0) ? 0 : len;
> -- break;
> -- }
> -+ len = this->input->read(this->input, buffer, 16);
> -+ if (len != 16) {
> -+ len = (len < 0) ? 0 : len;
> -+ break;
> -+ }
> -
> -- ptag_size = _X_BE_32(&buffer[0]);
> -- tag_type = buffer[4];
> -- data_size = _X_BE_24(&buffer[5]);
> -- pts = _X_BE_24(&buffer[8]) | (buffer[11] << 24);
> -+ ptag_size = _X_BE_32(&buffer[0]);
> -+ tag_type = buffer[4];
> -+ data_size = _X_BE_24(&buffer[5]);
> -+ pts = _X_BE_24(&buffer[8]) | (buffer[11] << 24);
> -
> -- if (do_rewind) {
> -- if (!ptag_size) break; /* beginning of movie */
> -- next_tag = -(ptag_size + 16 + 4);
> -- }
> -- else {
> -- next_tag = data_size - 1;
> -- }
> -+ if (do_rewind) {
> -+ if (!ptag_size)
> -+ break; /* beginning of movie */
> -+ next_tag = -(ptag_size + 16 + 4);
> -+ }
> -+ else {
> -+ next_tag = data_size - 1;
> -+ }
> -
> -- if (this->flags & FLV_FLAG_HAS_VIDEO) {
> -- /* sync to video key frame */
> -- if (tag_type != FLV_TAG_TYPE_VIDEO || (buffer[15] >> 4) != 0x01)
> -- continue;
> -- lprintf(" video keyframe found at %d...\n", pts);
> -+ if (this->flags & FLV_FLAG_HAS_VIDEO) {
> -+ /* sync to video key frame */
> -+ if (tag_type != FLV_TAG_TYPE_VIDEO || (buffer[15] >> 4) != 0x01)
> -+ continue;
> -+ lprintf(" video keyframe found at %d...\n", pts);
> -+ }
> -+ this->cur_pts = pts;
> - }
> -- this->cur_pts = pts;
> -- }
> -
> -- /* seek back to the beginning of the tag */
> -- this->input->seek(this->input, -len, SEEK_CUR);
> -+ /* seek back to the beginning of the tag */
> -+ this->input->seek(this->input, -len, SEEK_CUR);
> -
> -- lprintf( " seeked to %d.\n", pts);
> -+ lprintf( " seeked to %d.\n", pts);
> -+ }
> - }
> -
> -
> -@@ -807,8 +897,12 @@ static int demux_flv_seek (demux_plugin_t *this_gen,
> - this->status = DEMUX_OK;
> -
> - if (INPUT_IS_SEEKABLE(this->input)) {
> -- if (start_pos && !start_time)
> -- start_time = (int64_t) this->length * start_pos / 65535;
> -+ if (start_pos && !start_time) {
> -+ if (this->length)
> -+ start_time = (int64_t) this->length * start_pos / 65535;
> -+ else if (this->index)
> -+ start_time = this->index[(int)(start_pos * (this->num_indices-1) /
> 65535)].pts;
> -+ }
> -
> - if (!this->length || start_time < this->length) {
> - seek_flv_file(this, start_pos, start_time);
> -@@ -875,12 +969,6 @@ static demux_plugin_t *open_plugin (demux_class_t *cla
> -
> - switch (stream->content_detection_method) {
> - case METHOD_BY_EXTENSION:
> -- if (!_x_demux_check_extension(input->get_mrl(input), "flv")) {
> -- free (this);
> -- return NULL;
> -- }
> --
> -- /* falling through is intended */
> - case METHOD_BY_CONTENT:
> - case METHOD_EXPLICIT:
> - if (!open_flv_file(this)) {
> Index: patches/patch-src_demuxers_demux_mpeg_pes_c
> ===================================================================
> RCS file:
> /cvs/ports/multimedia/xine-lib/patches/patch-src_demuxers_demux_mpeg_pes_c,v
> retrieving revision 1.3
> diff -u -p -r1.3 patch-src_demuxers_demux_mpeg_pes_c
> --- patches/patch-src_demuxers_demux_mpeg_pes_c 18 Jun 2008 01:26:41
> -0000 1.3
> +++ patches/patch-src_demuxers_demux_mpeg_pes_c 8 Jan 2009 06:09:34
> -0000
> @@ -1,7 +1,7 @@
> $OpenBSD: patch-src_demuxers_demux_mpeg_pes_c,v 1.3 2008/06/18 01:26:41 brad
> Exp $
> ---- src/demuxers/demux_mpeg_pes.c.orig Sat Jun 14 19:15:00 2008
> -+++ src/demuxers/demux_mpeg_pes.c Mon Jun 16 02:30:50 2008
> -@@ -815,7 +815,7 @@ static int32_t parse_pes_for_pts(demux_mpeg_pes_t *thi
> +--- src/demuxers/demux_mpeg_pes.c.orig Wed Jan 7 11:14:32 2009
> ++++ src/demuxers/demux_mpeg_pes.c Thu Jan 8 01:02:34 2009
> +@@ -814,7 +814,7 @@ static int32_t parse_pes_for_pts(demux_mpeg_pes_t *thi
> _("demux_mpeg_pes: warning: PES header indicates that "
> "this stream may be encrypted (encryption mode %d)\n"), (p[6] &
> 0x30) >> 4);
> _x_message (this->stream, XINE_MSG_ENCRYPTED_SOURCE,
> Index: patches/patch-src_demuxers_demux_qt_c
> ===================================================================
> RCS file:
> /cvs/ports/multimedia/xine-lib/patches/patch-src_demuxers_demux_qt_c,v
> retrieving revision 1.6
> diff -u -p -r1.6 patch-src_demuxers_demux_qt_c
> --- patches/patch-src_demuxers_demux_qt_c 18 Jun 2008 01:26:41 -0000
> 1.6
> +++ patches/patch-src_demuxers_demux_qt_c 8 Jan 2009 06:09:34 -0000
> @@ -1,7 +1,7 @@
> $OpenBSD: patch-src_demuxers_demux_qt_c,v 1.6 2008/06/18 01:26:41 brad Exp $
> ---- src/demuxers/demux_qt.c.orig Sat Jun 14 19:15:00 2008
> -+++ src/demuxers/demux_qt.c Mon Jun 16 02:30:50 2008
> -@@ -3022,7 +3022,7 @@ static demux_plugin_t *open_plugin (demux_class_t *cla
> +--- src/demuxers/demux_qt.c.orig Wed Jan 7 11:14:32 2009
> ++++ src/demuxers/demux_qt.c Thu Jan 8 01:02:34 2009
> +@@ -3049,7 +3049,7 @@ static demux_plugin_t *open_plugin (demux_class_t *cla
> /* special consideration for DRM-protected files */
> if (this->qt->last_error == QT_DRM_NOT_SUPPORTED)
> _x_message (this->stream, XINE_MSG_ENCRYPTED_SOURCE,
> Index: patches/patch-src_input_Makefile_in
> ===================================================================
> RCS file: /cvs/ports/multimedia/xine-lib/patches/patch-src_input_Makefile_in,v
> retrieving revision 1.12
> diff -u -p -r1.12 patch-src_input_Makefile_in
> --- patches/patch-src_input_Makefile_in 2 Jul 2008 01:02:42 -0000
> 1.12
> +++ patches/patch-src_input_Makefile_in 8 Jan 2009 06:09:39 -0000
> @@ -1,7 +1,7 @@
> $OpenBSD: patch-src_input_Makefile_in,v 1.12 2008/07/02 01:02:42 brad Exp $
> ---- src/input/Makefile.in.orig Sun Jun 29 13:13:04 2008
> -+++ src/input/Makefile.in Sun Jun 29 20:54:12 2008
> -@@ -595,7 +595,7 @@ EXTRA_DIST = input_dvd.c input_vcd.c input_gnome_vfs.c
> +--- src/input/Makefile.in.orig Wed Jan 7 11:16:52 2009
> ++++ src/input/Makefile.in Thu Jan 8 01:02:34 2009
> +@@ -597,7 +597,7 @@ EXTRA_DIST = input_dvd.c input_vcd.c input_gnome_vfs.c
> # ---------
> # All of xine input plugins should be named like the scheme "xineplug_inp_"
> #
> Index: patches/patch-src_input_input_cdda_c
> ===================================================================
> RCS file:
> /cvs/ports/multimedia/xine-lib/patches/patch-src_input_input_cdda_c,v
> retrieving revision 1.6
> diff -u -p -r1.6 patch-src_input_input_cdda_c
> --- patches/patch-src_input_input_cdda_c 31 Aug 2008 00:35:08 -0000
> 1.6
> +++ patches/patch-src_input_input_cdda_c 8 Jan 2009 06:09:33 -0000
> @@ -1,6 +1,6 @@
> $OpenBSD: patch-src_input_input_cdda_c,v 1.6 2008/08/31 00:35:08 brad Exp $
> ---- src/input/input_cdda.c.orig Wed Aug 13 12:33:05 2008
> -+++ src/input/input_cdda.c Wed Aug 27 19:50:47 2008
> +--- src/input/input_cdda.c.orig Sun Jan 4 10:47:28 2009
> ++++ src/input/input_cdda.c Thu Jan 8 01:02:34 2009
> @@ -72,7 +72,7 @@
> #elif defined(WIN32)
> #define DEFAULT_CDDA_DEVICE "d:\\"
> @@ -10,15 +10,6 @@ $OpenBSD: patch-src_input_input_cdda_c,v
> #endif
>
> #define CDDB_SERVER "freedb.freedb.org"
> -@@ -136,7 +136,7 @@ typedef struct {
> - char *disc_category;
> -
> - int fd;
> -- unsigned long disc_id;
> -+ uint32_t disc_id;
> -
> - int disc_length;
> - trackinfo_t *track;
> @@ -611,7 +611,7 @@ static int read_cdrom_frames(cdda_input_plugin_t *this
> return 0;
> }
> @@ -82,21 +73,3 @@ $OpenBSD: patch-src_input_input_cdda_c,v
> scsireq_t req;
> int nblocks = 1;
>
> -@@ -1902,7 +1902,7 @@ static unsigned int _cdda_cddb_sum(int n) {
> - }
> - return ret;
> - }
> --static unsigned long _cdda_calc_cddb_id(cdda_input_plugin_t *this) {
> -+static uint32_t _cdda_calc_cddb_id(cdda_input_plugin_t *this) {
> - int i, tsum = 0;
> -
> - if(this == NULL || (this->cddb.num_tracks <= 0))
> -@@ -1959,7 +1959,7 @@ static void _cdda_cdindex(cdda_input_plugin_t *this, c
> - /*
> - * return cbbd disc id.
> - */
> --static unsigned long _cdda_get_cddb_id(cdda_input_plugin_t *this) {
> -+static uint32_t _cdda_get_cddb_id(cdda_input_plugin_t *this) {
> -
> - if(this == NULL || (this->cddb.num_tracks <= 0))
> - return 0;
> Index: patches/patch-src_input_input_dvd_c
> ===================================================================
> RCS file: /cvs/ports/multimedia/xine-lib/patches/patch-src_input_input_dvd_c,v
> retrieving revision 1.5
> diff -u -p -r1.5 patch-src_input_input_dvd_c
> --- patches/patch-src_input_input_dvd_c 18 Jun 2008 01:26:41 -0000
> 1.5
> +++ patches/patch-src_input_input_dvd_c 8 Jan 2009 06:09:33 -0000
> @@ -1,6 +1,6 @@
> $OpenBSD: patch-src_input_input_dvd_c,v 1.5 2008/06/18 01:26:41 brad Exp $
> ---- src/input/input_dvd.c.orig Sat Jun 14 19:15:00 2008
> -+++ src/input/input_dvd.c Mon Jun 16 02:30:50 2008
> +--- src/input/input_dvd.c.orig Wed Jan 7 11:14:32 2009
> ++++ src/input/input_dvd.c Thu Jan 8 01:02:34 2009
> @@ -116,8 +116,8 @@
> #define DVD_PATH "d:\\"
> #define RDVD_PATH "d:\\"
> @@ -21,7 +21,7 @@ $OpenBSD: patch-src_input_input_dvd_c,v
> if (block != buf->mem) dvdnav_free_cache_block(this->dvdnav, block);
> buf->free_buffer(buf);
> return NULL;
> -@@ -1491,7 +1491,7 @@ static int dvd_plugin_open (input_plugin_t *this_gen)
> +@@ -1494,7 +1494,7 @@ static int dvd_plugin_open (input_plugin_t *this_gen)
> xprintf(this->stream->xine, XINE_VERBOSITY_LOG, _("input_dvd: Error
> opening DVD device\n"));
> _x_message(this->stream, XINE_MSG_READ_ERROR,
> /* FIXME: see FIXME in dvd_parse_try_open() */
> Index: patches/patch-src_input_input_file_c
> ===================================================================
> RCS file:
> /cvs/ports/multimedia/xine-lib/patches/patch-src_input_input_file_c,v
> retrieving revision 1.3
> diff -u -p -r1.3 patch-src_input_input_file_c
> --- patches/patch-src_input_input_file_c 15 Jan 2008 00:36:46 -0000
> 1.3
> +++ patches/patch-src_input_input_file_c 8 Jan 2009 06:09:33 -0000
> @@ -1,7 +1,7 @@
> $OpenBSD: patch-src_input_input_file_c,v 1.3 2008/01/15 00:36:46 jakemsr Exp
> $
> ---- src/input/input_file.c.orig Tue Jan 1 08:30:08 2008
> -+++ src/input/input_file.c Wed Jan 9 01:58:02 2008
> -@@ -200,7 +200,7 @@ static buf_element_t *file_plugin_read_block (input_pl
> +--- src/input/input_file.c.orig Wed Jan 7 11:14:32 2009
> ++++ src/input/input_file.c Thu Jan 8 01:02:34 2009
> +@@ -208,7 +208,7 @@ static buf_element_t *file_plugin_read_block (input_pl
> xine_log (this->stream->xine, XINE_LOG_MSG,
> _("input_file: read error (%s)\n"), strerror(errno));
> _x_message(this->stream, XINE_MSG_READ_ERROR,
> @@ -10,7 +10,7 @@ $OpenBSD: patch-src_input_input_file_c,v
> }
> buf->free_buffer (buf);
> buf = NULL;
> -@@ -356,11 +356,11 @@ static int file_plugin_open (input_plugin_t *this_gen
> +@@ -364,11 +364,11 @@ static int file_plugin_open (input_plugin_t *this_gen
>
> if (this->fh == -1) {
> if (errno == EACCES) {
> @@ -24,7 +24,7 @@ $OpenBSD: patch-src_input_input_file_c,v
> xine_log (this->stream->xine, XINE_LOG_MSG,
> _("input_file: File not found: >%s<\n"), this->mrl);
> }
> -@@ -397,7 +397,7 @@ static int file_plugin_open (input_plugin_t *this_gen
> +@@ -405,7 +405,7 @@ static int file_plugin_open (input_plugin_t *this_gen
> #endif
>
> if (file_plugin_get_length (this_gen) == 0) {
> Index: patches/patch-src_input_input_http_c
> ===================================================================
> RCS file:
> /cvs/ports/multimedia/xine-lib/patches/patch-src_input_input_http_c,v
> retrieving revision 1.5
> diff -u -p -r1.5 patch-src_input_input_http_c
> --- patches/patch-src_input_input_http_c 2 Jul 2008 01:02:42 -0000
> 1.5
> +++ patches/patch-src_input_input_http_c 8 Jan 2009 06:09:33 -0000
> @@ -1,6 +1,6 @@
> $OpenBSD: patch-src_input_input_http_c,v 1.5 2008/07/02 01:02:42 brad Exp $
> ---- src/input/input_http.c.orig Wed Jun 25 09:04:09 2008
> -+++ src/input/input_http.c Sun Jun 29 20:54:12 2008
> +--- src/input/input_http.c.orig Wed Jan 7 11:14:32 2009
> ++++ src/input/input_http.c Thu Jan 8 01:02:34 2009
> @@ -409,7 +409,7 @@ static off_t http_plugin_read_int (http_input_plugin_t
>
> error:
> @@ -10,7 +10,7 @@ $OpenBSD: patch-src_input_input_http_c,v
> xine_log (this->stream->xine, XINE_LOG_MSG, _("input_http: read error
> %d\n"), errno);
> return read_bytes;
> }
> -@@ -671,7 +671,7 @@ static int http_plugin_open (input_plugin_t *this_gen
> +@@ -679,7 +679,7 @@ static int http_plugin_open (input_plugin_t *this_gen
> if (http_plugin_basicauth (this_class->proxyuser,
> this_class->proxypassword,
> this->proxyauth, BUFSIZE)) {
> @@ -19,7 +19,7 @@ $OpenBSD: patch-src_input_input_http_c,v
> return 0;
> }
> }
> -@@ -680,7 +680,7 @@ static int http_plugin_open (input_plugin_t *this_gen
> +@@ -688,7 +688,7 @@ static int http_plugin_open (input_plugin_t *this_gen
>
> if (!_x_parse_url(this->mrl, &this->proto, &this->host, &this->port,
> &this->user, &this->password, &this->uri)) {
> @@ -28,7 +28,7 @@ $OpenBSD: patch-src_input_input_http_c,v
> return 0;
> }
> use_proxy = use_proxy && _x_use_proxy(this_class, this->host);
> -@@ -690,7 +690,7 @@ static int http_plugin_open (input_plugin_t *this_gen
> +@@ -698,7 +698,7 @@ static int http_plugin_open (input_plugin_t *this_gen
>
> if (this->user && strlen(this->user)) {
> if (http_plugin_basicauth (this->user, this->password, this->auth,
> BUFSIZE)) {
> @@ -37,7 +37,7 @@ $OpenBSD: patch-src_input_input_http_c,v
> return -1;
> }
> }
> -@@ -744,7 +744,7 @@ static int http_plugin_open (input_plugin_t *this_gen
> +@@ -752,7 +752,7 @@ static int http_plugin_open (input_plugin_t *this_gen
> } while ((res == XIO_TIMEOUT) && (progress <= 100000));
>
> if (res != XIO_READY) {
> @@ -46,7 +46,7 @@ $OpenBSD: patch-src_input_input_http_c,v
> return -3;
> }
> }
> -@@ -784,7 +784,7 @@ static int http_plugin_open (input_plugin_t *this_gen
> +@@ -792,7 +792,7 @@ static int http_plugin_open (input_plugin_t *this_gen
> "\015\012",
> VERSION);
> if (_x_io_tcp_write (this->stream, this->fh, this->buf, buflen) !=
> buflen) {
> @@ -55,7 +55,7 @@ $OpenBSD: patch-src_input_input_http_c,v
> xprintf(this_class->xine, XINE_VERBOSITY_DEBUG, "input_http: couldn't
> send request\n");
> return -4;
> }
> -@@ -828,7 +828,7 @@ static int http_plugin_open (input_plugin_t *this_gen
> +@@ -836,7 +836,7 @@ static int http_plugin_open (input_plugin_t *this_gen
> (sscanf(this->buf, "ICY %d %50[^\015\012]", /* icecast 1 ? */
> &httpcode, httpstatus) != 2)
> ) {
> @@ -64,7 +64,7 @@ $OpenBSD: patch-src_input_input_http_c,v
> xine_log (this->stream->xine, XINE_LOG_MSG,
> _("input_http: invalid http answer\n"));
> return -6;
> -@@ -839,20 +839,20 @@ static int http_plugin_open (input_plugin_t *this_gen
> +@@ -847,20 +847,20 @@ static int http_plugin_open (input_plugin_t *this_gen
> _("input_http: 3xx redirection: >%d %s<\n"),
> httpcode, httpstatus);
> } else if (httpcode == 404) {
> @@ -88,7 +88,7 @@ $OpenBSD: patch-src_input_input_http_c,v
> xine_log (this->stream->xine, XINE_LOG_MSG,
> _("input_http: http status not 2xx: >%d %s<\n"),
> httpcode, httpstatus);
> -@@ -949,7 +949,7 @@ static int http_plugin_open (input_plugin_t *this_gen
> +@@ -957,7 +957,7 @@ static int http_plugin_open (input_plugin_t *this_gen
> } else
> len ++;
> if ( len >= BUFSIZE ) {
> Index: patches/patch-src_input_input_net_c
> ===================================================================
> RCS file: /cvs/ports/multimedia/xine-lib/patches/patch-src_input_input_net_c,v
> retrieving revision 1.2
> diff -u -p -r1.2 patch-src_input_input_net_c
> --- patches/patch-src_input_input_net_c 15 Jan 2008 00:36:46 -0000
> 1.2
> +++ patches/patch-src_input_input_net_c 8 Jan 2009 06:09:33 -0000
> @@ -1,7 +1,7 @@
> $OpenBSD: patch-src_input_input_net_c,v 1.2 2008/01/15 00:36:46 jakemsr Exp $
> ---- src/input/input_net.c.orig Tue Jan 1 08:30:08 2008
> -+++ src/input/input_net.c Wed Jan 9 01:50:22 2008
> -@@ -272,7 +272,7 @@ static off_t net_plugin_read (input_plugin_t *this_gen
> +--- src/input/input_net.c.orig Wed Jan 7 11:14:32 2009
> ++++ src/input/input_net.c Thu Jan 8 01:02:35 2009
> +@@ -275,7 +275,7 @@ static off_t net_plugin_read (input_plugin_t *this_gen
> xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG, "input_net: got %"
> PRIdMAX " bytes (%" PRIdMAX "/%" PRIdMAX " bytes read)\n", (intmax_t)n,
> (intmax_t)total, (intmax_t)len);
>
> if (n < 0) {
> Index: patches/patch-src_input_input_stdin_fifo_c
> ===================================================================
> RCS file:
> /cvs/ports/multimedia/xine-lib/patches/patch-src_input_input_stdin_fifo_c,v
> retrieving revision 1.2
> diff -u -p -r1.2 patch-src_input_input_stdin_fifo_c
> --- patches/patch-src_input_input_stdin_fifo_c 15 Jan 2008 00:36:46
> -0000 1.2
> +++ patches/patch-src_input_input_stdin_fifo_c 8 Jan 2009 06:09:33
> -0000
> @@ -1,7 +1,7 @@
> $OpenBSD: patch-src_input_input_stdin_fifo_c,v 1.2 2008/01/15 00:36:46
> jakemsr Exp $
> ---- src/input/input_stdin_fifo.c.orig Tue Jan 1 08:30:08 2008
> -+++ src/input/input_stdin_fifo.c Wed Jan 9 01:50:22 2008
> -@@ -104,7 +104,7 @@ static off_t stdin_plugin_read (input_plugin_t *this_g
> +--- src/input/input_stdin_fifo.c.orig Wed Jan 7 11:14:32 2009
> ++++ src/input/input_stdin_fifo.c Thu Jan 8 01:02:35 2009
> +@@ -106,7 +106,7 @@ static off_t stdin_plugin_read (input_plugin_t *this_g
> lprintf ("got %"PRId64" bytes (%"PRId64"/%"PRId64" bytes read)\n",
> n,total,len);
>
> if (n < 0) {
> Index: patches/patch-src_input_mms_c
> ===================================================================
> RCS file: /cvs/ports/multimedia/xine-lib/patches/patch-src_input_mms_c,v
> retrieving revision 1.6
> diff -u -p -r1.6 patch-src_input_mms_c
> --- patches/patch-src_input_mms_c 18 Jun 2008 01:26:41 -0000 1.6
> +++ patches/patch-src_input_mms_c 8 Jan 2009 06:09:33 -0000
> @@ -1,6 +1,6 @@
> $OpenBSD: patch-src_input_mms_c,v 1.6 2008/06/18 01:26:41 brad Exp $
> ---- src/input/mms.c.orig Sat Jun 14 19:15:00 2008
> -+++ src/input/mms.c Mon Jun 16 02:30:50 2008
> +--- src/input/mms.c.orig Sun Jan 4 10:47:28 2009
> ++++ src/input/mms.c Thu Jan 8 01:06:20 2009
> @@ -48,6 +48,7 @@
> #include <iconv.h>
> #include <locale.h>
> @@ -13,7 +13,7 @@ $OpenBSD: patch-src_input_mms_c,v 1.6 20
>
> #ifdef USE_ICONV
> static iconv_t string_utf16_open() {
> -- return iconv_open("UTF-16LE", nl_langinfo(CODESET));
> +- return iconv_open("UTF-16LE", "UTF-8");
> + return iconv_open("UTF-16LE", locale_charset());
> }
>
> Index: patches/patch-src_libw32dll_wine_Makefile_in
> ===================================================================
> RCS file:
> /cvs/ports/multimedia/xine-lib/patches/patch-src_libw32dll_wine_Makefile_in,v
> retrieving revision 1.11
> diff -u -p -r1.11 patch-src_libw32dll_wine_Makefile_in
> --- patches/patch-src_libw32dll_wine_Makefile_in 2 Jul 2008 01:02:42
> -0000 1.11
> +++ patches/patch-src_libw32dll_wine_Makefile_in 8 Jan 2009 06:09:34
> -0000
> @@ -1,6 +1,6 @@
> $OpenBSD: patch-src_libw32dll_wine_Makefile_in,v 1.11 2008/07/02 01:02:42
> brad Exp $
> ---- src/libw32dll/wine/Makefile.in.orig Sun Jun 29 13:13:11 2008
> -+++ src/libw32dll/wine/Makefile.in Sun Jun 29 20:54:14 2008
> +--- src/libw32dll/wine/Makefile.in.orig Wed Jan 7 11:16:59 2009
> ++++ src/libw32dll/wine/Makefile.in Thu Jan 8 01:02:35 2009
> @@ -61,7 +61,7 @@ LTLIBRARIES = $(noinst_LTLIBRARIES)
> libwine_la_LIBADD =
> am_libwine_la_OBJECTS = afl.lo driver.lo elfdll.lo ext.lo \
> @@ -10,7 +10,7 @@ $OpenBSD: patch-src_libw32dll_wine_Makef
> libwine_la_OBJECTS = $(am_libwine_la_OBJECTS)
> @have_w32dll_t...@am_libwine_la_rpath =
> DEFAULT_INCLUDES = -...@am__isrc@ -I$(top_builddir)/include
> -@@ -429,6 +429,7 @@ libwine_la_SOURCES = \
> +@@ -431,6 +431,7 @@ libwine_la_SOURCES = \
> registry.c \
> vfl.c \
> win32.c \
> @@ -18,7 +18,7 @@ $OpenBSD: patch-src_libw32dll_wine_Makef
> stubs.s \
> wrapper.S
>
> -@@ -534,6 +535,7 @@ distclean-compile:
> +@@ -536,6 +537,7 @@ distclean-compile:
> @AMDEP_TRUE@@am__include@ @am__qu...@./$(DEPDIR)/vfl....@am__quote@
> @AMDEP_TRUE@@am__include@ @am__qu...@./$(DEPDIR)/win32....@am__quote@
> @AMDEP_TRUE@@am__include@ @am__qu...@./$(DEPDIR)/wrapper....@am__quote@
> Index: patches/patch-src_post_deinterlace_Makefile_in
> ===================================================================
> RCS file:
> /cvs/ports/multimedia/xine-lib/patches/patch-src_post_deinterlace_Makefile_in,v
> retrieving revision 1.4
> diff -u -p -r1.4 patch-src_post_deinterlace_Makefile_in
> --- patches/patch-src_post_deinterlace_Makefile_in 2 Jul 2008 01:02:42
> -0000 1.4
> +++ patches/patch-src_post_deinterlace_Makefile_in 8 Jan 2009 06:09:35
> -0000
> @@ -1,7 +1,7 @@
> $OpenBSD: patch-src_post_deinterlace_Makefile_in,v 1.4 2008/07/02 01:02:42
> brad Exp $
> ---- src/post/deinterlace/Makefile.in.orig Sun Jun 29 13:13:13 2008
> -+++ src/post/deinterlace/Makefile.in Sun Jun 29 20:54:14 2008
> -@@ -425,7 +425,7 @@ xinepostdir = $(XINE_PLUGINDIR)/post
> +--- src/post/deinterlace/Makefile.in.orig Wed Jan 7 11:17:01 2009
> ++++ src/post/deinterlace/Makefile.in Thu Jan 8 01:02:35 2009
> +@@ -427,7 +427,7 @@ xinepostdir = $(XINE_PLUGINDIR)/post
> vidixdir = $(XINE_PLUGINDIR)/vidix
> SUBDIRS = plugins
> EXTRA_DIST =
> Index: patches/patch-src_post_deinterlace_plugins_Makefile_in
> ===================================================================
> RCS file:
> /cvs/ports/multimedia/xine-lib/patches/patch-src_post_deinterlace_plugins_Makefile_in,v
> retrieving revision 1.4
> diff -u -p -r1.4 patch-src_post_deinterlace_plugins_Makefile_in
> --- patches/patch-src_post_deinterlace_plugins_Makefile_in 2 Jul 2008
> 01:02:42 -0000 1.4
> +++ patches/patch-src_post_deinterlace_plugins_Makefile_in 8 Jan 2009
> 06:09:35 -0000
> @@ -1,7 +1,7 @@
> $OpenBSD: patch-src_post_deinterlace_plugins_Makefile_in,v 1.4 2008/07/02
> 01:02:42 brad Exp $
> ---- src/post/deinterlace/plugins/Makefile.in.orig Sun Jun 29 13:13:13 2008
> -+++ src/post/deinterlace/plugins/Makefile.in Sun Jun 29 20:54:14 2008
> -@@ -857,7 +857,7 @@ maintainer-clean-generic:
> +--- src/post/deinterlace/plugins/Makefile.in.orig Wed Jan 7 11:17:01 2009
> ++++ src/post/deinterlace/plugins/Makefile.in Thu Jan 8 01:02:35 2009
> +@@ -859,7 +859,7 @@ maintainer-clean-generic:
> -rm -f Makefile.in
>
> # Avoid "can't find register" failures with -O0, -O2, -O3 (gcc 4.0)
> Index: patches/patch-src_xine-engine_Makefile_in
> ===================================================================
> RCS file:
> /cvs/ports/multimedia/xine-lib/patches/patch-src_xine-engine_Makefile_in,v
> retrieving revision 1.7
> diff -u -p -r1.7 patch-src_xine-engine_Makefile_in
> --- patches/patch-src_xine-engine_Makefile_in 2 Jul 2008 01:02:42 -0000
> 1.7
> +++ patches/patch-src_xine-engine_Makefile_in 8 Jan 2009 06:09:33 -0000
> @@ -1,7 +1,7 @@
> $OpenBSD: patch-src_xine-engine_Makefile_in,v 1.7 2008/07/02 01:02:42 brad
> Exp $
> ---- src/xine-engine/Makefile.in.orig Sun Jun 29 13:13:17 2008
> -+++ src/xine-engine/Makefile.in Sun Jun 29 20:54:14 2008
> -@@ -434,7 +434,7 @@ libxine_la_DEPENDENCIES = $(XINEUTILS_LIB) \
> +--- src/xine-engine/Makefile.in.orig Wed Jan 7 11:17:04 2009
> ++++ src/xine-engine/Makefile.in Thu Jan 8 01:02:35 2009
> +@@ -436,7 +436,7 @@ libxine_la_DEPENDENCIES = $(XINEUTILS_LIB) \
>
> libxine_la_LIBADD = $(PTHREAD_LIBS) $(DYNAMIC_LD_LIBS) $(LTLIBINTL)
> $(ZLIB_LIBS) \
> -lm $(XINEUTILS_LIB) $(LTLIBICONV) $(FT2_LIBS)
> $(FONTCONFIG_LIBS) \
> Index: patches/patch-src_xine-engine_buffer_h
> ===================================================================
> RCS file: patches/patch-src_xine-engine_buffer_h
> diff -N patches/patch-src_xine-engine_buffer_h
> --- patches/patch-src_xine-engine_buffer_h 21 Aug 2008 21:56:49 -0000
> 1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,12 +0,0 @@
> -$OpenBSD: patch-src_xine-engine_buffer_h,v 1.1 2008/08/21 21:56:49 brad Exp $
> ---- src/xine-engine/buffer.h.orig Thu Aug 21 12:31:23 2008
> -+++ src/xine-engine/buffer.h Thu Aug 21 12:35:07 2008
> -@@ -676,7 +676,7 @@ void _x_bmiheader_le2me( xine_bmiheader *bih ) XINE_PR
> - /* convert xine_waveformatex struct from little endian */
> - void _x_waveformatex_le2me( xine_waveformatex *wavex ) XINE_PROTECTED;
> -
> --static inline _x_is_fourcc(void *ptr, void *tag) {
> -+static __inline int _x_is_fourcc(void *ptr, void *tag) {
> - return memcmp(ptr, tag, 4) == 0;
> - }
> -
>
> --
> This message has been scanned for viruses and
> dangerous content by MailScanner, and is
> believed to be clean.
>