diff options
-rw-r--r-- | ChangeLog | 13 | ||||
-rw-r--r-- | misc/xine-config | 2 | ||||
-rw-r--r-- | misc/xine-lib.spec.in | 379 | ||||
-rw-r--r-- | src/demuxers/demux_asf.c | 17 | ||||
-rw-r--r-- | src/demuxers/demux_ts.c | 9 | ||||
-rw-r--r-- | src/xine-engine/audio_out.c | 11 |
6 files changed, 263 insertions, 168 deletions
@@ -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 ); |