]> git.pld-linux.org Git - packages/ffmpeg.git/blobdiff - ffmpeg.spec
- opencv bcond, added comment about ffmpeg/opencv build dependency loop
[packages/ffmpeg.git] / ffmpeg.spec
index 7afbdf3c7f922cabf4e6dae9ab0a35477152052b..dbc35211ac22d8cee8f003cd8c2b70b7b321bcb4 100644 (file)
@@ -1,50 +1,74 @@
 # 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 opencv          # build without opencv video filtering
+%bcond_without x264            # build without x264 encoder
+%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
-Release:       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/
 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: jack-audio-connection-kit-devel
+BuildRequires: lame-libs-devel >= 3.98.3
+%{?with_aacplus:BuildRequires: libaacplus-devel >= 2.0.0}
 BuildRequires: libdc1394-devel
 BuildRequires: libgsm-devel
-BuildRequires: libraw1394-devel
+BuildRequires: libnut-devel
+BuildRequires: libraw1394-devel >= 2
+BuildRequires: librtmp-devel
 BuildRequires: libtheora-devel >= 1.0-0.beta3
 BuildRequires: libtool >= 2:1.4d-3
+%{?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
+BuildRequires: speex-devel >= 1:1.2-rc1
 %ifarch %{ix86}
 %ifnarch i386 i486
 BuildRequires: nasm
@@ -55,10 +79,14 @@ 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}
+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 +113,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 +125,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 +211,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 +235,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 <<EOF > ffmpeg-avconfig
@@ -277,26 +309,35 @@ EOF
        --enable-avfilter \
        --enable-gpl \
        --enable-version3 \
+       %{?with_frei0r:--enable-frei0r} \
+       %{?with_aacplus:--enable-libaacplus} \
        --enable-libdc1394 \
+       --enable-libcelt \
        --enable-libdirac \
-       --enable-libfaad \
-       --enable-libfaadbin \
        --enable-libgsm \
        --enable-libmp3lame \
+       --enable-libnut \
+       --enable-libopencore-amrnb \
+       --enable-libopencore-amrwb \
+       %{?with_opencv:--enable-libopencv} \
+       --enable-libopenjpeg \
+       --enable-librtmp \
        --enable-libschroedinger \
        --enable-libspeex \
        --enable-libtheora \
+       --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 \
        --enable-postproc \
        --enable-pthreads \
        --enable-shared \
        --enable-swscale \
        --enable-vdpau \
+       --enable-x11grab \
 %ifnarch %{ix86} %{x8664}
        --disable-mmx \
 %endif
@@ -307,12 +348,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 +366,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 +379,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 +421,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 +470,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 +503,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
This page took 0.714415 seconds and 4 git commands to generate.