diff options
author | abs <abs@pkgsrc.org> | 2006-12-08 09:24:26 +0000 |
---|---|---|
committer | abs <abs@pkgsrc.org> | 2006-12-08 09:24:26 +0000 |
commit | 2794ccb3f2570ae5e598f4a72ca8d1f4cf7373d1 (patch) | |
tree | 8960948704d7d6d10ab72feb77d92a4884d20f3b /multimedia/xine-lib | |
parent | d63a22903cfe45989f50e71941114184117e23e7 (diff) | |
download | pkgsrc-2794ccb3f2570ae5e598f4a72ca8d1f4cf7373d1.tar.gz |
Update xine-lib to 1.1.3
* Security fixes:
- Heap overflow in libmms (related to CVE-2006-2200)
- Buffer overrun in Real Media input plugin. [bug #1603458]
Thanks to Roland Kay for reporting and JW for the patch.
* Update build system to support x86 Darwin setups, and merge patches to
support Darwin OS better.
* Replace custom ALSA check with pkg-config check, and make sure 0.9.0 is
the requried version.
* When the compiler supports it, enable hidden visibility for all the
plugins to export only the plugin info entry (and eventual needed
special functions), to replace the min-symtab option that wasn't working.
* Add "m4b" to the list of supported file extensions for the Qt demuxer, to
allow playing (unprotected) audiobooks in AAC format.
* Remove --disable-fpic hack, prefer using --without-pic instead.
* Add new output plugin: PulseAudio (based on PolypAudio plugin), that uses
0.9 API (PulseAudio is PolypAudio renamed).
* Remove PolypAudio plugin, latest version supported 0.7 API that is no more
supported by upstream, and it's replaced by PulseAudio.
* Allow 0 for DVD title/chapter (navigation or full title).
* New experimental JACK audio driver.
* Fix switch from alsa/dmix 2.0 to 5.1 [bug #1226595]
* Don't use proxy for localhost connection. [bug #1553633]
* Use mmap() to open local files if available.
* Use pkg-config to look for external FFmpeg.
* Allow FFmpeg to play MP3s in case MAD is not present.
* Reduce the dead time when trying to connect to dead hosts, by falling back
to non-blocking sockets on the last address found for an host, and allowing
users to provide a connection timeout. [bug #1550844]
* Return the correct error message to frontends when a file is inaccessible or
the network connection is broken. [bug #1550763]
* Support libcaca 0.99, thanks to cjacker huang.
* Fix crash on video-only WMV streams. [bug #1564598]
* Report audio stream on Shorten files (required for Amarok to play them).
* Optionally use fontconfig to look up fonts to use for OSD. [bug #1551042]
* Prefer FreeType2 rendered fonts to bitmap fonts.
* Stone age platforms update
* Enabled TrueSpeech codec
* New X11 visual type: xine-lib may now use frontend's mutex/lock mechanism
instead of XLockDisplay/XUnlockDisplay.
* Allow playing of OggFlac files. [bug #1590690]
* Allow playing FLAC files with an ID3 tag at the start.
* Fix some crashes caused by MP3 files (and possibly others) being
misdetected as AAC.
Diffstat (limited to 'multimedia/xine-lib')
22 files changed, 219 insertions, 255 deletions
diff --git a/multimedia/xine-lib/Makefile b/multimedia/xine-lib/Makefile index 0cd6ebfea99..dbe911d7968 100644 --- a/multimedia/xine-lib/Makefile +++ b/multimedia/xine-lib/Makefile @@ -1,9 +1,8 @@ -# $NetBSD: Makefile,v 1.41 2006/08/14 12:15:38 joerg Exp $ +# $NetBSD: Makefile,v 1.42 2006/12/08 09:24:26 abs Exp $ .include "Makefile.common" COMMENT= Multimedia player library -PKGREVISION= 1 BUILDLINK_API_DEPENDS.vcdimager+= vcdimager>=0.7.20nb1 diff --git a/multimedia/xine-lib/Makefile.common b/multimedia/xine-lib/Makefile.common index 3220d6f8a80..ec48a03c7df 100644 --- a/multimedia/xine-lib/Makefile.common +++ b/multimedia/xine-lib/Makefile.common @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.common,v 1.35 2006/08/06 10:36:50 wiz Exp $ +# $NetBSD: Makefile.common,v 1.36 2006/12/08 09:24:26 abs Exp $ # DISTNAME= xine-lib-${XINE_LIB_VER} @@ -6,12 +6,11 @@ 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.2 +XINE_LIB_VER= 1.1.3 PLIST_SUBST+= XINE_LIB_VER=${XINE_LIB_VER:Q} DISTINFO_FILE= ${.CURDIR}/../../multimedia/xine-lib/distinfo @@ -23,7 +22,7 @@ USE_LIBTOOL= YES LIBTOOL_OVERRIDE= libtool libtool-nofpic PKGCONFIG_OVERRIDE= misc/libxine.pc.in USE_TOOLS+= autoconf gmake msgfmt pkg-config -WRKSRC= ${WRKDIR}/xine-lib-1.1.2 +WRKSRC= ${WRKDIR}/xine-lib-1.1.3 CONFIGURE_ARGS+= --with-w32-path='${PREFIX}/lib/win32' CONFIGURE_ARGS+= --without-external-ffmpeg --disable-ffmpegtest diff --git a/multimedia/xine-lib/distinfo b/multimedia/xine-lib/distinfo index eaf87a8fdf1..4c88876f950 100644 --- a/multimedia/xine-lib/distinfo +++ b/multimedia/xine-lib/distinfo @@ -1,33 +1,31 @@ -$NetBSD: distinfo,v 1.37 2006/09/29 21:20:04 dmcmahill Exp $ +$NetBSD: distinfo,v 1.38 2006/12/08 09:24:26 abs Exp $ -SHA1 (xine-lib-1.1.2.tar.bz2) = 07e454e2287e34414b598faf78ae6d8ab8ffbb69 -RMD160 (xine-lib-1.1.2.tar.bz2) = 21322d6d7e085237926741495d70f5ce7764910b -Size (xine-lib-1.1.2.tar.bz2) = 6457108 bytes -SHA1 (patch-aa) = 8218d6415878fb99ebf533eb9d60c9ffebbed274 -SHA1 (patch-ab) = c83f1826eabbc53e868ea4a532efda7f7ac8a4b7 -SHA1 (patch-ac) = 7959d6d3599c9debe79b1b4a5749b6af714588a0 +SHA1 (xine-lib-1.1.3.tar.gz) = c0886910ddb1afa1a72572decf12c0251bba40bf +RMD160 (xine-lib-1.1.3.tar.gz) = 8e28638385ea48e7d4d4d702573ca92c4eca77c8 +Size (xine-lib-1.1.3.tar.gz) = 8508884 bytes +SHA1 (patch-aa) = e09d34a121080b03bc67b2d8a3ca27463b771acc +SHA1 (patch-ab) = ef13b60c2bea54f354acf1b2d70c04594dac36c9 +SHA1 (patch-ac) = e3c1a5eeb7c70e3a69035ccd667fc2115eec4969 SHA1 (patch-ad) = 94aaac03f74c72a1ca753d1320aac07d1bb8a846 -SHA1 (patch-ae) = 401dccaa31f391746f35a574d4abc71154d001ae -SHA1 (patch-ag) = 64cee767f92802013813d1c545e5a44d43c7a8cd -SHA1 (patch-ah) = a6e62210766a9f9f518413940eac5e857e1aabc4 -SHA1 (patch-ai) = f51423976056637f92366d9ccee6b97837ffc934 +SHA1 (patch-ae) = faabcf1d34deee5d47ded9b210b37929f2635e2e +SHA1 (patch-ag) = 3dcd17f807d21b19caed7b9d72b7437332b34fad +SHA1 (patch-ah) = ba408237d4a717cc91b5d06ede425048914a9a1f +SHA1 (patch-ai) = f0b33c1a36082445a86bcf71e07a6210aa21b7dc SHA1 (patch-aj) = 4215c3bc37cf636e563a509f9a391081ed8e773b SHA1 (patch-ak) = 744f59d1b9e40983f25bb532db1a5d4e92be6fbe SHA1 (patch-al) = 9e3ad86a7d7f32e58de157fa37141138af10838e SHA1 (patch-an) = ba1ba429c13d3695cca5df4f00dd380aa98f03fa -SHA1 (patch-ao) = 1bc8c9f9a0a2c711381892dcc0dafef1fb16054a -SHA1 (patch-ap) = aaf63024c1049c1f2175d9974367a6b84ac3028f +SHA1 (patch-ao) = eabc0d33210aeb1c8469e761471e5bb8336c89b7 +SHA1 (patch-ap) = c84a3ca97a4615a1b389f49847c0eefe0ee0478f SHA1 (patch-as) = a0a93a256589e87a66eef31494441aa1b200f834 -SHA1 (patch-av) = 635ec9b332cacc02882822d8f78871f1d9377d27 +SHA1 (patch-av) = ff076273416fa701da325aa5060503ecb16a9ed1 SHA1 (patch-aw) = 78ab44197a6b9f85e4b272d522ce254de4d557dc -SHA1 (patch-az) = e2d392fb295d51d90dc5fa6b672bcac9dcd5a04f -SHA1 (patch-bb) = 23b387a4bd1877081eeddb5a2ecdd2b697eb224f -SHA1 (patch-bd) = 5352293022da25b08598d42655af2524ff99b28a -SHA1 (patch-be) = d076593d15c58762e84f53964fb90c61873e7a45 -SHA1 (patch-bg) = aa1a8960d597113825993be59db45644a620e99d -SHA1 (patch-bh) = 443e5f542c6d3f5162e5c9c34b0d4311f9138a5a +SHA1 (patch-az) = baa10413ae31ad5309180c662da774d64f614b49 +SHA1 (patch-bd) = 2f0f39512d185377cca1ebaf4e891d518a1c14d0 +SHA1 (patch-be) = 04eb23f58cb96dab4b7c7120092364915ebaf330 +SHA1 (patch-bg) = 83f97ad77c8295fcaf78a7ea7fe9c4f87efd80d0 SHA1 (patch-cb) = 08d9920022988d2764d941cfa8b1aa5602a0ec81 SHA1 (patch-cd) = a080c745d08ded46db7c1173fe55350c1eb9ff33 -SHA1 (patch-da) = 7cb3cb60fd47720f081a101f80f9b53da7696c78 -SHA1 (patch-db) = 07214343b63a5e3bad774e8a18b3d8533526b97d -SHA1 (patch-dc) = 218fbda52fffecb02993695116fcca0fbf65346e +SHA1 (patch-da) = d488fb2a1e454a4338bf599674035f9db09d8682 +SHA1 (patch-db) = 3ad4ca6f43a379b251211477972cd6d34b1f821a +SHA1 (patch-dc) = 11c4212029e67f22796e57706b42400a0dbcac3a diff --git a/multimedia/xine-lib/patches/patch-aa b/multimedia/xine-lib/patches/patch-aa index e347569f249..cadd4780abe 100644 --- a/multimedia/xine-lib/patches/patch-aa +++ b/multimedia/xine-lib/patches/patch-aa @@ -1,6 +1,6 @@ -$NetBSD: patch-aa,v 1.4 2005/10/13 10:48:01 jmmv Exp $ +$NetBSD: patch-aa,v 1.5 2006/12/08 09:24:26 abs Exp $ ---- src/xine-engine/video_decoder.c.orig 2005-10-08 15:57:49.000000000 +0200 +--- src/xine-engine/video_decoder.c.orig 2006-12-03 19:28:13.000000000 +0000 +++ src/xine-engine/video_decoder.c @@ -43,6 +43,10 @@ @@ -13,7 +13,7 @@ $NetBSD: patch-aa,v 1.4 2005/10/13 10:48:01 jmmv Exp $ static void update_spu_decoder (xine_stream_t *stream, int type) { -@@ -472,7 +476,9 @@ void _x_video_decoder_init (xine_stream_ +@@ -479,7 +483,9 @@ int _x_video_decoder_init (xine_stream_t } else { pthread_attr_t pth_attrs; @@ -23,7 +23,7 @@ $NetBSD: patch-aa,v 1.4 2005/10/13 10:48:01 jmmv Exp $ int err, num_buffers; /* The fifo size is based on dvd playback where buffers are filled * with 2k of data. With 500 buffers and a typical video data rate -@@ -496,10 +502,12 @@ void _x_video_decoder_init (xine_stream_ +@@ -508,10 +514,12 @@ int _x_video_decoder_init (xine_stream_t stream->spu_track_map_entries = 0; pthread_attr_init(&pth_attrs); diff --git a/multimedia/xine-lib/patches/patch-ab b/multimedia/xine-lib/patches/patch-ab index 0b5a82a218d..80e8dbeea10 100644 --- a/multimedia/xine-lib/patches/patch-ab +++ b/multimedia/xine-lib/patches/patch-ab @@ -1,9 +1,9 @@ -$NetBSD: patch-ab,v 1.3 2005/10/13 10:48:01 jmmv Exp $ +$NetBSD: patch-ab,v 1.4 2006/12/08 09:24:26 abs Exp $ ---- src/xine-engine/audio_decoder.c.orig 2005-10-08 15:57:49.000000000 +0200 +--- src/xine-engine/audio_decoder.c.orig 2006-09-08 22:11:29.000000000 +0100 +++ src/xine-engine/audio_decoder.c -@@ -448,7 +448,9 @@ static void *audio_decoder_loop (void *s - void _x_audio_decoder_init (xine_stream_t *stream) { +@@ -462,7 +462,9 @@ static void *audio_decoder_loop (void *s + int _x_audio_decoder_init (xine_stream_t *stream) { pthread_attr_t pth_attrs; +#ifdef _POSIX_THREAD_PRIORITY_SCHEDULING @@ -12,7 +12,7 @@ $NetBSD: patch-ab,v 1.3 2005/10/13 10:48:01 jmmv Exp $ int err; if (stream->audio_out == NULL) { -@@ -486,10 +488,12 @@ void _x_audio_decoder_init (xine_stream_ +@@ -500,10 +502,12 @@ int _x_audio_decoder_init (xine_stream_t */ pthread_attr_init(&pth_attrs); diff --git a/multimedia/xine-lib/patches/patch-ac b/multimedia/xine-lib/patches/patch-ac index 9f0459159f1..225d40557af 100644 --- a/multimedia/xine-lib/patches/patch-ac +++ b/multimedia/xine-lib/patches/patch-ac @@ -1,6 +1,6 @@ -$NetBSD: patch-ac,v 1.2 2004/03/11 17:26:02 jmmv Exp $ +$NetBSD: patch-ac,v 1.3 2006/12/08 09:24:26 abs Exp $ ---- src/audio_out/audio_sun_out.c.orig 2003-12-14 23:13:22.000000000 +0100 +--- src/audio_out/audio_sun_out.c.orig 2006-07-16 17:18:09.000000000 +0100 +++ src/audio_out/audio_sun_out.c @@ -41,6 +41,11 @@ #ifdef __svr4__ @@ -24,7 +24,7 @@ $NetBSD: patch-ac,v 1.2 2004/03/11 17:26:02 jmmv Exp $ enum { RTSC_UNKNOWN = 0, -@@ -113,12 +120,14 @@ typedef struct sun_driver_s { +@@ -114,12 +121,14 @@ typedef struct sun_driver_s { unsigned buf_len; #endif @@ -39,7 +39,7 @@ $NetBSD: patch-ac,v 1.2 2004/03/11 17:26:02 jmmv Exp $ } sun_driver_t; -@@ -128,6 +137,7 @@ typedef struct sun_driver_s { +@@ -129,6 +138,7 @@ typedef struct sun_driver_s { */ static int realtime_samplecounter_available(xine_t *xine, char *dev) { @@ -47,7 +47,7 @@ $NetBSD: patch-ac,v 1.2 2004/03/11 17:26:02 jmmv Exp $ int fd = -1; audio_info_t info; int rtsc_ok = RTSC_DISABLED; -@@ -246,6 +256,9 @@ error: +@@ -247,6 +257,9 @@ error: } return rtsc_ok; @@ -57,7 +57,7 @@ $NetBSD: patch-ac,v 1.2 2004/03/11 17:26:02 jmmv Exp $ } -@@ -429,7 +442,9 @@ static int ao_sun_open(ao_driver_t *this +@@ -430,7 +443,9 @@ static int ao_sun_open(ao_driver_t *this this->mode = mode; this->input_sample_rate = rate; @@ -67,7 +67,7 @@ $NetBSD: patch-ac,v 1.2 2004/03/11 17:26:02 jmmv Exp $ /* * open audio device -@@ -461,6 +476,9 @@ static int ao_sun_open(ao_driver_t *this +@@ -462,6 +477,9 @@ static int ao_sun_open(ao_driver_t *this info.play.sample_rate = this->input_sample_rate; info.play.eof = 0; info.play.samples = 0; @@ -77,7 +77,7 @@ $NetBSD: patch-ac,v 1.2 2004/03/11 17:26:02 jmmv Exp $ this->convert_u8_s8 = 0; -@@ -522,7 +540,9 @@ static int ao_sun_open(ao_driver_t *this +@@ -523,7 +541,9 @@ static int ao_sun_open(ao_driver_t *this return 0; } @@ -87,7 +87,7 @@ $NetBSD: patch-ac,v 1.2 2004/03/11 17:26:02 jmmv Exp $ this->output_sample_rate = info.play.sample_rate; this->num_channels = info.play.channels; -@@ -563,6 +583,7 @@ static int ao_sun_delay(ao_driver_t *thi +@@ -564,6 +584,7 @@ static int ao_sun_delay(ao_driver_t *thi sun_driver_t *this = (sun_driver_t *) this_gen; audio_info_t info; @@ -95,7 +95,7 @@ $NetBSD: patch-ac,v 1.2 2004/03/11 17:26:02 jmmv Exp $ if (ioctl(this->audio_fd, AUDIO_GETINFO, &info) == 0 && (this->frames_in_buffer == 0 || info.play.samples > 0)) { -@@ -609,6 +630,10 @@ static int ao_sun_delay(ao_driver_t *thi +@@ -610,6 +631,10 @@ static int ao_sun_delay(ao_driver_t *thi } #endif } @@ -106,7 +106,7 @@ $NetBSD: patch-ac,v 1.2 2004/03/11 17:26:02 jmmv Exp $ return NOT_REAL_TIME; } -@@ -717,7 +742,9 @@ static int ao_sun_write(ao_driver_t *thi +@@ -718,7 +743,9 @@ static int ao_sun_write(ao_driver_t *thi if (num_written > 0) { int buffered_samples; diff --git a/multimedia/xine-lib/patches/patch-ae b/multimedia/xine-lib/patches/patch-ae index 84808918f03..a01602b14e0 100644 --- a/multimedia/xine-lib/patches/patch-ae +++ b/multimedia/xine-lib/patches/patch-ae @@ -1,8 +1,8 @@ -$NetBSD: patch-ae,v 1.2 2006/06/26 17:13:11 wiz Exp $ +$NetBSD: patch-ae,v 1.3 2006/12/08 09:24:26 abs Exp $ ---- src/input/input_vcd.c.orig 2005-04-20 17:21:08.000000000 +0000 +--- src/input/input_vcd.c.orig 2006-07-10 23:08:16.000000000 +0100 +++ src/input/input_vcd.c -@@ -32,6 +32,7 @@ +@@ -33,6 +33,7 @@ #include <errno.h> #include <fcntl.h> #include <sys/ioctl.h> @@ -10,7 +10,7 @@ $NetBSD: patch-ae,v 1.2 2006/06/26 17:13:11 wiz Exp $ #include <string.h> #ifdef HAVE_LINUX_CDROM_H # include <linux/cdrom.h> -@@ -94,7 +95,7 @@ typedef struct { +@@ -95,7 +96,7 @@ typedef struct { #if defined (__linux__) || defined(__sun) struct cdrom_tochdr tochdr; struct cdrom_tocentry tocent[100]; @@ -19,7 +19,7 @@ $NetBSD: patch-ae,v 1.2 2006/06/26 17:13:11 wiz Exp $ struct ioc_toc_header tochdr; struct cd_toc_entry *tocent; off_t cur_sec; -@@ -119,7 +120,7 @@ typedef struct { +@@ -120,7 +121,7 @@ typedef struct { int cur_track; @@ -28,7 +28,7 @@ $NetBSD: patch-ae,v 1.2 2006/06/26 17:13:11 wiz Exp $ uint8_t cur_min, cur_sec, cur_frame; #endif -@@ -179,7 +180,7 @@ static int input_vcd_read_toc (vcd_input +@@ -180,7 +181,7 @@ static int input_vcd_read_toc (vcd_input return 0; } @@ -37,7 +37,7 @@ $NetBSD: patch-ae,v 1.2 2006/06/26 17:13:11 wiz Exp $ static int input_vcd_read_toc (vcd_input_class_t *this, int fd) { struct ioc_read_toc_entry te; -@@ -395,7 +396,7 @@ static off_t vcd_plugin_read (input_plug +@@ -396,7 +397,7 @@ static off_t vcd_plugin_read (input_plug memcpy (buf, data.data, VCDSECTORSIZE); /* FIXME */ return VCDSECTORSIZE; } @@ -46,7 +46,7 @@ $NetBSD: patch-ae,v 1.2 2006/06/26 17:13:11 wiz Exp $ 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; -@@ -533,7 +534,7 @@ static buf_element_t *vcd_plugin_read_bl +@@ -534,7 +535,7 @@ static buf_element_t *vcd_plugin_read_bl memcpy (buf->mem, data.data, VCDSECTORSIZE); /* FIXME */ return buf; } @@ -55,7 +55,7 @@ $NetBSD: patch-ae,v 1.2 2006/06/26 17:13:11 wiz Exp $ static buf_element_t *vcd_plugin_read_block (input_plugin_t *this_gen, fifo_buffer_t *fifo, off_t nlen) { -@@ -692,7 +693,7 @@ static off_t vcd_plugin_seek (input_plug +@@ -693,7 +694,7 @@ static off_t vcd_plugin_seek (input_plug return offset ; /* FIXME */ } @@ -64,7 +64,7 @@ $NetBSD: patch-ae,v 1.2 2006/06/26 17:13:11 wiz Exp $ static off_t vcd_plugin_seek (input_plugin_t *this_gen, off_t offset, int origin) { -@@ -766,7 +767,7 @@ static off_t vcd_plugin_get_length (inpu +@@ -767,7 +768,7 @@ static off_t vcd_plugin_get_length (inpu return (off_t) 0; } @@ -73,7 +73,7 @@ $NetBSD: patch-ae,v 1.2 2006/06/26 17:13:11 wiz Exp $ 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 ; -@@ -861,6 +862,10 @@ static int vcd_plugin_open (input_plugin +@@ -862,6 +863,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; diff --git a/multimedia/xine-lib/patches/patch-ag b/multimedia/xine-lib/patches/patch-ag index 68eae609c70..122c2500a00 100644 --- a/multimedia/xine-lib/patches/patch-ag +++ b/multimedia/xine-lib/patches/patch-ag @@ -1,15 +1,18 @@ -$NetBSD: patch-ag,v 1.13 2006/09/29 21:20:04 dmcmahill Exp $ +$NetBSD: patch-ag,v 1.14 2006/12/08 09:24:26 abs Exp $ ---- configure.ac.orig 2006-07-09 10:36:29.000000000 -0400 -+++ configure.ac 2006-09-29 12:47:48.000000000 -0400 -@@ -197,5 +197,5 @@ +--- configure.ac.orig 2006-11-05 15:16:56.000000000 +0000 ++++ configure.ac +@@ -221,7 +221,7 @@ AC_ARG_WITH(pthread-prefix, + [pthread_prefix="no"]) case "$host" in - *-*-freebsd*) + *-*-freebsd* | *-*-dragonfly*) if test x"$pthread_prefix" = "xno"; then pthread_prefix="/usr/local" -@@ -463,4 +463,7 @@ + fi +@@ -508,6 +508,9 @@ AC_CHECK_LIB(socket, socket, NET_LIBS="- + AC_CHECK_LIB(nsl, gethostbyname, NET_LIBS="-lnsl $NET_LIBS",) AC_SUBST(NET_LIBS) +WINE_LIBS="" @@ -17,43 +20,44 @@ $NetBSD: patch-ag,v 1.13 2006/09/29 21:20:04 dmcmahill Exp $ +AC_SUBST(WINE_LIBS) dnl --------------------------------------------- -@@ -567,5 +570,5 @@ - [with_v4l=${enableval}], [with_v4l=yes]) - --if test "x$with_v4l" == "xyes"; then -+if test "x$with_v4l" = "xyes"; then - AC_CHECK_HEADER(linux/videodev.h, have_v4l=yes,) - else -@@ -654,5 +657,5 @@ + dnl socklen_t +@@ -698,7 +701,7 @@ XXMC_LIBS="-L$xxmc_path -l$xxmc_stub" + AC_MSG_CHECKING(whether to enable the xxmc plugin with vld extensions) AC_MSG_RESULT() dnl Check if vld "extended" XvMC is available -if test x$xxmc_stub == "xXvMCW" && test x$ac_have_xv == "xyes"; then +if test x$xxmc_stub = "xXvMCW" && test x$ac_have_xv = "xyes"; then AC_CHECK_LIB($xxmc_stub, XvMCPutSlice, ac_have_xxmc="yes", -@@ -684,5 +687,5 @@ + [ac_have_xxmc="no" +@@ -728,7 +731,7 @@ if test x$ac_have_xxmc = "xyes"; then + fi dnl Try fallback to standard XvMC if vld failed if test x$ac_have_xxmc = "xno"; then - if test x$xxmc_stub == "xXvMCW"; then + if test x$xxmc_stub = "xXvMCW"; then AC_CHECK_LIB($xxmc_stub, XvMCCreateContext, ac_have_xxmc="yes", -@@ -738,5 +741,5 @@ + [ac_have_xxmc="no" +@@ -782,7 +785,7 @@ saved_libs="$LIBS" + XVMC_LIBS="-L$xvmc_path -l$xvmc_stub" AC_MSG_CHECKING(whether to enable the xvmc plugin) AC_MSG_RESULT() -if test x$xvmc_stub == "xXvMCW"; then +if test x$xvmc_stub = "xXvMCW"; then AC_CHECK_LIB($xvmc_stub, XvMCCreateContext, ac_have_xvmc="yes", -@@ -783,6 +786,5 @@ - if test "x$with_xinerama" = "xyes"; then - AC_CHECK_LIB(Xinerama, XineramaQueryExtension, -- [X_LIBS="$X_LIBS -lXinerama" -- AC_DEFINE(HAVE_XINERAMA,1,[Define this if you have libXinerama installed]) -+ [AC_DEFINE(HAVE_XINERAMA,1,[Define this if you have libXinerama installed]) - ac_have_xinerama="yes"],, - [$X_LIBS $X_PRE_LIBS -lXext $X_EXTRA_LIBS]) -@@ -1294,8 +1296,19 @@ + [ac_have_xvmc="no" +@@ -833,7 +836,6 @@ if test "x$enable_xinerama" != "xno"; th + ]) + if test "x$ac_have_xinerama" = "xyes"; then + AC_DEFINE(HAVE_XINERAMA,1,[Define this if you have libXinerama installed]) +- X_LIBS="${X_LIBS} ${XINERAMA_LIBS}" + fi + else + ac_have_xinerama=no +@@ -1325,10 +1327,21 @@ AC_ARG_ENABLE([oss], + [with_oss=$enableval], [with_oss=yes]) if test "x$with_oss" = "xyes"; then + @@ -73,14 +77,18 @@ $NetBSD: patch-ag,v 1.13 2006/09/29 21:20:04 dmcmahill Exp $ + #include <sys/ioctl.h> #include <soundcard.h> #else -@@ -1312,5 +1325,5 @@ + #include <sys/soundcard.h> +@@ -1343,7 +1356,7 @@ else + have_ossaudio=no fi AM_CONDITIONAL(HAVE_OSS, test x"$have_ossaudio" = "xyes") - +AC_SUBST(OSS_LIBS) dnl --------------------------------------------- -@@ -1393,7 +1406,8 @@ + dnl Alsa support +@@ -1468,9 +1481,10 @@ AC_ARG_ENABLE([gnomevfs], + [with_gnome_vfs=$enableval], [with_gnome_vfs=yes]) if test "x$with_gnome_vfs" = "xyes"; then - PKG_CHECK_MODULES(GNOME_VFS, gnome-vfs-2.0, @@ -92,10 +100,13 @@ $NetBSD: patch-ag,v 1.13 2006/09/29 21:20:04 dmcmahill Exp $ + no_gnome_vfs=yes AC_SUBST(GNOME_VFS_CFLAGS) AC_SUBST(GNOME_VFS_LIBS) -@@ -1743,5 +1757,5 @@ + if test x"$no_gnome_vfs" != "xyes"; then +@@ -1816,7 +1830,7 @@ int has_timeout=sizeof(test.timeout);], + AC_DEFINE([HAVE_WIN32_CDROM], [1], [Define 1 if you have MinGW CD-ROM support]) ;; - freebsd4.*) + freebsd4.* | dragonfly*) AC_DEFINE([HAVE_FREEBSD_CDROM], [1], [Define 1 if you have FreeBSD CD-ROM support]) + ;; diff --git a/multimedia/xine-lib/patches/patch-ah b/multimedia/xine-lib/patches/patch-ah index c6500d99aab..cbba2c1ef56 100644 --- a/multimedia/xine-lib/patches/patch-ah +++ b/multimedia/xine-lib/patches/patch-ah @@ -1,8 +1,8 @@ -$NetBSD: patch-ah,v 1.2 2006/06/26 17:13:11 wiz Exp $ +$NetBSD: patch-ah,v 1.3 2006/12/08 09:24:26 abs Exp $ ---- src/xine-engine/video_out.c.orig 2005-04-20 17:21:17.000000000 +0000 +--- src/xine-engine/video_out.c.orig 2006-03-25 01:26:34.000000000 +0000 +++ src/xine-engine/video_out.c -@@ -1769,7 +1769,9 @@ xine_video_port_t *_x_vo_new_port (xine_ +@@ -1848,7 +1848,9 @@ xine_video_port_t *_x_vo_new_port (xine_ this->grab_only = 0; pthread_attr_init(&pth_attrs); diff --git a/multimedia/xine-lib/patches/patch-ai b/multimedia/xine-lib/patches/patch-ai index db3d237c58e..ce6987f9902 100644 --- a/multimedia/xine-lib/patches/patch-ai +++ b/multimedia/xine-lib/patches/patch-ai @@ -1,8 +1,8 @@ -$NetBSD: patch-ai,v 1.2 2005/10/13 10:48:01 jmmv Exp $ +$NetBSD: patch-ai,v 1.3 2006/12/08 09:24:26 abs Exp $ ---- src/xine-engine/audio_out.c.orig 2005-10-08 15:57:49.000000000 +0200 +--- src/xine-engine/audio_out.c.orig 2006-11-04 23:30:14.000000000 +0000 +++ src/xine-engine/audio_out.c -@@ -2103,7 +2103,9 @@ xine_audio_port_t *_x_ao_new_port (xine_ +@@ -2180,7 +2180,9 @@ xine_audio_port_t *_x_ao_new_port (xine_ this->audio_loop_running = 1; pthread_attr_init(&pth_attrs); diff --git a/multimedia/xine-lib/patches/patch-ao b/multimedia/xine-lib/patches/patch-ao index 946edb97f3d..846a053ea3f 100644 --- a/multimedia/xine-lib/patches/patch-ao +++ b/multimedia/xine-lib/patches/patch-ao @@ -1,8 +1,8 @@ -$NetBSD: patch-ao,v 1.10 2006/08/06 10:36:50 wiz Exp $ +$NetBSD: patch-ao,v 1.11 2006/12/08 09:24:26 abs Exp $ ---- src/libw32dll/wine/Makefile.in.orig 2005-10-09 13:28:12.000000000 +0200 +--- src/libw32dll/wine/Makefile.in.orig 2006-12-03 19:41:07.000000000 +0000 +++ src/libw32dll/wine/Makefile.in -@@ -65,7 +65,7 @@ mkinstalldirs = $(install_sh) -d +@@ -62,7 +62,7 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) @@ -11,11 +11,11 @@ $NetBSD: patch-ao,v 1.10 2006/08/06 10:36:50 wiz Exp $ am_libwine_la_OBJECTS = afl.lo driver.lo elfdll.lo ext.lo \ ldt_keeper.lo module.lo pe_image.lo pe_resource.lo resource.lo \ registry.lo vfl.lo win32.lo stubs.lo wrapper.lo -@@ -436,6 +436,7 @@ WAND_CPPFLAGS = @WAND_CPPFLAGS@ - WAND_LDFLAGS = @WAND_LDFLAGS@ +@@ -422,6 +422,7 @@ W32_NO_OPTIMIZE = @W32_NO_OPTIMIZE@ + WAND_CFLAGS = @WAND_CFLAGS@ WAND_LIBS = @WAND_LIBS@ WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ +WINE_LIBS = @WINE_LIBS@ WIN32_FALSE = @WIN32_FALSE@ WIN32_TRUE = @WIN32_TRUE@ - XGETTEXT = @XGETTEXT@ + X11_CFLAGS = @X11_CFLAGS@ diff --git a/multimedia/xine-lib/patches/patch-ap b/multimedia/xine-lib/patches/patch-ap index fb47a5fd0ab..4ef2192eec7 100644 --- a/multimedia/xine-lib/patches/patch-ap +++ b/multimedia/xine-lib/patches/patch-ap @@ -1,6 +1,6 @@ -$NetBSD: patch-ap,v 1.2 2004/03/11 17:26:02 jmmv Exp $ +$NetBSD: patch-ap,v 1.3 2006/12/08 09:24:26 abs Exp $ ---- src/dxr3/Makefile.am.orig 2003-09-13 16:21:09.000000000 +0200 +--- src/dxr3/Makefile.am.orig 2006-07-10 23:08:13.000000000 +0100 +++ src/dxr3/Makefile.am @@ -18,6 +18,9 @@ endif if HAVE_LIBRTE @@ -12,12 +12,12 @@ $NetBSD: patch-ap,v 1.2 2004/03/11 17:26:02 jmmv Exp $ lib_LTLIBRARIES = $(dxr3_modules) -@@ -43,7 +46,7 @@ xineplug_vo_out_dxr3_la_SOURCES = \ +@@ -44,7 +47,7 @@ xineplug_vo_out_dxr3_la_SOURCES = \ dxr3_scr.c \ video_out_dxr3.c -xineplug_vo_out_dxr3_la_LIBADD = $(link_fame) $(link_rte) $(link_x_libs) $(XINE_LIB) +xineplug_vo_out_dxr3_la_LIBADD = $(link_fame) $(link_rte) $(link_xinerama) $(link_x_libs) $(XINE_LIB) + xineplug_vo_out_dxr3_la_CFLAGS = $(VISIBILITY_FLAG) $(AM_CFLAGS) xineplug_vo_out_dxr3_la_LDFLAGS = -avoid-version -module - noinst_HEADERS = \ diff --git a/multimedia/xine-lib/patches/patch-av b/multimedia/xine-lib/patches/patch-av index 0e516d5fcbf..640a2d7b329 100644 --- a/multimedia/xine-lib/patches/patch-av +++ b/multimedia/xine-lib/patches/patch-av @@ -1,6 +1,6 @@ -$NetBSD: patch-av,v 1.2 2006/06/26 17:13:11 wiz Exp $ +$NetBSD: patch-av,v 1.3 2006/12/08 09:24:26 abs Exp $ ---- src/libreal/xine_decoder.c.orig 2004-12-16 13:59:10.000000000 +0000 +--- src/libreal/xine_decoder.c.orig 2006-07-10 23:08:30.000000000 +0100 +++ src/libreal/xine_decoder.c @@ -102,6 +102,15 @@ typedef struct { } rv_init_t; @@ -18,7 +18,7 @@ $NetBSD: patch-av,v 1.2 2006/06/26 17:13:11 wiz Exp $ void *__builtin_vec_new(uint32_t size); void __builtin_vec_delete(void *mem); void __pure_virtual(void); -@@ -627,8 +636,7 @@ static void *init_class (xine_t *xine, v +@@ -654,8 +663,7 @@ static void *init_class (xine_t *xine, v * exported plugin catalog entry */ diff --git a/multimedia/xine-lib/patches/patch-az b/multimedia/xine-lib/patches/patch-az index f9906e8826d..78f95fc1fc9 100644 --- a/multimedia/xine-lib/patches/patch-az +++ b/multimedia/xine-lib/patches/patch-az @@ -1,14 +1,14 @@ -$NetBSD: patch-az,v 1.1 2006/06/30 13:51:40 tron Exp $ +$NetBSD: patch-az,v 1.2 2006/12/08 09:24:26 abs Exp $ ---- src/input/input_http.c 2006-06-30 14:18:35.000000000 +0100 -+++ src/input/input_http.c.orig 2005-07-17 22:49:59.000000000 +0100 -@@ -765,7 +765,8 @@ - printf ("input_http: read...\n"); - */ +--- src/input/input_http.c.orig 2006-11-30 10:54:18.000000000 +0000 ++++ src/input/input_http.c +@@ -789,7 +789,8 @@ static int http_plugin_open (input_plugi + while (!done) { + /* fprintf (stderr, "input_http: read...\n"); */ - if (_x_io_tcp_read (this->stream, this->fh, &this->buf[len], 1) <= 0) { + if (len == sizeof(this->buf) || + _x_io_tcp_read (this->stream, this->fh, &this->buf[len], 1) <= 0) { - return 0; + return -5; } diff --git a/multimedia/xine-lib/patches/patch-bb b/multimedia/xine-lib/patches/patch-bb deleted file mode 100644 index d7ce6d19239..00000000000 --- a/multimedia/xine-lib/patches/patch-bb +++ /dev/null @@ -1,19 +0,0 @@ -$NetBSD: patch-bb,v 1.3 2006/08/06 10:36:50 wiz Exp $ - ---- m4/ffmpeg.m4.orig 2004-12-16 00:57:33.000000000 +0100 -+++ m4/ffmpeg.m4 -@@ -56,14 +56,6 @@ if test x"$external_ffmpeg" != "xno"; th - CPPFLAGS="${FFMPEG_CPPFLAGS} ${ac_save_CPPFLAGS}" - LDFLAGS="${FFMPEG_LDFLAGS} ${ac_save_LDFLAGS}" - -- dnl drop the cache -- for i in "ac_cv_header_avcodec_h" "ac_cv_header_postprocess_h" \ -- "ac_cv_lib_avcodec_pp_get_context" \ -- "ac_cv_lib_postproc_pp_get_context" \ -- "ac_cv_lib_avcodec_register_avcodec"; do -- $as_unset $i || test "${$i+set}" != set || { $i=; export $i; } -- done -- - dnl look for headers - AC_CHECK_HEADER(avcodec.h, , continue) - AC_CHECK_HEADER(postprocess.h, , continue) diff --git a/multimedia/xine-lib/patches/patch-bd b/multimedia/xine-lib/patches/patch-bd index 84fbbe5a3f1..376b32f508c 100644 --- a/multimedia/xine-lib/patches/patch-bd +++ b/multimedia/xine-lib/patches/patch-bd @@ -1,8 +1,8 @@ -$NetBSD: patch-bd,v 1.1 2004/12/23 03:05:53 xtraeme Exp $ +$NetBSD: patch-bd,v 1.2 2006/12/08 09:24:26 abs Exp $ ---- src/audio_out/audio_oss_out.c.orig 2004-12-23 01:13:26.000000000 +0100 -+++ src/audio_out/audio_oss_out.c 2004-12-23 01:15:23.000000000 +0100 -@@ -419,6 +419,7 @@ +--- src/audio_out/audio_oss_out.c.orig 2006-07-16 17:18:09.000000000 +0100 ++++ src/audio_out/audio_oss_out.c +@@ -419,6 +419,7 @@ static int ao_oss_delay(ao_driver_t *thi } this->last_getoptr = info.bytes; break; @@ -10,7 +10,7 @@ $NetBSD: patch-bd,v 1.1 2004/12/23 03:05:53 xtraeme Exp $ case OSS_SYNC_GETODELAY: if (ioctl (this->audio_fd, SNDCTL_DSP_GETODELAY, &bytes_left)) { perror ("audio_oss_out: DSP_GETODELAY ioctl():"); -@@ -429,6 +430,7 @@ +@@ -429,6 +430,7 @@ static int ao_oss_delay(ao_driver_t *thi lprintf ("%d bytes left\n", bytes_left); break; @@ -18,7 +18,7 @@ $NetBSD: patch-bd,v 1.1 2004/12/23 03:05:53 xtraeme Exp $ } return bytes_left / this->bytes_per_frame; -@@ -833,10 +835,13 @@ +@@ -835,10 +837,13 @@ static ao_driver_t *open_plugin (audio_d * check if SNDCTL_DSP_GETODELAY works. if so, using it is preferred. */ diff --git a/multimedia/xine-lib/patches/patch-be b/multimedia/xine-lib/patches/patch-be index 31009cb9c5f..a4fe75a3718 100644 --- a/multimedia/xine-lib/patches/patch-be +++ b/multimedia/xine-lib/patches/patch-be @@ -1,21 +1,21 @@ -$NetBSD: patch-be,v 1.6 2006/08/06 10:36:50 wiz Exp $ +$NetBSD: patch-be,v 1.7 2006/12/08 09:24:26 abs Exp $ ---- src/audio_out/Makefile.in.orig 2005-10-09 13:28:00.000000000 +0200 +--- src/audio_out/Makefile.in.orig 2006-12-03 19:40:26.000000000 +0000 +++ src/audio_out/Makefile.in -@@ -473,6 +473,7 @@ OGG_CFLAGS = @OGG_CFLAGS@ - OGG_LIBS = @OGG_LIBS@ +@@ -483,6 +483,7 @@ OBJDUMP = @OBJDUMP@ + OBJEXT = @OBJEXT@ OPENGL_CFLAGS = @OPENGL_CFLAGS@ OPENGL_LIBS = @OPENGL_LIBS@ +OSS_LIBS = @OSS_LIBS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ -@@ -665,7 +666,7 @@ xineplug_ao_out_file_la_SOURCES = audio_ - xineplug_ao_out_file_la_LIBADD = $(XINE_LIB) - xineplug_ao_out_file_la_LDFLAGS = -avoid-version -module @XINE_PLUGIN_MIN_SYMS@ +@@ -673,7 +674,7 @@ xineplug_ao_out_file_la_LIBADD = $(XINE_ + xineplug_ao_out_file_la_CFLAGS = $(VISIBILITY_FLAG) + xineplug_ao_out_file_la_LDFLAGS = -avoid-version -module xineplug_ao_out_oss_la_SOURCES = audio_oss_out.c -xineplug_ao_out_oss_la_LIBADD = $(XINE_LIB) +xineplug_ao_out_oss_la_LIBADD = $(XINE_LIB) $(OSS_LIBS) - xineplug_ao_out_oss_la_LDFLAGS = -avoid-version -module @XINE_PLUGIN_MIN_SYMS@ + xineplug_ao_out_oss_la_CFLAGS = $(VISIBILITY_FLAG) + xineplug_ao_out_oss_la_LDFLAGS = -avoid-version -module xineplug_ao_out_alsa_la_SOURCES = audio_alsa_out.c - xineplug_ao_out_alsa_la_LIBADD = $(ALSA_LIBS) $(XINE_LIB) diff --git a/multimedia/xine-lib/patches/patch-bg b/multimedia/xine-lib/patches/patch-bg index 0b766e15276..e40f1e70f50 100644 --- a/multimedia/xine-lib/patches/patch-bg +++ b/multimedia/xine-lib/patches/patch-bg @@ -1,17 +1,17 @@ -$NetBSD: patch-bg,v 1.2 2006/06/26 17:13:11 wiz Exp $ +$NetBSD: patch-bg,v 1.3 2006/12/08 09:24:26 abs Exp $ All files in $(DESTDIR) may be marked read-only, so better use the INSTALL_HEADER tools to overwrite them correctly. ---- include/Makefile.in.orig 2005-10-09 11:27:58.000000000 +0000 +--- include/Makefile.in.orig 2006-12-03 19:40:23.000000000 +0000 +++ include/Makefile.in -@@ -475,7 +475,8 @@ maintainer-clean-generic: +@@ -736,7 +736,8 @@ maintainer-clean-generic: -rm -f Makefile.in install-data-local: install-includeHEADERS - sed -e '/^\/\*_x_/d' xine.h > $(DESTDIR)$(includedir)/xine.h + sed -e '/^\/\*_x_/d' xine.h > installed-xine.h + $(INSTALL_HEADER) installed-xine.h $(DESTDIR)$(includedir)/xine.h + @GENERATED_INTTYPES_H_TRUE@ $(INSTALL) inttypes.h $(DESTDIR)$(includedir) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. - .NOEXPORT: diff --git a/multimedia/xine-lib/patches/patch-bh b/multimedia/xine-lib/patches/patch-bh deleted file mode 100644 index b156426c394..00000000000 --- a/multimedia/xine-lib/patches/patch-bh +++ /dev/null @@ -1,14 +0,0 @@ -$NetBSD: patch-bh,v 1.3 2006/08/14 12:15:38 joerg Exp $ - ---- src/xine-utils/xine_mutex.c.orig 2006-06-23 18:24:22.000000000 +0000 -+++ src/xine-utils/xine_mutex.c -@@ -29,7 +29,9 @@ - #include <pthread.h> - #include "xineutils.h" - -+#if 0 - #define DBG_MUTEX -+#endif - - int xine_mutex_init (xine_mutex_t *mutex, const pthread_mutexattr_t *mutexattr, - const char *id) { diff --git a/multimedia/xine-lib/patches/patch-da b/multimedia/xine-lib/patches/patch-da index 0cf26afffb2..c414923103c 100644 --- a/multimedia/xine-lib/patches/patch-da +++ b/multimedia/xine-lib/patches/patch-da @@ -1,11 +1,11 @@ -$NetBSD: patch-da,v 1.1 2006/08/14 12:15:38 joerg Exp $ +$NetBSD: patch-da,v 1.2 2006/12/08 09:24:26 abs Exp $ Move some inlined functions to a place before they are used, otherwise GCC barfs when -fno-unit-a-time is active. ---- src/libffmpeg/libavcodec/h263.c.orig 2006-08-14 11:26:49.000000000 +0000 +--- src/libffmpeg/libavcodec/h263.c.orig 2006-08-02 08:02:39.000000000 +0100 +++ src/libffmpeg/libavcodec/h263.c -@@ -3395,6 +3395,53 @@ static inline int get_amv(MpegEncContext +@@ -3432,6 +3432,53 @@ static inline int get_amv(MpegEncContext } /** @@ -59,7 +59,7 @@ otherwise GCC barfs when -fno-unit-a-time is active. * decodes first partition. * @return number of MBs decoded or <0 if an error occured */ -@@ -3700,125 +3747,380 @@ int ff_mpeg4_decode_partitions(MpegEncCo +@@ -3737,124 +3784,380 @@ int ff_mpeg4_decode_partitions(MpegEncCo } /** @@ -73,6 +73,9 @@ otherwise GCC barfs when -fno-unit-a-time is active. { - int cbp, mb_type; - const int xy= s->mb_x + s->mb_y*s->mb_stride; +- +- mb_type= s->current_picture.mb_type[xy]; +- cbp = s->cbp_table[xy]; + int level, i, last, run; + int dc_pred_dir; + RLTable * rl; @@ -80,15 +83,14 @@ otherwise GCC barfs when -fno-unit-a-time is active. + const uint8_t * scan_table; + int qmul, qadd; -- mb_type= s->current_picture.mb_type[xy]; -- cbp = s->cbp_table[xy]; +- s->use_intra_dc_vlc= s->qscale < s->intra_dc_threshold; + //Note intra & rvlc should be optimized away if this is inlined - if(s->current_picture.qscale_table[xy] != s->qscale){ - ff_set_qscale(s, s->current_picture.qscale_table[xy] ); - } + if(intra) { -+ if(s->qscale < s->intra_dc_threshold){ ++ if(s->use_intra_dc_vlc){ + /* DC coef */ + if(s->partitioned_frame){ + level = s->dc_val[0][ s->block_index[n] ]; @@ -104,6 +106,7 @@ otherwise GCC barfs when -fno-unit-a-time is active. + i = 0; + }else{ + i = -1; ++ ff_mpeg4_pred_dc(s, n, 0, &dc_pred_dir, 0); + } + if (!coded) + goto not_coded; @@ -149,43 +152,28 @@ otherwise GCC barfs when -fno-unit-a-time is active. - if(s->pict_type==S_TYPE && s->vol_sprite_usage==GMC_SPRITE){ - s->mcsel=1; - s->mb_skipped = 0; -- }else{ ++ scan_table = s->intra_scantable.permutated; ++ ++ if(s->mpeg_quant){ ++ qmul=1; ++ qadd=0; ++ if(rvlc){ ++ rl_vlc = rvlc_rl_inter.rl_vlc[0]; + }else{ - s->mcsel=0; - s->mb_skipped = 1; -- } ++ rl_vlc = rl_inter.rl_vlc[0]; + } - }else if(s->mb_intra){ - s->ac_pred = IS_ACPRED(s->current_picture.mb_type[xy]); - }else if(!s->mb_intra){ -// s->mcsel= 0; //FIXME do we need to init that -+ scan_table = s->intra_scantable.permutated; - +- - s->mv_dir = MV_DIR_FORWARD; - if (IS_8X8(mb_type)) { - s->mv_type = MV_TYPE_8X8; - } else { - s->mv_type = MV_TYPE_16X16; -+ if(s->mpeg_quant){ -+ qmul=1; -+ qadd=0; -+ if(rvlc){ -+ rl_vlc = rvlc_rl_inter.rl_vlc[0]; -+ }else{ -+ rl_vlc = rl_inter.rl_vlc[0]; - } -- } -- } else { /* I-Frame */ -- s->mb_intra = 1; -- s->ac_pred = IS_ACPRED(s->current_picture.mb_type[xy]); -- } -- -- if (!IS_SKIP(mb_type)) { -- int i; -- s->dsp.clear_blocks(s->block[0]); -- /* decode each block */ -- for (i = 0; i < 6; i++) { -- if(mpeg4_decode_block(s, block[i], i, cbp&32, s->mb_intra, s->rvlc) < 0){ -- av_log(s->avctx, AV_LOG_ERROR, "texture corrupted at %d %d %d\n", s->mb_x, s->mb_y, s->mb_intra); -- return -1; + }else{ + qmul = s->qscale << 1; + qadd = (s->qscale - 1) | 1; @@ -194,8 +182,10 @@ otherwise GCC barfs when -fno-unit-a-time is active. + }else{ + rl_vlc = rl_inter.rl_vlc[s->qscale]; } -- cbp+=cbp; } +- } else { /* I-Frame */ +- s->mb_intra = 1; +- s->ac_pred = IS_ACPRED(s->current_picture.mb_type[xy]); } + { + OPEN_READER(re, &s->gb); @@ -210,12 +200,29 @@ otherwise GCC barfs when -fno-unit-a-time is active. + return -1; + }; SKIP_CACHE(re, &s->gb, 1); -- /* per-MB end of slice check */ +- if (!IS_SKIP(mb_type)) { +- int i; +- s->dsp.clear_blocks(s->block[0]); +- /* decode each block */ +- for (i = 0; i < 6; i++) { +- if(mpeg4_decode_block(s, block[i], i, cbp&32, s->mb_intra, s->rvlc) < 0){ +- av_log(s->avctx, AV_LOG_ERROR, "texture corrupted at %d %d %d\n", s->mb_x, s->mb_y, s->mb_intra); +- return -1; +- } +- cbp+=cbp; +- } +- } + last= SHOW_UBITS(re, &s->gb, 1); SKIP_CACHE(re, &s->gb, 1); + run= SHOW_UBITS(re, &s->gb, 6); LAST_SKIP_CACHE(re, &s->gb, 6); + SKIP_COUNTER(re, &s->gb, 1+1+6); + UPDATE_CACHE(re, &s->gb); +- /* per-MB end of slice check */ ++ if(SHOW_UBITS(re, &s->gb, 1)==0){ ++ av_log(s->avctx, AV_LOG_ERROR, "2. marker bit missing in rvlc esc\n"); ++ return -1; ++ }; SKIP_CACHE(re, &s->gb, 1); + - if(--s->mb_num_left <= 0){ -//printf("%06X %d\n", show_bits(&s->gb, 24), s->gb.size_in_bits - get_bits_count(&s->gb)); - if(mpeg4_is_resync(s)) @@ -231,43 +238,41 @@ otherwise GCC barfs when -fno-unit-a-time is active. - return SLICE_OK; - } -} -+ if(SHOW_UBITS(re, &s->gb, 1)==0){ -+ av_log(s->avctx, AV_LOG_ERROR, "2. marker bit missing in rvlc esc\n"); -+ return -1; -+ }; SKIP_CACHE(re, &s->gb, 1); ++ level= SHOW_UBITS(re, &s->gb, 11); SKIP_CACHE(re, &s->gb, 11); -/** - * read the next MVs for OBMC. yes this is a ugly hack, feel free to send a patch :) - */ -static void preview_obmc(MpegEncContext *s){ - GetBitContext gb= s->gb; -+ level= SHOW_UBITS(re, &s->gb, 11); SKIP_CACHE(re, &s->gb, 11); ++ if(SHOW_UBITS(re, &s->gb, 5)!=0x10){ ++ av_log(s->avctx, AV_LOG_ERROR, "reverse esc missing\n"); ++ return -1; ++ }; SKIP_CACHE(re, &s->gb, 5); - int cbpc, i, pred_x, pred_y, mx, my; - int16_t *mot_val; - const int xy= s->mb_x + 1 + s->mb_y * s->mb_stride; - const int stride= s->b8_stride*2; -+ if(SHOW_UBITS(re, &s->gb, 5)!=0x10){ -+ av_log(s->avctx, AV_LOG_ERROR, "reverse esc missing\n"); -+ return -1; -+ }; SKIP_CACHE(re, &s->gb, 5); ++ level= level * qmul + qadd; ++ level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - SHOW_SBITS(re, &s->gb, 1); LAST_SKIP_CACHE(re, &s->gb, 1); ++ SKIP_COUNTER(re, &s->gb, 1+11+5+1); - for(i=0; i<4; i++) - s->block_index[i]+= 2; - for(i=4; i<6; i++) - s->block_index[i]+= 1; - s->mb_x++; -+ level= level * qmul + qadd; -+ level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - SHOW_SBITS(re, &s->gb, 1); LAST_SKIP_CACHE(re, &s->gb, 1); -+ SKIP_COUNTER(re, &s->gb, 1+11+5+1); - -- assert(s->pict_type == P_TYPE); + i+= run + 1; + if(last) i+=192; + }else{ + int cache; + cache= GET_CACHE(re, &s->gb); +- assert(s->pict_type == P_TYPE); ++ if(IS_3IV1) ++ cache ^= 0xC0000000; + - do{ - if (get_bits1(&s->gb)) { - /* skip mb */ @@ -276,14 +281,6 @@ otherwise GCC barfs when -fno-unit-a-time is active. - mot_val[0+stride]= mot_val[2+stride]= 0; - mot_val[1 ]= mot_val[3 ]= - mot_val[1+stride]= mot_val[3+stride]= 0; -+ if(IS_3IV1) -+ cache ^= 0xC0000000; - -- s->current_picture.mb_type[xy]= MB_TYPE_SKIP | MB_TYPE_16x16 | MB_TYPE_L0; -- goto end; -- } -- cbpc = get_vlc2(&s->gb, inter_MCBPC_vlc.table, INTER_MCBPC_VLC_BITS, 2); -- }while(cbpc == 20); + if (cache&0x80000000) { + if (cache&0x40000000) { + /* third escape */ @@ -293,7 +290,10 @@ otherwise GCC barfs when -fno-unit-a-time is active. + SKIP_COUNTER(re, &s->gb, 2+1+6); + UPDATE_CACHE(re, &s->gb); -- if(cbpc & 4){ +- s->current_picture.mb_type[xy]= MB_TYPE_SKIP | MB_TYPE_16x16 | MB_TYPE_L0; +- goto end; +- } +- cbpc = get_vlc2(&s->gb, inter_MCBPC_vlc.table, INTER_MCBPC_VLC_BITS, 2); + if(IS_3IV1){ + level= SHOW_SBITS(re, &s->gb, 12); LAST_SKIP_BITS(re, &s->gb, 12); + }else{ @@ -399,10 +399,10 @@ otherwise GCC barfs when -fno-unit-a-time is active. + } + not_coded: + if (intra) { -+ if(s->qscale >= s->intra_dc_threshold){ ++ if(!s->use_intra_dc_vlc){ + block[0] = ff_mpeg4_pred_dc(s, n, block[0], &dc_pred_dir, 0); + -+ if(i == -1) i=0; ++ i -= i>>31; //if(i == -1) i=0; + } + + mpeg4_pred_ac(s, block, n, dc_pred_dir); @@ -426,6 +426,8 @@ otherwise GCC barfs when -fno-unit-a-time is active. + mb_type= s->current_picture.mb_type[xy]; + cbp = s->cbp_table[xy]; + ++ s->use_intra_dc_vlc= s->qscale < s->intra_dc_threshold; ++ + if(s->current_picture.qscale_table[xy] != s->qscale){ + ff_set_qscale(s, s->current_picture.qscale_table[xy] ); + } @@ -531,13 +533,10 @@ otherwise GCC barfs when -fno-unit-a-time is active. + goto end; + } + cbpc = get_vlc2(&s->gb, inter_MCBPC_vlc.table, INTER_MCBPC_VLC_BITS, 2); -+ }while(cbpc == 20); -+ -+ if(cbpc & 4){ - s->current_picture.mb_type[xy]= MB_TYPE_INTRA; - }else{ - get_vlc2(&s->gb, cbpy_vlc.table, CBPY_VLC_BITS, 1); -@@ -4678,308 +4980,6 @@ not_coded: + }while(cbpc == 20); + + if(cbpc & 4){ +@@ -4726,309 +5029,6 @@ not_coded: return 0; } @@ -605,7 +604,7 @@ otherwise GCC barfs when -fno-unit-a-time is active. - //Note intra & rvlc should be optimized away if this is inlined - - if(intra) { -- if(s->qscale < s->intra_dc_threshold){ +- if(s->use_intra_dc_vlc){ - /* DC coef */ - if(s->partitioned_frame){ - level = s->dc_val[0][ s->block_index[n] ]; @@ -621,6 +620,7 @@ otherwise GCC barfs when -fno-unit-a-time is active. - i = 0; - }else{ - i = -1; +- ff_mpeg4_pred_dc(s, n, 0, &dc_pred_dir, 0); - } - if (!coded) - goto not_coded; @@ -828,10 +828,10 @@ otherwise GCC barfs when -fno-unit-a-time is active. - } - not_coded: - if (intra) { -- if(s->qscale >= s->intra_dc_threshold){ +- if(!s->use_intra_dc_vlc){ - block[0] = ff_mpeg4_pred_dc(s, n, block[0], &dc_pred_dir, 0); - -- if(i == -1) i=0; +- i -= i>>31; //if(i == -1) i=0; - } - - mpeg4_pred_ac(s, block, n, dc_pred_dir); diff --git a/multimedia/xine-lib/patches/patch-db b/multimedia/xine-lib/patches/patch-db index 7af0c8988fc..9322590c26e 100644 --- a/multimedia/xine-lib/patches/patch-db +++ b/multimedia/xine-lib/patches/patch-db @@ -1,11 +1,11 @@ -$NetBSD: patch-db,v 1.1 2006/08/14 12:15:38 joerg Exp $ +$NetBSD: patch-db,v 1.2 2006/12/08 09:24:26 abs Exp $ Move some inlined functions to a place before they are used, otherwise GCC barfs when -fno-unit-a-time is active. ---- src/libffmpeg/libavcodec/mpeg12.c.orig 2006-08-14 11:37:33.000000000 +0000 +--- src/libffmpeg/libavcodec/mpeg12.c.orig 2006-08-02 08:02:39.000000000 +0100 +++ src/libffmpeg/libavcodec/mpeg12.c -@@ -1054,515 +1054,370 @@ static inline int get_qscale(MpegEncCont +@@ -1074,515 +1074,370 @@ static inline int get_qscale(MpegEncCont #define MT_16X8 2 #define MT_DMV 3 @@ -821,7 +821,7 @@ otherwise GCC barfs when -fno-unit-a-time is active. } } if (i > 63){ -@@ -1570,12 +1425,20 @@ static inline int mpeg1_decode_block_int +@@ -1590,12 +1445,20 @@ static inline int mpeg1_decode_block_int return -1; } @@ -843,7 +843,7 @@ otherwise GCC barfs when -fno-unit-a-time is active. } static inline int mpeg1_decode_block_inter(MpegEncContext *s, -@@ -1713,315 +1576,452 @@ static inline int mpeg1_fast_decode_bloc +@@ -1733,315 +1596,452 @@ static inline int mpeg1_fast_decode_bloc level= (level-1)|1; } } diff --git a/multimedia/xine-lib/patches/patch-dc b/multimedia/xine-lib/patches/patch-dc index c92eb868f19..7663dc31c3b 100644 --- a/multimedia/xine-lib/patches/patch-dc +++ b/multimedia/xine-lib/patches/patch-dc @@ -1,11 +1,11 @@ -$NetBSD: patch-dc,v 1.1 2006/08/14 12:15:38 joerg Exp $ +$NetBSD: patch-dc,v 1.2 2006/12/08 09:24:26 abs Exp $ Move some inlined functions to a place before they are used, otherwise GCC barfs when -fno-unit-a-time is active. ---- src/libffmpeg/libavcodec/msmpeg4.c.orig 2006-08-14 11:51:09.000000000 +0000 +--- src/libffmpeg/libavcodec/msmpeg4.c.orig 2006-08-02 08:02:40.000000000 +0100 +++ src/libffmpeg/libavcodec/msmpeg4.c -@@ -1479,186 +1479,6 @@ static int msmpeg4v2_decode_motion(MpegE +@@ -1408,181 +1408,6 @@ static int msmpeg4v2_decode_motion(MpegE return val; } @@ -102,7 +102,6 @@ otherwise GCC barfs when -fno-unit-a-time is active. - uint32_t * const mb_type_ptr= &s->current_picture.mb_type[ s->mb_x + s->mb_y*s->mb_stride ]; - - if (s->pict_type == P_TYPE) { -- set_stat(ST_INTER_MB); - if (s->use_skip_mb_code) { - if (get_bits1(&s->gb)) { - /* skip mb */ @@ -128,7 +127,6 @@ otherwise GCC barfs when -fno-unit-a-time is active. - - cbp = code & 0x3f; - } else { -- set_stat(ST_INTRA_MB); - s->mb_intra = 1; - code = get_vlc2(&s->gb, ff_msmp4_mb_i_vlc.table, MB_INTRA_VLC_BITS, 2); - if (code < 0) @@ -153,7 +151,6 @@ otherwise GCC barfs when -fno-unit-a-time is active. - s->rl_table_index = decode012(&s->gb); - s->rl_chroma_table_index = s->rl_table_index; - } -- set_stat(ST_MV); - h263_pred_motion(s, 0, 0, &mx, &my); - if (msmpeg4_decode_motion(s, &mx, &my) < 0) - return -1; @@ -164,7 +161,6 @@ otherwise GCC barfs when -fno-unit-a-time is active. - *mb_type_ptr = MB_TYPE_L0 | MB_TYPE_16x16; - } else { -//printf("I at %d %d %d %06X\n", s->mb_x, s->mb_y, ((cbp&3)? 1 : 0) +((cbp&0x3C)? 2 : 0), show_bits(&s->gb, 24)); -- set_stat(ST_INTRA_MB); - s->ac_pred = get_bits1(&s->gb); - *mb_type_ptr = MB_TYPE_INTRA; - if(s->inter_intra_pred){ @@ -188,11 +184,10 @@ otherwise GCC barfs when -fno-unit-a-time is active. - - return 0; -} --//#define ERROR_DETAILS + //#define ERROR_DETAILS static inline int msmpeg4_decode_block(MpegEncContext * s, DCTELEM * block, int n, int coded, const uint8_t *scan_table) - { -@@ -1909,6 +1729,187 @@ static inline int msmpeg4_decode_block(M +@@ -1831,6 +1656,182 @@ static inline int msmpeg4_decode_block(M return 0; } @@ -289,7 +284,6 @@ otherwise GCC barfs when -fno-unit-a-time is active. + uint32_t * const mb_type_ptr= &s->current_picture.mb_type[ s->mb_x + s->mb_y*s->mb_stride ]; + + if (s->pict_type == P_TYPE) { -+ set_stat(ST_INTER_MB); + if (s->use_skip_mb_code) { + if (get_bits1(&s->gb)) { + /* skip mb */ @@ -315,7 +309,6 @@ otherwise GCC barfs when -fno-unit-a-time is active. + + cbp = code & 0x3f; + } else { -+ set_stat(ST_INTRA_MB); + s->mb_intra = 1; + code = get_vlc2(&s->gb, ff_msmp4_mb_i_vlc.table, MB_INTRA_VLC_BITS, 2); + if (code < 0) @@ -340,7 +333,6 @@ otherwise GCC barfs when -fno-unit-a-time is active. + s->rl_table_index = decode012(&s->gb); + s->rl_chroma_table_index = s->rl_table_index; + } -+ set_stat(ST_MV); + h263_pred_motion(s, 0, 0, &mx, &my); + if (msmpeg4_decode_motion(s, &mx, &my) < 0) + return -1; @@ -351,7 +343,6 @@ otherwise GCC barfs when -fno-unit-a-time is active. + *mb_type_ptr = MB_TYPE_L0 | MB_TYPE_16x16; + } else { +//printf("I at %d %d %d %06X\n", s->mb_x, s->mb_y, ((cbp&3)? 1 : 0) +((cbp&0x3C)? 2 : 0), show_bits(&s->gb, 24)); -+ set_stat(ST_INTRA_MB); + s->ac_pred = get_bits1(&s->gb); + *mb_type_ptr = MB_TYPE_INTRA; + if(s->inter_intra_pred){ @@ -375,7 +366,6 @@ otherwise GCC barfs when -fno-unit-a-time is active. + + return 0; +} -+//#define ERROR_DETAILS + static int msmpeg4_decode_dc(MpegEncContext * s, int n, int *dir_ptr) { |