diff --git a/.cvsignore b/.cvsignore index 34a3b02..8a0cd42 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,2 +1,2 @@ -xine-lib-1.1.16.1-autotools.patch.bz2 -xine-lib-1.1.16.1-pruned.tar.bz2 +xine-lib-1.1.16.2-pruned.tar.bz2 +xine-lib-1.1.16.2-autotools.patch.bz2 diff --git a/sources b/sources index 9a7e9c8..95d5764 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -e3e061f93f36eae910b66cb0c973dbb8 xine-lib-1.1.16.1-autotools.patch.bz2 -aa1265b1007086c0906ec8134cfeacf6 xine-lib-1.1.16.1-pruned.tar.bz2 +e2c3a178be02f5c32957b2716123aa28 xine-lib-1.1.16.2-pruned.tar.bz2 +07bf186d51b8315026453a2f21b33703 xine-lib-1.1.16.2-autotools.patch.bz2 diff --git a/xine-lib-1.1.16.1-gapless_race_fix.patch b/xine-lib-1.1.16.1-gapless_race_fix.patch deleted file mode 100644 index ec46cbf..0000000 --- a/xine-lib-1.1.16.1-gapless_race_fix.patch +++ /dev/null @@ -1,144 +0,0 @@ -diff -up xine-lib-1.1.16.1/src/xine-engine/audio_out.c.gapless_rate_fix xine-lib-1.1.16.1/src/xine-engine/audio_out.c ---- xine-lib-1.1.16.1/src/xine-engine/audio_out.c.gapless_rate_fix 2009-02-09 07:30:08.000000000 -0600 -+++ xine-lib-1.1.16.1/src/xine-engine/audio_out.c 2009-02-09 07:30:08.000000000 -0600 -@@ -1623,7 +1623,7 @@ static void ao_close(xine_audio_port_t * - pthread_mutex_unlock(&this->streams_lock); - - /* close driver if no streams left */ -- if (!ite && !this->grab_only && !stream->gapless_switch) { -+ if (!ite && !this->grab_only && !stream->keep_ao_driver_open) { - xprintf (this->xine, XINE_VERBOSITY_DEBUG, "audio_out: no streams left, closing driver\n"); - - if (this->audio_loop_running) { -diff -up xine-lib-1.1.16.1/src/xine-engine/video_decoder.c.gapless_rate_fix xine-lib-1.1.16.1/src/xine-engine/video_decoder.c ---- xine-lib-1.1.16.1/src/xine-engine/video_decoder.c.gapless_rate_fix 2008-04-28 08:30:56.000000000 -0500 -+++ xine-lib-1.1.16.1/src/xine-engine/video_decoder.c 2009-02-09 07:31:36.000000000 -0600 -@@ -160,7 +160,7 @@ static void *video_decoder_loop (void *s - - running_ticket->release(running_ticket, 0); - -- if( !stream->gapless_switch ) -+ if( !(buf->decoder_flags & BUF_FLAG_GAPLESS_SW) ) - stream->metronom->handle_video_discontinuity (stream->metronom, - DISC_STREAMSTART, 0); - -diff -up xine-lib-1.1.16.1/src/xine-engine/xine.c.gapless_rate_fix xine-lib-1.1.16.1/src/xine-engine/xine.c ---- xine-lib-1.1.16.1/src/xine-engine/xine.c.gapless_rate_fix 2009-02-09 07:30:08.000000000 -0600 -+++ xine-lib-1.1.16.1/src/xine-engine/xine.c 2009-02-09 07:30:08.000000000 -0600 -@@ -426,6 +426,7 @@ void xine_stop (xine_stream_t *stream) { - static void close_internal (xine_stream_t *stream) { - - int i ; -+ int gapless_switch = stream->gapless_switch; - - if( stream->slave ) { - xine_close( stream->slave ); -@@ -436,7 +437,7 @@ static void close_internal (xine_stream_ - } - } - -- if( !stream->gapless_switch ) { -+ if( !gapless_switch ) { - /* make sure that other threads cannot change the speed, especially pauseing the stream */ - pthread_mutex_lock(&stream->speed_change_lock); - stream->ignore_speed_change = 1; -@@ -452,7 +453,7 @@ static void close_internal (xine_stream_ - - stop_internal( stream ); - -- if( !stream->gapless_switch ) { -+ if( !gapless_switch ) { - if (stream->video_out) - stream->video_out->set_property(stream->video_out, VO_PROP_DISCARD_FRAMES, 0); - if (stream->audio_out) -@@ -603,6 +604,7 @@ xine_stream_t *xine_stream_new (xine_t * - stream->early_finish_event = 0; - stream->delay_finish_event = 0; - stream->gapless_switch = 0; -+ stream->keep_ao_driver_open = 0; - - stream->video_out = vo; - if (vo) -diff -up xine-lib-1.1.16.1/src/xine-engine/buffer.h.gapless_rate_fix xine-lib-1.1.16.1/src/xine-engine/buffer.h ---- xine-lib-1.1.16.1/src/xine-engine/buffer.h.gapless_rate_fix 2009-01-10 19:25:34.000000000 -0600 -+++ xine-lib-1.1.16.1/src/xine-engine/buffer.h 2009-02-09 07:30:08.000000000 -0600 -@@ -378,6 +378,9 @@ struct buf_element_s { - * decoder_info[2] carries denominator for display aspect ratio */ - #define BUF_FLAG_ASPECT 0x0800 - -+/* represent the state of gapless_switch at the time buf was enqueued */ -+#define BUF_FLAG_GAPLESS_SW 0x1000 -+ - - /* Special buffer types: - * Sometimes there is a need to relay special information from a demuxer -diff -up xine-lib-1.1.16.1/src/xine-engine/demux.c.gapless_rate_fix xine-lib-1.1.16.1/src/xine-engine/demux.c ---- xine-lib-1.1.16.1/src/xine-engine/demux.c.gapless_rate_fix 2009-01-10 19:25:34.000000000 -0600 -+++ xine-lib-1.1.16.1/src/xine-engine/demux.c 2009-02-09 07:30:08.000000000 -0600 -@@ -228,15 +228,18 @@ void _x_demux_control_headers_done (xine - void _x_demux_control_start( xine_stream_t *stream ) { - - buf_element_t *buf; -+ uint32_t flags = (stream->gapless_switch) ? BUF_FLAG_GAPLESS_SW : 0; - - pthread_mutex_lock(&stream->demux_mutex); - - buf = stream->video_fifo->buffer_pool_alloc (stream->video_fifo); - buf->type = BUF_CONTROL_START; -+ buf->decoder_flags = flags; - stream->video_fifo->put (stream->video_fifo, buf); - - buf = stream->audio_fifo->buffer_pool_alloc (stream->audio_fifo); - buf->type = BUF_CONTROL_START; -+ buf->decoder_flags = flags; - stream->audio_fifo->put (stream->audio_fifo, buf); - - pthread_mutex_unlock(&stream->demux_mutex); -diff -up xine-lib-1.1.16.1/src/xine-engine/audio_decoder.c.gapless_rate_fix xine-lib-1.1.16.1/src/xine-engine/audio_decoder.c ---- xine-lib-1.1.16.1/src/xine-engine/audio_decoder.c.gapless_rate_fix 2008-04-28 08:30:56.000000000 -0500 -+++ xine-lib-1.1.16.1/src/xine-engine/audio_decoder.c 2009-02-09 07:30:08.000000000 -0600 -@@ -89,16 +89,18 @@ static void *audio_decoder_loop (void *s - if (stream->audio_decoder_plugin) { - - lprintf ("close old decoder\n"); -- -+ -+ stream->keep_ao_driver_open = !!(buf->decoder_flags & BUF_FLAG_GAPLESS_SW); - _x_free_audio_decoder (stream, stream->audio_decoder_plugin); - stream->audio_decoder_plugin = NULL; - stream->audio_track_map_entries = 0; - stream->audio_type = 0; -+ stream->keep_ao_driver_open = 0; - } - - running_ticket->release(running_ticket, 0); - -- if( !stream->gapless_switch ) -+ if( !(buf->decoder_flags & BUF_FLAG_GAPLESS_SW) ) - stream->metronom->handle_audio_discontinuity (stream->metronom, DISC_STREAMSTART, 0); - - buftype_unknown = 0; -diff -up xine-lib-1.1.16.1/src/xine-engine/xine_interface.c.gapless_rate_fix xine-lib-1.1.16.1/src/xine-engine/xine_interface.c ---- xine-lib-1.1.16.1/src/xine-engine/xine_interface.c.gapless_rate_fix 2008-07-12 17:52:01.000000000 -0500 -+++ xine-lib-1.1.16.1/src/xine-engine/xine_interface.c 2009-02-09 07:30:08.000000000 -0600 -@@ -527,6 +527,9 @@ void xine_set_param (xine_stream_t *stre - - case XINE_PARAM_GAPLESS_SWITCH: - stream->gapless_switch = !!value; -+ if( stream->gapless_switch && !stream->early_finish_event ) { -+ xprintf (stream->xine, XINE_VERBOSITY_DEBUG, "frontend possibly buggy: gapless_switch without early_finish_event\n"); -+ } - break; - - default: -diff -up xine-lib-1.1.16.1/src/xine-engine/xine_internal.h.gapless_rate_fix xine-lib-1.1.16.1/src/xine-engine/xine_internal.h ---- xine-lib-1.1.16.1/src/xine-engine/xine_internal.h.gapless_rate_fix 2008-08-24 16:51:15.000000000 -0500 -+++ xine-lib-1.1.16.1/src/xine-engine/xine_internal.h 2009-02-09 07:30:08.000000000 -0600 -@@ -361,6 +361,7 @@ struct xine_stream_s { - int early_finish_event; /* do not wait fifos get empty before sending event */ - int gapless_switch; /* next stream switch will be gapless */ - int delay_finish_event; /* delay event in 1/10 sec units. 0=>no delay, -1=>forever */ -+ int keep_ao_driver_open; - #endif - }; - diff --git a/xine-lib-mk-autotools-patch.sh b/xine-lib-mk-autotools-patch.sh index 93590b4..dc1e103 100644 --- a/xine-lib-mk-autotools-patch.sh +++ b/xine-lib-mk-autotools-patch.sh @@ -22,10 +22,12 @@ rm -rf xine-lib-$version xine-lib-$version-pruned tar jxf xine-lib-$version-pruned.tar.bz2 cp -a xine-lib-$version xine-lib-$version-pruned -cd xine-lib-$version +pushd xine-lib-$version +# extra work for to omit old libtool-related crud +rm -f configure ltmain.sh libtool m4/libtool.m4 m4/ltoptions.m4 m4/ltversion.m4 ./autogen.sh noconfig rm -rf autom4te.cache *~ -cd .. +popd diff -Nru xine-lib-$version-pruned xine-lib-$version \ | bzip2 --best > xine-lib-$version-autotools.patch.bz2 diff --git a/xine-lib.spec b/xine-lib.spec index 865f801..5170e18 100644 --- a/xine-lib.spec +++ b/xine-lib.spec @@ -33,8 +33,8 @@ Summary: A multimedia engine Name: xine-lib -Version: 1.1.16.1 -Release: 4%{?dist} +Version: 1.1.16.2 +Release: 1%{?dist} License: GPLv2+ Group: System Environment/Libraries URL: http://xinehq.de/ @@ -56,7 +56,6 @@ Patch7: %{name}-1.1.16-old-caca.patch Patch8: xine-lib-1.1.15-avsync_hack.patch ## upstream patches Patch100: xine-lib-safe-audio-pause.patch -Patch101: xine-lib-1.1.16.1-gapless_race_fix.patch Provides: xine-lib(plugin-abi) = %{abiver} %if "%{?_isa}" != "%{nil}" @@ -205,7 +204,6 @@ touch -r m4/optimizations.m4.stamp m4/optimizations.m4 %patch8 -p1 -b .avsync_hack %patch100 -p1 -b .safe_audio_pause -%patch101 -p1 -b .gapless_race_fix # Avoid standard rpaths on lib64 archs: (autotools patch should handle this, no? -- Rex ) #sed -i -e 's|"/lib /usr/lib\b|"/%{_lib} %{_libdir}|' configure @@ -438,6 +436,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Tue Feb 10 2009 Rex Dieter - 1.1.16.2-1 +- xine-lib-1.1.16.2 + * Mon Feb 09 2009 Rex Dieter - 1.1.16.1-4 - gapless-race-fix patch (kdebug#180339)