summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog13
-rw-r--r--misc/xine-config2
-rw-r--r--misc/xine-lib.spec.in379
-rw-r--r--src/demuxers/demux_asf.c17
-rw-r--r--src/demuxers/demux_ts.c9
-rw-r--r--src/xine-engine/audio_out.c11
6 files changed, 263 insertions, 168 deletions
diff --git a/ChangeLog b/ChangeLog
index 896855926..a13e43b4a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -66,11 +66,16 @@ xine-lib (1.1.10) (unreleased)
end authors should be careful with xine-lib older than 1.1.10.
* Backported xine-config & libxine.pc from 1.2.
Consequently, xine-config now requires pkg-config.
+ * Sanity-check ASF header sizes. This fixes a crash in the ASF demuxer,
+ caused by the example exploit given for CVE-2006-1664.
+ * Don't discard audio samples forever. Fixed streaming playback.
+ * Fix a possible crash on channel change in the DVB plugin.
xine-lib (1.1.9.1) 2008-01-11
* Security fixes:
- Buffer overflow which allows a remote attacker to execute arbitrary
- code via a crafted SDP Abstract attribute. (CVE-2008-0225)
+ code via a crafted SDP Abstract attribute.
+ (CVE-2008-0225, a.k.a. CVE-2008-0238)
(Fix ported from mplayer changeset 22821)
* Fix a read-past-end bug in xine-lib's internal strtok_r replacement.
(Only affects systems without strtok_r.) [Bug #19]
@@ -195,8 +200,9 @@ xine-lib (1.1.6) 2007-04-17
xine-lib (1.1.5) 2007-04-10
* Security fixes:
- - Fix heap overflow in DMO loader. (CVE-2007-1246) [Bug SF 1676925]
+ - Fix heap overflow in DMO and DirectShow loaders.
Thanks to Kees Cook for reporting.
+ (CVE-2007-1246 & CVE-2007-1387) [Bug SF 1676925]
* Improved PulseAudio plugin, now only one connection per instance is opened
and the mainloop is threaded to reduce latency during playback.
* Added XCB-based output plugins (Xv and XShm), to use in software using
@@ -316,8 +322,9 @@ xine-lib (1.1.4) 2007-01-28
xine-lib (1.1.3) 2006-12-03
* Security fixes:
- Heap overflow in libmms (related to CVE-2006-2200)
- - Buffer overrun in Real Media input plugin. [Bug SF 1603458]
+ - Buffer overrun in Real Media input plugin.
Thanks to Roland Kay for reporting and JW for the patch.
+ (CVE-2006-6172) [Bug SF 1603458]
* 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
diff --git a/misc/xine-config b/misc/xine-config
index 9cb68a709..8962c8079 100644
--- a/misc/xine-config
+++ b/misc/xine-config
@@ -43,11 +43,9 @@ while test $# -gt 0; do
if [ "$exec_prefix" = '' ]; then
exec_prefix="$optarg"
fi
- args="$args${args+ }--variable=prefix"
;;
--exec-prefix=*)
exec_prefix="$optarg"
- args="$args${args+ }--variable=exec_prefix"
;;
--version)
args="$args${args+ }--modversion"
diff --git a/misc/xine-lib.spec.in b/misc/xine-lib.spec.in
index 30a54a114..0b7c78ed4 100644
--- a/misc/xine-lib.spec.in
+++ b/misc/xine-lib.spec.in
@@ -1,6 +1,6 @@
%define shortname libxine
%define name libxine2
-%define version @PACKAGE_VERSION@
+%define version @SPEC_VERSION@
%define release 0
%define major 1
@@ -15,9 +15,6 @@
%if %{?BUILD_ALSA:0}%{!?BUILD_ALSA:1}
%define BUILD_ALSA 0
%endif
-%if %{?BUILD_ARTS:0}%{!?BUILD_ARTS:1}
-%define BUILD_ARTS 0
-%endif
%if %{?BUILD_DEVEL:0}%{!?BUILD_DEVEL:1}
%define BUILD_DEVEL 1
%endif
@@ -51,6 +48,9 @@
%if %{?BUILD_DIRECTFB:0}%{!?BUILD_DIRECTFB:1}
%define BUILD_DIRECTFB 0
%endif
+%if %{?BUILD_SYNCFB:0}%{!?BUILD_SYNCFB:1}
+%define BUILD_SYNCFB 0
+%endif
%if %{?BUILD_W32DLL:0}%{!?BUILD_W32DLL:1}
%define BUILD_W32DLL 0
%endif
@@ -63,6 +63,9 @@
%if %{?BUILD_JACK:0}%{!?BUILD_JACK:1}
%define BUILD_JACK 0
%endif
+%if %{?BUILD_PULSE:0}%{!?BUILD_PULSE:1}
+%define BUILD_PULSE 0
+%endif
Name: %{name}
Summary: A portable video/audio library for unix-like systems.
@@ -74,7 +77,7 @@ Release: %{release}
License: GPL
Group: Development/Libraries
URL: http://xinehq.de
-Source: http://xinehq.de/files/@PACKAGE@-@VERSION@.tar.gz
+Source: http://xinehq.de/files/@PACKAGE@-@VERSION@.tar.bz2
Packager: Manfred Tremmel <Manfred.Tremmel@iiv.de>
Obsoletes: xine
Obsoletes: xine-lib
@@ -142,20 +145,21 @@ lisenssin kanssa yhteensopivia. lisätietoja GPL-lisenssistä löytyy osoitteest
http://www.gnu.org/licenses/gpl.html
%if %BUILD_DEVEL
-%package devel
+%package -n %{shortname}-devel
Summary: Header files and documentation to develope programs with libxine.
Summary(cs): Hlavičkové soubory a dokumentace pro vývoj programů používající libxine
Summary(de): Headerdateien und Dokumentationen, um Programme mit libxine entwickeln zu können.
Summary(fi): Header-tiedostot ja dokumentaatio, joita tarvitset kehittäessäsi ohjelmia libxine:n kanssa.
-Group: Development/Libraries
+Group: Development/Libraries
Obsoletes: xine-lib-devel
Obsoletes: xine-devel
Obsoletes: libxine0-devel
-Provides: %{shortname}-devel = %{version}-%{release}
+Obsoletes: %{name}-devel
+Provides: %{name}-devel = %{version}-%{release}
Provides: xine-devel
Requires: %{libname} = %{version}-%{release}
-%description devel
+%description -n %{shortname}-devel
This package contains header files and documentation required to develope
programs with libxine.
@@ -170,7 +174,7 @@ Don't hesitate to use libxine in your own projects as long as your usage
complies to the GPL. More information about GPL-license can be found at
http://www.gnu.org/licenses/gpl.html
-%description devel -l cs
+%description -n %{shortname}-devel -l cs
Tento balíček obsahuje hlavičkové soubory a dokumentaci potřebnou pro vývoj
programů, které používají libxine.
@@ -185,7 +189,7 @@ Dokud to bude ve shodě s GPL, neváhejte použít libxine ve vašich vlastních
projektech. Více informací o GPL licenci můžete nalézt na
http://www.gnu.org/licenses/gpl.html.
-%description devel -l de
+%description -n %{shortname}-devel -l de
Dieses Paket enthält die Headerdateien und Dokumentationen, um Programme
mit libxine entwickeln zu können.
@@ -202,7 +206,7 @@ Zögern Sie nicht libxine in Ihren eigenen Projekten zu nutzen. Beachten Sie
hierzu jedoch die in der GPL Lizenz vereinbarten Bestimmungen. Weitere
Informationen zur GPL-Lizenz finden Sie unter http://www.gnu.org/licenses/gpl.html
-%description devel -l fi
+%description -n %{shortname}-devel -l fi
libxine on xinen sydän (vapaa GPL-linsensoitu videosoitinohjelma Unix-tyylisille
käyttöjärjestelmille), joka muun muassa tarjoaa mahdollisuudet pakatun videon
ja äänen purkamiseen (sekä näyttämiseen) suurimmalla osalla nykyaikaista äänen-
@@ -361,6 +365,30 @@ Videovýstupní modul libxine, který používá OpenGL (3D grafické karty).
libxine Videoausgabeplugin per OpenGL (3D Grafikkarte)
%endif
+%if %BUILD_SYNCFB
+%package syncfb
+Summary: libxine video output plugin using synchroniced framebuffer (Matrox cards)
+Summary(cs): Videovýstupní modul libxine používající framebuffer (karty Matrox)
+Summary(de): libxine Videoausgabeplugin per synchronisiertem Framebuffer (Matrox Karten)
+Summary(fi): libxine-Videolisdke Matrox-ndyttvkorttien synkronisoitua ndyttvmuistia varten.
+Group: Development/Libraries
+Obsoletes: libxine0-syncfb
+Requires: %{libname} = %{version}-%{release}
+
+%description syncfb
+libxine video output plugin using synchroniced framebuffer (Matrox cards)
+
+%description syncfb -l cs
+Videovýstupní modul libxine, který používá synchronizovaný framebuffer (karty
+Matrox).
+
+%description syncfb -l de
+libxine Videoausgabeplugin per synchronisiertem Framebuffer (Matrox Karten)
+
+%description syncfb -l fi
+libxine-Videolisdke Matrox-ndyttvkorttien synkronisoitua ndyttvmuistia varten.
+%endif
+
%if %BUILD_DVD
%package dvd
Summary: libxine input plugin for playing video-dvd's with dvd-navigation
@@ -520,7 +548,6 @@ libxine Videoausgabeplugin per libstk (Set-top Toolkit)
%endif
%if %BUILD_DXR3
-%ifarch i386 i486 i586 i686 i786 i868 i986 k6 k7 athlon x86_64 amd64 ia32e
%package dxr3
Summary: libxine video output plugin using mpeg2 decoding cards with dxr3 decoder-chip
Summary(cs): Videovýstupní modul libxine používající karty s čipem DXR3
@@ -544,10 +571,8 @@ libxine Videoausgabeplugin, nutzt MPEG2-decoder-Karten mit dxr3 Decoder-Chip
%description dxr3 -l fi
libxine-Videolisdke MPEG2-videopurkukorteille, joissa on DXR3 purkusiru
%endif
-%endif
%if %BUILD_XVMC
-%ifarch i386 i486 i586 i686 i786 i868 i986 k6 k7 athlon x86_64 amd64 ia32e
%package xvmc
Summary: libxine video output plugin using XVideo-extension with motion compensation
Summary(cs): Videovýstupní modul libxine používající rozšíření XVideo MC
@@ -566,7 +591,6 @@ Videovýstupní modul libxine, který používá rozšíření XVideo s kompenza
%description xvmc -l de
libxine Videoausgabeplugin per XVideo-Erweiterung mit Motion Compensation
%endif
-%endif
%if %BUILD_W32DLL
%ifarch i386 i486 i586 i686 i786 i868 i986 k6 k7 athlon
@@ -597,7 +621,7 @@ libxine-Purkulisdke, joka mahdollistaa Win32 DLL:n kdytvn.
%if %BUILD_JACK
%package jack
-Summary: libxine sound output plugin for the jack sooundserver
+Summary: libxine sound output plugin for the jack soundserver
Summary(de): libxine Soundausgabeplugin für den jack-Soundserver
Group: Development/Libraries
Obsoletes: xine-lib-jack
@@ -605,7 +629,7 @@ Obsoletes: libxine0-jack
Requires: %{libname} = %{version}-%{release}
%description jack
-libxine sound output plugin for the jack sooundserver
+libxine sound output plugin for the jack soundserver
%description jack -l cs
Zvukový výstupní modul libxine pro zvukový server jack.
@@ -614,12 +638,33 @@ Zvukový výstupní modul libxine pro zvukový server jack.
libxine Soundausgabeplugin für den jack-Soundserver
%endif
+%if %BUILD_PULSE
+%package pulse
+Summary: libxine sound output plugin for the pulseaudio soundserver
+Summary(de): libxine Soundausgabeplugin für den pulseaudio-Soundserver
+Group: Development/Libraries
+Obsoletes: xine-lib-pulse
+Obsoletes: libxine0-pulse
+Requires: %{libname} = %{version}-%{release}
+
+%description pulse
+libxine sound output plugin for the pulseaudio soundserver
+
+%description pulse -l cs
+Zvukový výstupní modul libxine pro zvukový server pulseaudio.
+
+%description pulse -l de
+libxine Soundausgabeplugin für den pulseaudio-Soundserver
+%endif
+
+
%prep
-%setup -q -n @PACKAGE_TARNAME@
+%setup -q -n @TAR_NAME@
%build
export CFLAGS="${RPM_OPT_FLAGS}"
-export XINE_DOCPATH="%{_docdir}/libxine2"
+export XINE_DOCPATH="%{_docdir}/%{name}"
+export PKG_CONFIG="%{_bindir}/pkg-config"
if [ ! -f configure ]; then
NO_CONFIGURE=1 ./autogen.sh
@@ -638,274 +683,290 @@ fi
--localstatedir=%{_localstatedir} \
--sharedstatedir=%{_sharedstatedir} --mandir=%{_mandir} \
--infodir=%{_infodir} --enable-directfb --enable-modplug \
- --with-internal-vcdlibs
+%if %BUILD_STK
+ --with-libstk \
+%endif
+ --enable-syncfb --without-internal-vcdlibs
# Error in libfaad when compiling with mmx or sse enabled, remove it
-mv src/libfaad/Makefile src/libfaad/Makefile_save
-cat src/libfaad/Makefile_save | sed -e "s/-mmmx/-mno-mmx/g" -e "s/-msse/-mno-sse/g" > src/libfaad/Makefile
-# another problem with libavcodec
-mv src/libffmpeg/libavcodec/i386/Makefile src/libffmpeg/libavcodec/i386/Makefile_save
-cat src/libffmpeg/libavcodec/i386/Makefile_save | sed -e "s/-O3/-Os/g" -e "s/-O2/-Os/g" > src/libffmpeg/libavcodec/i386/Makefile
+%{__mv} contrib/libfaad/Makefile contrib/libfaad/Makefile_save
+%{__cat} contrib/libfaad/Makefile_save | %{__sed} -e "s/-mmmx/-mno-mmx/g" -e "s/-msse/-mno-sse/g" > contrib/libfaad/Makefile
-make
+%{__make} %{?jobs:-j%{jobs}}
%install
-rm -rf $RPM_BUILD_ROOT
+[ "${RPM_BUILD_ROOT}" != "/" ] && %{__rm} -rf ${RPM_BUILD_ROOT}
make DESTDIR=%{?buildroot:%{buildroot}} LIBRARY_PATH=%{?buildroot:%{buildroot}}%{_libdir} install
cd ${RPM_BUILD_ROOT}
-echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine2_zw
+echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_%{name}_zw
%if %BUILD_DEVEL
-echo "%doc README TODO AUTHORS COPYING ChangeLog" >> ${RPM_BUILD_DIR}/filelist_libxine2_zw
+echo "%doc README TODO AUTHORS COPYING ChangeLog" >> ${RPM_BUILD_DIR}/filelist_%{name}_zw
%else
-echo "%doc README TODO AUTHORS COPYING ChangeLog doc/hackersguide/*.sgml doc/hackersguide/*.fig doc/hackersguide/README" >> ${RPM_BUILD_DIR}/filelist_libxine2_zw
+echo "%doc README TODO AUTHORS COPYING ChangeLog doc/hackersguide/*.sgml doc/hackersguide/*.fig doc/hackersguide/README" >> ${RPM_BUILD_DIR}/filelist_%{name}_zw
%endif
-find . -type f | sed 's,^\.%{_datadir}/doc,\%doc %{_datadir}/doc,' | sed 's,^\.,,' >> ${RPM_BUILD_DIR}/filelist_libxine2_zw
-find . -type l | sed 's,^\.%{_datadir}/doc,\%doc %{_datadir}/doc,' | sed 's,^\.,,' >> ${RPM_BUILD_DIR}/filelist_libxine2_zw
-find . -type d | grep xine | sed 's,^\.,\%dir ,' >> ${RPM_BUILD_DIR}/filelist_libxine2_zw
-grep -v "/man/" ${RPM_BUILD_DIR}/filelist_libxine2_zw | cat - > ${RPM_BUILD_DIR}/filelist_libxine2
-grep "/man/" ${RPM_BUILD_DIR}/filelist_libxine2_zw | sed -e 's/$/\*/g' | cat - >> ${RPM_BUILD_DIR}/filelist_libxine2
-rm ${RPM_BUILD_DIR}/filelist_libxine2_zw
+find . -type f | %{__sed} 's,^\.%{_datadir}/doc,\%doc %{_datadir}/doc,' | %{__sed} 's,^\.,,' >> ${RPM_BUILD_DIR}/filelist_%{name}_zw
+find . -type l | %{__sed} 's,^\.%{_datadir}/doc,\%doc %{_datadir}/doc,' | %{__sed} 's,^\.,,' >> ${RPM_BUILD_DIR}/filelist_%{name}_zw
+find . -type d | %{__grep} xine | %{__sed} 's,^\.,\%dir ,' >> ${RPM_BUILD_DIR}/filelist_%{name}_zw
+%{__grep} -v "/man/" ${RPM_BUILD_DIR}/filelist_%{name}_zw | %{__cat} - > ${RPM_BUILD_DIR}/filelist_%{name}
+%{__grep} "/man/" ${RPM_BUILD_DIR}/filelist_%{name}_zw | %{__sed} -e 's/$/\*/g' | %{__cat} - >> ${RPM_BUILD_DIR}/filelist_%{name}
+%{__rm} ${RPM_BUILD_DIR}/filelist_%{name}_zw
%if %BUILD_DEVEL
-echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine2_devel
-echo "%doc doc/hackersguide/*.sgml doc/hackersguide/*.fig doc/hackersguide/README" >> ${RPM_BUILD_DIR}/filelist_libxine2_devel
-mv ${RPM_BUILD_DIR}/filelist_libxine2 ${RPM_BUILD_DIR}/filelist_libxine2_old
-grep -E "/include/|dhahelper\.o|libxine*\.(so|la)$|\.m4$" ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine2_devel
-grep -v -E "/include/|dhahelper\.o|libxine*\.(so|la)$|\.m4$" ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine2
-rm ${RPM_BUILD_DIR}/filelist_libxine2_old
+echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_%{name}_devel
+echo "%doc doc/hackersguide/*.sgml doc/hackersguide/*.fig doc/hackersguide/README" >> ${RPM_BUILD_DIR}/filelist_%{name}_devel
+%{__mv} ${RPM_BUILD_DIR}/filelist_%{name} ${RPM_BUILD_DIR}/filelist_%{name}_old
+%{__grep} -E "/include/|dhahelper\.o|libxine*\.(so|la)$|\.m4$" ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - >> ${RPM_BUILD_DIR}/filelist_%{name}_devel
+%{__grep} -v -E "/include/|dhahelper\.o|libxine*\.(so|la)$|\.m4$" ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - > ${RPM_BUILD_DIR}/filelist_%{name}
+%{__rm} ${RPM_BUILD_DIR}/filelist_%{name}_old
%endif
%if %BUILD_ALSA
-echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine2_alsa
-mv ${RPM_BUILD_DIR}/filelist_libxine2 ${RPM_BUILD_DIR}/filelist_libxine2_old
-grep "xineplug_ao_out_alsa\." ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine2_alsa
-grep -v "xineplug_ao_out_alsa\." ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine2
-rm ${RPM_BUILD_DIR}/filelist_libxine2_old
-%endif
-
-%if %BUILD_ARTS
-echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine2_arts
-mv ${RPM_BUILD_DIR}/filelist_libxine2 ${RPM_BUILD_DIR}/filelist_libxine2_old
-grep "xineplug_ao_out_arts\." ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine2_arts
-grep -v "xineplug_ao_out_arts\." ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine2
-rm ${RPM_BUILD_DIR}/filelist_libxine2_old
+echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_%{name}_alsa
+%{__mv} ${RPM_BUILD_DIR}/filelist_%{name} ${RPM_BUILD_DIR}/filelist_%{name}_old
+%{__grep} "xineplug_ao_out_alsa\." ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - >> ${RPM_BUILD_DIR}/filelist_%{name}_alsa
+%{__grep} -v "xineplug_ao_out_alsa\." ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - > ${RPM_BUILD_DIR}/filelist_%{name}
+%{__rm} ${RPM_BUILD_DIR}/filelist_%{name}_old
%endif
%if %BUILD_ESD
-echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine2_esd
-mv ${RPM_BUILD_DIR}/filelist_libxine2 ${RPM_BUILD_DIR}/filelist_libxine2_old
-grep "xineplug_ao_out_esd\." ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine2_esd
-grep -v "xineplug_ao_out_esd\." ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine2
-rm ${RPM_BUILD_DIR}/filelist_libxine2_old
+echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_%{name}_esd
+%{__mv} ${RPM_BUILD_DIR}/filelist_%{name} ${RPM_BUILD_DIR}/filelist_%{name}_old
+%{__grep} "xineplug_ao_out_esd\." ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - >> ${RPM_BUILD_DIR}/filelist_%{name}_esd
+%{__grep} -v "xineplug_ao_out_esd\." ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - > ${RPM_BUILD_DIR}/filelist_%{name}
+%{__rm} ${RPM_BUILD_DIR}/filelist_%{name}_old
%endif
%if %BUILD_DXR3
-%ifarch i386 i486 i586 i686 i786 i868 i986 k6 k7 athlon x86_64 amd64 ia32e
-echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine2_dxr3
-mv ${RPM_BUILD_DIR}/filelist_libxine2 ${RPM_BUILD_DIR}/filelist_libxine2_old
-grep "dxr3" ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine2_dxr3
-grep -v "dxr3" ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine2
-rm ${RPM_BUILD_DIR}/filelist_libxine2_old
-%endif
+echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_%{name}_dxr3
+%{__mv} ${RPM_BUILD_DIR}/filelist_%{name} ${RPM_BUILD_DIR}/filelist_%{name}_old
+%{__grep} "dxr3" ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - >> ${RPM_BUILD_DIR}/filelist_%{name}_dxr3
+%{__grep} -v "dxr3" ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - > ${RPM_BUILD_DIR}/filelist_%{name}
+%{__rm} ${RPM_BUILD_DIR}/filelist_%{name}_old
%endif
%if %BUILD_SDL
-echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine2_sdl
-mv ${RPM_BUILD_DIR}/filelist_libxine2 ${RPM_BUILD_DIR}/filelist_libxine2_old
-grep "xineplug_vo_out_sdl\." ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine2_sdl
-grep -v "xineplug_vo_out_sdl\." ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine2
-rm ${RPM_BUILD_DIR}/filelist_libxine2_old
+echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_%{name}_sdl
+%{__mv} ${RPM_BUILD_DIR}/filelist_%{name} ${RPM_BUILD_DIR}/filelist_%{name}_old
+%{__grep} "xineplug_vo_out_sdl\." ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - >> ${RPM_BUILD_DIR}/filelist_%{name}_sdl
+%{__grep} -v "xineplug_vo_out_sdl\." ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - > ${RPM_BUILD_DIR}/filelist_%{name}
+%{__rm} ${RPM_BUILD_DIR}/filelist_%{name}_old
%endif
%if %BUILD_AA
-echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine2_aa
-mv ${RPM_BUILD_DIR}/filelist_libxine2 ${RPM_BUILD_DIR}/filelist_libxine2_old
-grep "xineplug_vo_out_aa\." ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine2_aa
-grep -v "xineplug_vo_out_aa\." ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine2
-rm ${RPM_BUILD_DIR}/filelist_libxine2_old
+echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_%{name}_aa
+%{__mv} ${RPM_BUILD_DIR}/filelist_%{name} ${RPM_BUILD_DIR}/filelist_%{name}_old
+%{__grep} "xineplug_vo_out_aa\." ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - >> ${RPM_BUILD_DIR}/filelist_%{name}_aa
+%{__grep} -v "xineplug_vo_out_aa\." ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - > ${RPM_BUILD_DIR}/filelist_%{name}
+%{__rm} ${RPM_BUILD_DIR}/filelist_%{name}_old
%endif
%if %BUILD_OPENGL
-echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine2_opengl
-mv ${RPM_BUILD_DIR}/filelist_libxine2 ${RPM_BUILD_DIR}/filelist_libxine2_old
-grep -E "xineplug_vo_out_opengl\.|README.opengl" ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine2_opengl
-grep -v -E "xineplug_vo_out_opengl\.|README.opengl" ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine2
-rm ${RPM_BUILD_DIR}/filelist_libxine2_old
+echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_%{name}_opengl
+%{__mv} ${RPM_BUILD_DIR}/filelist_%{name} ${RPM_BUILD_DIR}/filelist_%{name}_old
+%{__grep} -E "xineplug_vo_out_opengl\.|README.opengl" ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - >> ${RPM_BUILD_DIR}/filelist_%{name}_opengl
+%{__grep} -v -E "xineplug_vo_out_opengl\.|README.opengl" ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - > ${RPM_BUILD_DIR}/filelist_%{name}
+%{__rm} ${RPM_BUILD_DIR}/filelist_%{name}_old
+%endif
+
+%if %BUILD_SYNCFB
+echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_%{name}_syncfb
+%{__mv} ${RPM_BUILD_DIR}/filelist_%{name} ${RPM_BUILD_DIR}/filelist_%{name}_old
+%{__grep} -E "xineplug_vo_out_syncfb\.|README\.syncfb" ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - >> ${RPM_BUILD_DIR}/filelist_%{name}_syncfb
+%{__grep} -v -E "xineplug_vo_out_syncfb\.|README\.syncfb" ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - > ${RPM_BUILD_DIR}/filelist_%{name}
+%{__rm} ${RPM_BUILD_DIR}/filelist_%{name}_old
%endif
%if %BUILD_DIRECTFB
-echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine2_directfb
-mv ${RPM_BUILD_DIR}/filelist_libxine2 ${RPM_BUILD_DIR}/filelist_libxine2_old
-grep -E "xineplug_vo_out_directfb\." ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine2_directfb
-grep -v -E "xineplug_vo_out_directfb\." ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine2
-rm ${RPM_BUILD_DIR}/filelist_libxine2_old
+echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_%{name}_directfb
+%{__mv} ${RPM_BUILD_DIR}/filelist_%{name} ${RPM_BUILD_DIR}/filelist_%{name}_old
+%{__grep} -E "xineplug_vo_out_(xd|d)irectfb\." ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - >> ${RPM_BUILD_DIR}/filelist_%{name}_directfb
+%{__grep} -v -E "xineplug_vo_out_(xd|d)irectfb\." ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - > ${RPM_BUILD_DIR}/filelist_%{name}
+%{__rm} ${RPM_BUILD_DIR}/filelist_%{name}_old
%endif
%if %BUILD_STK
-echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine2_stk
-mv ${RPM_BUILD_DIR}/filelist_libxine2 ${RPM_BUILD_DIR}/filelist_libxine2_old
-grep -E "xineplug_vo_out_stk\." ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine2_stk
-grep -v -E "xineplug_vo_out_stk\." ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine2
-rm ${RPM_BUILD_DIR}/filelist_libxine2_old
+echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_%{name}_stk
+%{__mv} ${RPM_BUILD_DIR}/filelist_%{name} ${RPM_BUILD_DIR}/filelist_%{name}_old
+%{__grep} -E "xineplug_vo_out_stk\." ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - >> ${RPM_BUILD_DIR}/filelist_%{name}_stk
+%{__grep} -v -E "xineplug_vo_out_stk\." ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - > ${RPM_BUILD_DIR}/filelist_%{name}
+%{__rm} ${RPM_BUILD_DIR}/filelist_%{name}_old
%endif
%if %BUILD_XVMC
-%ifarch i386 i486 i586 i686 i786 i868 i986 k6 k7 athlon x86_64 amd64 ia32e
-echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine2_xvmc
-mv ${RPM_BUILD_DIR}/filelist_libxine2 ${RPM_BUILD_DIR}/filelist_libxine2_old
-grep "xineplug_vo_out_x[x|v]mc\." ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine2_xvmc
-grep -v "xineplug_vo_out_x[x|v]mc\." ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine2
-rm ${RPM_BUILD_DIR}/filelist_libxine2_old
-%endif
+echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_%{name}_xvmc
+%{__mv} ${RPM_BUILD_DIR}/filelist_%{name} ${RPM_BUILD_DIR}/filelist_%{name}_old
+%{__grep} "xineplug_vo_out_x[x|v]mc\." ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - >> ${RPM_BUILD_DIR}/filelist_%{name}_xvmc
+%{__grep} -v "xineplug_vo_out_x[x|v]mc\." ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - > ${RPM_BUILD_DIR}/filelist_%{name}
+%{__rm} ${RPM_BUILD_DIR}/filelist_%{name}_old
%endif
%if %BUILD_W32DLL
%ifarch i386 i486 i586 i686 i786 i868 i986 k6 k7 athlon
-echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine2_w32dll
-mv ${RPM_BUILD_DIR}/filelist_libxine2 ${RPM_BUILD_DIR}/filelist_libxine2_old
-grep -E "xineplug_decode_qt\.|xineplug_decode_w32dll\." ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine2_w32dll
-grep -v -E "xineplug_decode_qt\.|xineplug_decode_w32dll\." ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine2
-rm ${RPM_BUILD_DIR}/filelist_libxine2_old
+echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_%{name}_w32dll
+%{__mv} ${RPM_BUILD_DIR}/filelist_%{name} ${RPM_BUILD_DIR}/filelist_%{name}_old
+%{__grep} -E "xineplug_decode_qt\.|xineplug_decode_w32dll\." ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - >> ${RPM_BUILD_DIR}/filelist_%{name}_w32dll
+%{__grep} -v -E "xineplug_decode_qt\.|xineplug_decode_w32dll\." ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - > ${RPM_BUILD_DIR}/filelist_%{name}
+%{__rm} ${RPM_BUILD_DIR}/filelist_%{name}_old
%endif
%endif
%if %BUILD_DVB
-echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine2_dvb
-mv ${RPM_BUILD_DIR}/filelist_libxine2 ${RPM_BUILD_DIR}/filelist_libxine2_old
-grep -E "xineplug_inp_dvb\.|README\.dvb" ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine2_dvb
-grep -v -E "xineplug_inp_dvb\.|README\.dvb" ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine2
-rm ${RPM_BUILD_DIR}/filelist_libxine2_old
+echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_%{name}_dvb
+%{__mv} ${RPM_BUILD_DIR}/filelist_%{name} ${RPM_BUILD_DIR}/filelist_%{name}_old
+%{__grep} -E "xineplug_inp_dvb\.|README\.dvb" ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - >> ${RPM_BUILD_DIR}/filelist_%{name}_dvb
+%{__grep} -v -E "xineplug_inp_dvb\.|README\.dvb" ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - > ${RPM_BUILD_DIR}/filelist_%{name}
+%{__rm} ${RPM_BUILD_DIR}/filelist_%{name}_old
%endif
%if %BUILD_DVD
-echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine2_dvd
-mv ${RPM_BUILD_DIR}/filelist_libxine2 ${RPM_BUILD_DIR}/filelist_libxine2_old
-grep -E "xineplug_inp_dvd\.|README\.network_dvd" ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine2_dvd
-grep -v -E "xineplug_inp_dvd\.|README\.network_dvd" ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine2
-rm ${RPM_BUILD_DIR}/filelist_libxine2_old
+echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_%{name}_dvd
+%{__mv} ${RPM_BUILD_DIR}/filelist_%{name} ${RPM_BUILD_DIR}/filelist_%{name}_old
+%{__grep} -E "xineplug_inp_dvd\.|README\.network_dvd" ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - >> ${RPM_BUILD_DIR}/filelist_%{name}_dvd
+%{__grep} -v -E "xineplug_inp_dvd\.|README\.network_dvd" ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - > ${RPM_BUILD_DIR}/filelist_%{name}
+%{__rm} ${RPM_BUILD_DIR}/filelist_%{name}_old
%endif
%if %BUILD_GNOME_VFS
-echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine2_gnome_vfs
-mv ${RPM_BUILD_DIR}/filelist_libxine2 ${RPM_BUILD_DIR}/filelist_libxine2_old
-grep "xineplug_inp_gnome_vfs\." ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine2_gnome_vfs
-grep -v "xineplug_inp_gnome_vfs\." ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine2
-rm ${RPM_BUILD_DIR}/filelist_libxine2_old
+echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_%{name}_gnome_vfs
+%{__mv} ${RPM_BUILD_DIR}/filelist_%{name} ${RPM_BUILD_DIR}/filelist_%{name}_old
+%{__grep} "xineplug_inp_gnome_vfs\." ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - >> ${RPM_BUILD_DIR}/filelist_%{name}_gnome_vfs
+%{__grep} -v "xineplug_inp_gnome_vfs\." ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - > ${RPM_BUILD_DIR}/filelist_%{name}
+%{__rm} ${RPM_BUILD_DIR}/filelist_%{name}_old
%endif
%if %BUILD_FLAC
-echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine2_flac
-mv ${RPM_BUILD_DIR}/filelist_libxine2 ${RPM_BUILD_DIR}/filelist_libxine2_old
-grep "xineplug_flac\." ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine2_flac
-grep -v "xineplug_flac\." ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine2
-rm ${RPM_BUILD_DIR}/filelist_libxine2_old
+echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_%{name}_flac
+%{__mv} ${RPM_BUILD_DIR}/filelist_%{name} ${RPM_BUILD_DIR}/filelist_%{name}_old
+%{__grep} "xineplug_flac\." ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - >> ${RPM_BUILD_DIR}/filelist_%{name}_flac
+%{__grep} -v "xineplug_flac\." ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - > ${RPM_BUILD_DIR}/filelist_%{name}
+%{__rm} ${RPM_BUILD_DIR}/filelist_%{name}_old
%endif
%if %BUILD_OGG
-echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine2_ogg
-mv ${RPM_BUILD_DIR}/filelist_libxine2 ${RPM_BUILD_DIR}/filelist_libxine2_old
-grep -E "xineplug_decode_vorbis\.|xineplug_dmx_ogg\.|xineplug_decode_theora\.|xineplug_decode_speex\." ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine2_ogg
-grep -v -E "xineplug_decode_vorbis\.|xineplug_dmx_ogg\.|xineplug_decode_theora\.|xineplug_decode_speex\." ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine2
-rm ${RPM_BUILD_DIR}/filelist_libxine2_old
+echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_%{name}_ogg
+%{__mv} ${RPM_BUILD_DIR}/filelist_%{name} ${RPM_BUILD_DIR}/filelist_%{name}_old
+%{__grep} -E "xineplug_decode_vorbis\.|xineplug_dmx_ogg\.|xineplug_decode_theora\.|xineplug_decode_speex\." ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - >> ${RPM_BUILD_DIR}/filelist_%{name}_ogg
+%{__grep} -v -E "xineplug_decode_vorbis\.|xineplug_dmx_ogg\.|xineplug_decode_theora\.|xineplug_decode_speex\." ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - > ${RPM_BUILD_DIR}/filelist_%{name}
+%{__rm} ${RPM_BUILD_DIR}/filelist_%{name}_old
%endif
%if %BUILD_JACK
-echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine2_jack
-mv ${RPM_BUILD_DIR}/filelist_libxine2 ${RPM_BUILD_DIR}/filelist_libxine2_old
-grep "xineplug_ao_out_jack\." ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine2_jack
-grep -v "xineplug_ao_out_jack\." ${RPM_BUILD_DIR}/filelist_libxine2_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine2
-rm ${RPM_BUILD_DIR}/filelist_libxine2_old
+echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_%{name}_jack
+%{__mv} ${RPM_BUILD_DIR}/filelist_%{name} ${RPM_BUILD_DIR}/filelist_%{name}_old
+%{__grep} "xineplug_ao_out_jack\." ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - >> ${RPM_BUILD_DIR}/filelist_%{name}_jack
+%{__grep} -v "xineplug_ao_out_jack\." ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - > ${RPM_BUILD_DIR}/filelist_%{name}
+%{__rm} ${RPM_BUILD_DIR}/filelist_%{name}_old
+%endif
+%if %BUILD_PULSE
+echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_%{name}_pulse
+%{__mv} ${RPM_BUILD_DIR}/filelist_%{name} ${RPM_BUILD_DIR}/filelist_%{name}_old
+%{__grep} "xineplug_ao_out_pulse" ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - >> ${RPM_BUILD_DIR}/filelist_%{name}_pulse
+%{__grep} -v "xineplug_ao_out_pulse" ${RPM_BUILD_DIR}/filelist_%{name}_old | %{__cat} - > ${RPM_BUILD_DIR}/filelist_%{name}
+%{__rm} ${RPM_BUILD_DIR}/filelist_%{name}_old
%endif
%clean
-[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
+[ "${RPM_BUILD_ROOT}" != "/" ] && %{__rm} -rf ${RPM_BUILD_ROOT}
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
-%files -f ../filelist_libxine2
+%files -f ../filelist_%{name}
%if %BUILD_DEVEL
-%files devel -f ../filelist_libxine2_devel
+%files -n %{shortname}-devel -f ../filelist_%{name}_devel
%endif
%if %BUILD_ALSA
-%files alsa -f ../filelist_libxine2_alsa
+%files alsa -f ../filelist_%{name}_alsa
%endif
%if %BUILD_ARTS
-%files arts -f ../filelist_libxine2_arts
+%files arts -f ../filelist_%{name}_arts
%endif
%if %BUILD_ESD
-%files esd -f ../filelist_libxine2_esd
+%files esd -f ../filelist_%{name}_esd
%endif
%if %BUILD_DXR3
-%ifarch i386 i486 i586 i686 i786 i868 i986 k6 k7 athlon x86_64 amd64 ia32e
-%files dxr3 -f ../filelist_libxine2_dxr3
-%endif
+%files dxr3 -f ../filelist_%{name}_dxr3
%endif
%if %BUILD_SDL
-%files sdl -f ../filelist_libxine2_sdl
+%files sdl -f ../filelist_%{name}_sdl
%endif
%if %BUILD_AA
-%files aa -f ../filelist_libxine2_aa
+%files aa -f ../filelist_%{name}_aa
%endif
%if %BUILD_OPENGL
-%files opengl -f ../filelist_libxine2_opengl
+%files opengl -f ../filelist_%{name}_opengl
+%endif
+
+%if %BUILD_SYNCFB
+%files syncfb -f ../filelist_%{name}_syncfb
%endif
%if %BUILD_DIRECTFB
-%files directfb -f ../filelist_libxine2_directfb
+%files directfb -f ../filelist_%{name}_directfb
%endif
%if %BUILD_STK
-%files stk -f ../filelist_libxine2_stk
+%files stk -f ../filelist_%{name}_stk
%endif
%if %BUILD_XVMC
-%ifarch i386 i486 i586 i686 i786 i868 i986 k6 k7 athlon x86_64 amd64 ia32e
-%files xvmc -f ../filelist_libxine2_xvmc
-%endif
+%files xvmc -f ../filelist_%{name}_xvmc
%endif
%if %BUILD_W32DLL
%ifarch i386 i486 i586 i686 i786 i868 i986 k6 k7 athlon
-%files w32dll -f ../filelist_libxine2_w32dll
+%files w32dll -f ../filelist_%{name}_w32dll
%endif
%endif
%if %BUILD_DVB
-%files dvb -f ../filelist_libxine2_dvb
+%files dvb -f ../filelist_%{name}_dvb
%endif
%if %BUILD_DVD
-%files dvd -f ../filelist_libxine2_dvd
+%files dvd -f ../filelist_%{name}_dvd
%endif
%if %BUILD_GNOME_VFS
-%files gnome-vfs -f ../filelist_libxine2_gnome_vfs
+%files gnome-vfs -f ../filelist_%{name}_gnome_vfs
%endif
%if %BUILD_FLAC
-%files flac -f ../filelist_libxine2_flac
+%files flac -f ../filelist_%{name}_flac
%endif
%if %BUILD_OGG
-%files ogg -f ../filelist_libxine2_ogg
+%files ogg -f ../filelist_%{name}_ogg
%endif
%if %BUILD_JACK
-%files jack -f ../filelist_libxine2_jack
+%files jack -f ../filelist_%{name}_jack
+%endif
+
+%if %BUILD_PULSE
+%files pulse -f ../filelist_%{name}_pulse
%endif
%changelog
+* Sun Dec 09 2007 Manfred Tremmel <Manfred.Tremmel@iiv.de>
+- stk and arts plugins are no longer build by default, enable
+ them, when subpackages are selected
+- added optional subpackage for pulseaudio
+- switched to external vcdlibs
+- using macros for shell commands, when rpm provides them
+- some other cleanups
+* Sun Oct 15 2006 Manfred Tremmel <Manfred.Tremmel@iiv.de>
+- some little changes to enable caca plugin
* Sat Aug 26 2006 František Dvořák <valtri@users.sourceforge.net>
- tiny translation update
- fixed rpmbuild
diff --git a/src/demuxers/demux_asf.c b/src/demuxers/demux_asf.c
index 57624aa15..827557333 100644
--- a/src/demuxers/demux_asf.c
+++ b/src/demuxers/demux_asf.c
@@ -379,10 +379,21 @@ static int asf_read_header (demux_asf_t *this) {
uint8_t *asf_header_buffer = NULL;
asf_header_len = get_le64(this);
- asf_header_buffer = alloca(asf_header_len);
+ if (asf_header_len > 4 * 1024 * 1024)
+ {
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ "demux_asf: asf_read_header: overly-large header? (%"PRIu64" bytes)\n",
+ asf_header_len);
+ return 0;
+ }
+
+ asf_header_buffer = malloc (asf_header_len);
if (this->input->read (this->input, asf_header_buffer, asf_header_len) != asf_header_len)
+ {
+ free (asf_header_buffer);
return 0;
+ }
/* delete previous header */
if (this->asf_header) {
@@ -395,7 +406,11 @@ static int asf_read_header (demux_asf_t *this) {
*/
this->asf_header = asf_header_new(asf_header_buffer, asf_header_len);
if (!this->asf_header)
+ {
+ free (asf_header_buffer);
return 0;
+ }
+ free (asf_header_buffer);
lprintf("asf header parsing ok\n");
diff --git a/src/demuxers/demux_ts.c b/src/demuxers/demux_ts.c
index e80e8af70..2f88c8963 100644
--- a/src/demuxers/demux_ts.c
+++ b/src/demuxers/demux_ts.c
@@ -1169,6 +1169,15 @@ printf("Program Number is %i, looking for %i\n",program_number,this->program_num
return;
}
+ if (!section_length) {
+ free (this->pmt[program_count]);
+ this->pmt[program_count] = NULL;
+#ifdef TS_PMT_LOG
+ printf ("ts_demux: eek, zero-length section?\n");
+#endif
+ return;
+ }
+
#ifdef TS_PMT_LOG
printf ("ts_demux: have all TS packets for the PMT section\n");
#endif
diff --git a/src/xine-engine/audio_out.c b/src/xine-engine/audio_out.c
index 5162c1883..855051582 100644
--- a/src/xine-engine/audio_out.c
+++ b/src/xine-engine/audio_out.c
@@ -291,6 +291,7 @@ struct audio_fifo_s {
int num_buffers;
};
+static int ao_get_property (xine_audio_port_t *this_gen, int property);
static int ao_set_property (xine_audio_port_t *this_gen, int property, int value);
static audio_fifo_t *fifo_new (xine_t *xine) {
@@ -1614,13 +1615,17 @@ static void ao_close(xine_audio_port_t *this_gen, xine_stream_t *stream) {
xprintf (this->xine, XINE_VERBOSITY_DEBUG, "audio_out: no streams left, closing driver\n");
if (this->audio_loop_running) {
+ /* make sure there are no more buffers on queue */
if (this->clock->speed == XINE_SPEED_PAUSE ||
(this->clock->speed != XINE_FINE_SPEED_NORMAL && !this->slow_fast_audio)) {
- /* discard buffers, otherwise we'll wait forever */
+ int discard = ao_get_property(this_gen, AO_PROP_DISCARD_BUFFERS);
+ /* discard buffers while waiting, otherwise we'll wait forever */
ao_set_property(this_gen, AO_PROP_DISCARD_BUFFERS, 1);
+ fifo_wait_empty(this->out_fifo);
+ ao_set_property(this_gen, AO_PROP_DISCARD_BUFFERS, discard);
}
- /* make sure there are no more buffers on queue */
- fifo_wait_empty(this->out_fifo);
+ else
+ fifo_wait_empty(this->out_fifo);
}
pthread_mutex_lock( &this->driver_lock );