X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=ffmpeg.spec;h=329ccc42dc1571d614d74fce56d51d42355785d4;hb=daf9a670ef1c0bdf8fd0953f738fa58e5b16368e;hp=6f772b195c3c7c6e4ffe25957713dad47e909d01;hpb=b0ebd04c0feddbf9e2b78cee19294f98a9274cec;p=packages%2Fffmpeg.git diff --git a/ffmpeg.spec b/ffmpeg.spec index 6f772b1..329ccc4 100644 --- a/ffmpeg.spec +++ b/ffmpeg.spec @@ -1,50 +1,84 @@ # TODO -# - libnut enabled no (http://www.nut-container.org/) +# - is bug803 patch still needed? the code changed somehow +# +# Workaround ffmpeg.spec & opencv.spec updating: +# +# 1. make-request -r --without opencv ffmpeg.spec +# 2. make-request -r opencv.spec +# 3. bump release of ffmpeg.spec +# 4. make-request -r ffmpeg.spec # # Conditional build: -%bcond_with nonfree # non free options of package +%bcond_with nonfree # non free options of package (currently: faac) +%bcond_with aacplus # AAC+ encoding via libaacplus (requires nonfree) %bcond_without autoreqdep # don't care about package name deps generated by rpm -%bcond_without imlib2 # don't build imlib2 vhook module - -Summary: FFmpeg is a very fast video and audio converter -Summary(pl.UTF-8): Koder audio/wideo czasu rzeczywistego oraz serwer strumieni +%bcond_without frei0r # build without frei0r video filtering +%bcond_without openal # build without OpenAL 1.1 capture support +%bcond_without opencv # build without opencv video filtering +%bcond_without pulseaudio # build without PulseAudio input support +%bcond_without x264 # build without x264 encoder +%bcond_without utvideo # build without Ut Video decoder +%bcond_without va # VAAPI (Video Acceleration API) +%bcond_without vpx # VP8, a high-quality video codec +%bcond_without doc # don't build docs + +Summary: FFmpeg - a very fast video and audio converter +Summary(pl.UTF-8): FFmpeg - szybki konwerter audio/wideo Name: ffmpeg -Version: 0.5.1 +Version: 0.9 Release: 2 # LGPL or GPL, chosen at configure time (GPL version is more featured) -# (postprocessing, ac3, xvid, x264, faad) +# (postprocessing, some filters, x264, xavs, xvid, x11grab) +# using v3 allows Apache-licensed libs (opencore-amr, libvo-*enc) License: GPL v3+ with LGPL v3+ parts Group: Applications/Multimedia -Source0: http://ffmpeg.mplayerhq.hu/releases/%{name}-%{version}.tar.bz2 -# Source0-md5: c7b0e1729f7aafb10496d79bb963bb26 +Source0: http://ffmpeg.org/releases/%{name}-%{version}.tar.bz2 +# Source0-md5: 795058de6fc432aa11271408273a0535 Source1: ffserver.init Source2: ffserver.sysconfig Source3: ffserver.conf Patch0: %{name}-bug-803.patch -Patch1: imagewidth.patch +Patch1: %{name}-gsm.patch URL: http://www.ffmpeg.org/ +%{?with_openal:BuildRequires: OpenAL-devel} BuildRequires: SDL-devel +BuildRequires: alsa-lib-devel +BuildRequires: bzip2-devel +BuildRequires: celt-devel >= 0.11.0 BuildRequires: dirac-devel >= 1.0.0 -BuildRequires: faac-devel -BuildRequires: faad2-devel +%{?with_nonfree:BuildRequires: faac-devel} BuildRequires: freetype-devel +%{?with_frei0r:BuildRequires: frei0r-devel} %ifarch ppc # require version with altivec support fixed BuildRequires: gcc >= 5:3.3.2-3 %endif -%{?with_imlib2:BuildRequires: imlib2-devel >= 1.3.0} -BuildRequires: lame-libs-devel +BuildRequires: gnutls-devel +BuildRequires: jack-audio-connection-kit-devel +BuildRequires: lame-libs-devel >= 3.98.3 +%{?with_aacplus:BuildRequires: libaacplus-devel >= 2.0.0} +BuildRequires: libass-devel +BuildRequires: libcdio-devel BuildRequires: libdc1394-devel BuildRequires: libgsm-devel -BuildRequires: libraw1394-devel +BuildRequires: libmodplug-devel +BuildRequires: libnut-devel +BuildRequires: libraw1394-devel >= 2 +BuildRequires: librtmp-devel BuildRequires: libtheora-devel >= 1.0-0.beta3 BuildRequires: libtool >= 2:1.4d-3 +BuildRequires: libv4l-devel +%{?with_va:BuildRequires: libva-devel >= 1.0.3} BuildRequires: libvdpau-devel BuildRequires: libvorbis-devel -BuildRequires: libx264-devel >= 0.1.3 +%{?with_vpx:BuildRequires: libvpx-devel >= 0.9.6} +# X264_BUILD >= 118 +%{?with_x264:BuildRequires: libx264-devel >= 0.1.3-1.20111212_2245} BuildRequires: opencore-amr-devel +%{?with_opencv:BuildRequires: opencv-devel} BuildRequires: openjpeg-devel >= 1.3-2 -BuildRequires: speex-devel +%{?with_pulseaudio:BuildRequires: pulseaudio-devel} +BuildRequires: speex-devel >= 1:1.2-rc1 %ifarch %{ix86} %ifnarch i386 i486 BuildRequires: nasm @@ -55,10 +89,15 @@ BuildRequires: perl-tools-pod BuildRequires: pkgconfig BuildRequires: rpmbuild(macros) >= 1.470 BuildRequires: schroedinger-devel -BuildRequires: speex-devel -BuildRequires: tetex -BuildRequires: texi2html -BuildRequires: texinfo +%{?with_doc:BuildRequires: tetex} +%{?with_doc:BuildRequires: texi2html} +%{?with_doc:BuildRequires: texinfo} +%{?with_utvideo:BuildRequires: utvideo-devel} +BuildRequires: vo-aacenc-devel +BuildRequires: vo-amrwbenc-devel +BuildRequires: xavs-devel +BuildRequires: xorg-lib-libXext-devel +BuildRequires: xorg-lib-libXfixes-devel BuildRequires: xvid-devel >= 1:1.1.0 BuildRequires: zlib-devel %{?with_autoreqdep:BuildConflicts: libpostproc} @@ -85,12 +124,11 @@ another. It also supports grabbing and encoding in real time from a TV card. %description -l pl.UTF-8 -ffmpeg jest bardzo szybkim koderem audio/wideo w czasie rzeczywistym -oraz serwerem strumieni multimedialnych. ffmpeg potrafi zrzucać dane -ze standardowego urządzenia Video4Linux i przekonwertować je w kilka -formatów plików bazujących na kodowaniu DCT/kompensacji ruchu. Dźwięk -jest kompresowany do strumienia MPEG audio layer 2 lub używając -strumienia kompatybilnego z AC3. +FFmpeg to kompletne rozwiązanie nagrywania, konwersji i transmisji +strumieni dźwięku i obrazu. Jest to działające z linii poleceń +narzędzie do konwersji obrazu z jednego formatu do innego. Obsługuje +także przechwytywanie i kodowanie w czasie rzeczywistym z karty +telewizyjnej. %package libs Summary: ffmpeg libraries @@ -98,31 +136,54 @@ Summary(pl.UTF-8): Biblioteki ffmpeg Group: Libraries %description libs -This package contains: -- the codec library from the ffmpeg project. It supports most existing - encoding formats (MPEG, DivX, MPEG4, AC3, DV...), -- demuxer library from the ffmpeg project. It supports most existing - file formats (AVI, MPEG, OGG, Matroska, ASF...), -- video postprocessing library from the ffmpeg project. +This package contains the ffmpeg shared libraries: +- the codec library (libavcodec). It supports most existing encoding + formats (MPEG, DivX, MPEG4, AC3, DV...), +- demuxer library (libavformat). It supports most existing file + formats (AVI, MPEG, OGG, Matroska, ASF...), +- video postprocessing library (libpostproc). %description libs -l pl.UTF-8 -Ten pakiet zawiera biblioteki współdzielone ffmpeg. +Ten pakiet zawiera biblioteki współdzielone ffmpeg: +- bibliotekę kodeków (libavcodec); obsługuje większość istniejących + formatów kodowania (MPEG, DivX, MPEG4, AC3, DV...), +- bibliotekę demuksera (libavformat); obsługuje większość istniejących + formatów plików (AVI, MPEG, OGG, Matroska, ASF...), +- bibliotekę postprocessingu (libpostproc). %package devel Summary: ffmpeg header files Summary(pl.UTF-8): Pliki nagłówkowe ffmpeg Group: Development/Libraries Requires: %{name}-libs = %{version}-%{release} -# for libavcodec: -Requires: dirac-devel -Requires: faac-devel -Requires: faad2-devel -Requires: lame-libs-devel +# Libs.private from *.pc (unreasonably they are all the same) +Requires: SDL-devel +Requires: alsa-lib-devel +Requires: bzip2-devel +Requires: celt-devel +Requires: dirac-devel >= 1.0.0 +%{?with_nonfree:Requires: faac-devel} +Requires: jack-audio-connection-kit-devel +Requires: lame-libs-devel >= 3.98.3 +Requires: libdc1394-devel Requires: libgsm-devel -Requires: libraw1394-devel -Requires: libtheora-devel >= 1.0-0.alpha7 +Requires: libnut-devel +Requires: libraw1394-devel >= 2 +Requires: librtmp-devel +Requires: libtheora-devel >= 1.0-0.beta3 +%{?with_va:Requires: libva-devel >= 1.0.3} Requires: libvorbis-devel -Requires: libx264-devel >= 0.1.2-1.20060828_2245.1 +%{?with_vpx:Requires: libvpx-devel >= 0.9.6} +%{?with_x264:Requires: libx264-devel >= 0.1.3-1.20110625_2245} +Requires: opencore-amr-devel +Requires: openjpeg-devel >= 1.3-2 +Requires: schroedinger-devel +Requires: speex-devel >= 1:1.2-rc1 +Requires: vo-aacenc-devel +Requires: vo-amrwbenc-devel +Requires: xavs-devel +Requires: xorg-lib-libXext-devel +Requires: xorg-lib-libXfixes-devel Requires: xvid-devel >= 1:1.1.0 Requires: zlib-devel Obsoletes: libpostproc-devel @@ -161,24 +222,6 @@ FFplay to bardzo prosty i przenośny odtwarzacz mediów używający bibliotek FFmpeg oraz biblioteki SDL. Jest używany głównie do testowania różnych API FFmpeg. -%package vhook-imlib2 -Summary: imlib2 based hook -Summary(pl.UTF-8): Moduł przejściowy oparty o imlib2 -Group: Libraries -Requires: %{name}-libs = %{version}-%{release} - -%description vhook-imlib2 -This module implements a text overlay for a video image. Currently it -supports a fixed overlay or reading the text from a file. The string -is passed through strftime so that it is easy to imprint the date and -time onto the image. - -%description vhook-imlib2 -l pl.UTF-8 -Ten moduł implementuje tekstową nakładkę dla obrazu. Aktualnie -obsługuje stałą nakładkę lub wczytywanie tekstu z pliku. Łańcuch jest -przepuszczany przez strftime, więc łatwo umieścić datę i czas na -obrazie. - %package ffserver Summary: FFserver video server Summary(pl.UTF-8): FFserver - serwer strumieni obrazu @@ -203,7 +246,7 @@ dużej przestrzeni na dane skonfigurowanej w ffserver.conf). %prep %setup -q %patch0 -p1 -%patch1 -p1 +%patch1 -p0 # package the grep result for mplayer, the result formatted as ./mplayer/configure cat < ffmpeg-avconfig @@ -275,28 +318,45 @@ EOF --disable-optimizations \ --disable-stripping \ --enable-avfilter \ + --enable-gnutls \ --enable-gpl \ --enable-version3 \ + %{?with_frei0r:--enable-frei0r} \ + %{?with_aacplus:--enable-libaacplus} \ + --enable-libass \ + --enable-libcelt \ + --enable-libcdio \ --enable-libdc1394 \ --enable-libdirac \ - --enable-libfaad \ - --enable-libfaadbin \ --enable-libgsm \ + --enable-libmodplug \ --enable-libmp3lame \ + --enable-libnut \ + --enable-libopencore-amrnb \ + --enable-libopencore-amrwb \ + %{?with_opencv:--enable-libopencv} \ + --enable-libopenjpeg \ + %{?with_pulseaudio:--enable-libpulse} \ + --enable-librtmp \ --enable-libschroedinger \ --enable-libspeex \ --enable-libtheora \ + %{?with_utvideo:--enable-libutvideo} \ + --enable-libv4l2 \ + --enable-libvo-aacenc \ + --enable-libvo-amrwbenc \ --enable-libvorbis \ - --enable-libx264 \ + %{?with_vpx:--enable-libvpx} \ + %{?with_x264:--enable-libx264} \ + --enable-libxavs \ --enable-libxvid \ - --enable-libopencore-amrnb \ - --enable-libopencore-amrwb \ - --enable-libopenjpeg \ + %{?with_openal:--enable-openal} \ --enable-postproc \ --enable-pthreads \ --enable-shared \ --enable-swscale \ --enable-vdpau \ + --enable-x11grab \ %ifnarch %{ix86} %{x8664} --disable-mmx \ %endif @@ -307,12 +367,16 @@ EOF --enable-nonfree \ --enable-libfaac \ %endif - --enable-runtime-cpudetect + --enable-runtime-cpudetect # force oldscaler build -sed -i -e 's|#define.*CONFIG_OLDSCALER.*0|#define CONFIG_OLDSCALER 1|g' config.h +%{__sed} -i -e 's|#define.*CONFIG_OLDSCALER.*0|#define CONFIG_OLDSCALER 1|g' config.h -%{__make} +%{__make} \ + V=1 + +# CC_O to add -c to commandline. makefile should be patched +%{__make} tools/qt-faststart V=1 CC_O='-c -o $@' %install rm -rf $RPM_BUILD_ROOT @@ -321,7 +385,8 @@ install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_sbindir},/etc/{sysconfig,rc.d/init. $RPM_BUILD_ROOT/var/{cache,log}/ffserver %{__make} install \ - DESTDIR=$RPM_BUILD_ROOT + DESTDIR=$RPM_BUILD_ROOT \ + V=1 cp -a config.h $RPM_BUILD_ROOT%{_includedir}/ffmpeg cp -a libavutil/intreadwrite.h $RPM_BUILD_ROOT%{_includedir}/libavutil @@ -333,22 +398,25 @@ for a in libavutil/*/bswap.h; do done cp -a libavformat/riff.h $RPM_BUILD_ROOT%{_includedir}/libavformat cp -a libavformat/avio.h $RPM_BUILD_ROOT%{_includedir}/libavformat +# for lim-omx ffmpeg components +cp -a libavcodec/audioconvert.h $RPM_BUILD_ROOT%{_includedir}/libavcodec -install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/ffserver -install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/ffserver -install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/ffserver.conf +install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/ffserver +cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/ffserver +cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/ffserver.conf mv -f $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/ffserver +install -p tools/qt-faststart $RPM_BUILD_ROOT%{_bindir} # install as ffmpeg-avconfig to avoid with possible programs looking for # ffmpeg-config and expecting --libs output from it which is not implemented # simple to do (by querying pkgconfig), but why? -install ffmpeg-avconfig $RPM_BUILD_ROOT%{_bindir}/ffmpeg-avconfig +install -p ffmpeg-avconfig $RPM_BUILD_ROOT%{_bindir}/ffmpeg-avconfig %clean rm -rf $RPM_BUILD_ROOT -%post libs -p /sbin/ldconfig -%postun libs -p /sbin/ldconfig +%post libs -p /sbin/ldconfig +%postun libs -p /sbin/ldconfig %pre ffserver %groupadd -g 167 ffserver @@ -372,47 +440,48 @@ fi %files %defattr(644,root,root,755) -%doc Changelog README doc/*.html doc/TODO +%doc CREDITS LICENSE MAINTAINERS README doc/{APIchanges,RELEASE_NOTES} %{?with_doc:doc/*.html} +%attr(755,root,root) %{_bindir}/avconv %attr(755,root,root) %{_bindir}/ffmpeg +%attr(755,root,root) %{_bindir}/ffprobe +%attr(755,root,root) %{_bindir}/qt-faststart %dir %{_datadir}/ffmpeg %{_datadir}/ffmpeg/*.ffpreset -%{_mandir}/man1/ffmpeg.1* +%{?with_doc:%{_mandir}/man1/avconv.1*} +%{?with_doc:%{_mandir}/man1/ffmpeg.1*} +%{?with_doc:%{_mandir}/man1/ffprobe.1*} %files libs %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/libavcodec.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libavcodec.so.52 +%attr(755,root,root) %ghost %{_libdir}/libavcodec.so.53 %attr(755,root,root) %{_libdir}/libavdevice.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libavdevice.so.52 +%attr(755,root,root) %ghost %{_libdir}/libavdevice.so.53 %attr(755,root,root) %{_libdir}/libavfilter.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libavfilter.so.0 +%attr(755,root,root) %ghost %{_libdir}/libavfilter.so.2 %attr(755,root,root) %{_libdir}/libavformat.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libavformat.so.52 +%attr(755,root,root) %ghost %{_libdir}/libavformat.so.53 %attr(755,root,root) %{_libdir}/libavutil.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libavutil.so.49 +%attr(755,root,root) %ghost %{_libdir}/libavutil.so.51 %attr(755,root,root) %{_libdir}/libpostproc.so.*.*.* %attr(755,root,root) %ghost %{_libdir}/libpostproc.so.51 +%attr(755,root,root) %{_libdir}/libswresample.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libswresample.so.0 %attr(755,root,root) %{_libdir}/libswscale.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libswscale.so.0 - -%dir %{_libdir}/vhook -%attr(755,root,root) %{_libdir}/vhook/drawtext.so -%attr(755,root,root) %{_libdir}/vhook/fish.so -%attr(755,root,root) %{_libdir}/vhook/null.so -%attr(755,root,root) %{_libdir}/vhook/ppm.so -%attr(755,root,root) %{_libdir}/vhook/watermark.so +%attr(755,root,root) %ghost %{_libdir}/libswscale.so.2 %files devel %defattr(644,root,root,755) %doc doc/optimization.txt +%attr(755,root,root) %{_bindir}/ffmpeg-avconfig %attr(755,root,root) %{_libdir}/libavcodec.so %attr(755,root,root) %{_libdir}/libavdevice.so %attr(755,root,root) %{_libdir}/libavfilter.so %attr(755,root,root) %{_libdir}/libavformat.so %attr(755,root,root) %{_libdir}/libavutil.so %attr(755,root,root) %{_libdir}/libpostproc.so +%attr(755,root,root) %{_libdir}/libswresample.so %attr(755,root,root) %{_libdir}/libswscale.so -%attr(755,root,root) %{_bindir}/ffmpeg-avconfig %{_includedir}/ffmpeg %{_includedir}/libavcodec %{_includedir}/libavdevice @@ -420,23 +489,32 @@ fi %{_includedir}/libavformat %{_includedir}/libavutil %{_includedir}/libpostproc +%{_includedir}/libswresample %{_includedir}/libswscale -%{_pkgconfigdir}/*.pc +%{_pkgconfigdir}/libavcodec.pc +%{_pkgconfigdir}/libavdevice.pc +%{_pkgconfigdir}/libavfilter.pc +%{_pkgconfigdir}/libavformat.pc +%{_pkgconfigdir}/libavutil.pc +%{_pkgconfigdir}/libpostproc.pc +%{_pkgconfigdir}/libswresample.pc +%{_pkgconfigdir}/libswscale.pc %files static %defattr(644,root,root,755) -%{_libdir}/lib*.a +%{_libdir}/libavcodec.a +%{_libdir}/libavdevice.a +%{_libdir}/libavfilter.a +%{_libdir}/libavformat.a +%{_libdir}/libavutil.a +%{_libdir}/libpostproc.a +%{_libdir}/libswresample.a +%{_libdir}/libswscale.a %files ffplay %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/ffplay -%{_mandir}/man1/ffplay.1* - -%if %{with imlib2} -%files vhook-imlib2 -%defattr(644,root,root,755) -%attr(755,root,root) %{_libdir}/vhook/imlib2.so -%endif +%{?with_doc:%{_mandir}/man1/ffplay.1*} %files ffserver %defattr(644,root,root,755) @@ -444,6 +522,6 @@ fi %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/ffserver %attr(755,root,root) %{_sbindir}/ffserver %attr(754,root,root) /etc/rc.d/init.d/ffserver -%{_mandir}/man1/ffserver.1* +%{?with_doc:%{_mandir}/man1/ffserver.1*} %dir %attr(770,root,ffserver) /var/cache/ffserver %dir %attr(770,root,ffserver) /var/log/ffserver