X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=ffmpeg.spec;h=90a84e6e6c697cac7e483a7ad66ecfb6cc63616b;hb=b70504598c5f392d728cd92b554f3c1efcb0477c;hp=c6cdc703677a81b8cbd3abf59cfbfc086fbf6006;hpb=c25bb5347974e4be59adc06f7f4c71a9ddce1808;p=packages%2Fffmpeg.git diff --git a/ffmpeg.spec b/ffmpeg.spec index c6cdc70..90a84e6 100644 --- a/ffmpeg.spec +++ b/ffmpeg.spec @@ -1,30 +1,42 @@ # # How to deal with ffmpeg/opencv checken-egg problem: -# 1. make-request -r --without opencv ffmpeg.spec +# 1. make-request -r --with bootstrap 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 (currently: faac) -%bcond_with aacplus # AAC+ encoding via libaacplus (requires nonfree) +%bcond_with bootstrap # disable features to able to build without installed ffmpeg +%bcond_with nonfree # non free options of package (currently: faac, fdk_aac, nvenc) %bcond_with fdk_aac # AAC de/encoding via libfdk_aac (requires nonfree) +%bcond_with faac # faac (requires nonfree) +%bcond_without bs2b # BS2B audio filter support %bcond_without caca # textual display using libcaca +%bcond_without chromaprint # audio fingerprinting with chromaprint +%bcond_without dcadec # DCA decoding via libdcadec %bcond_without decklink # Blackmagic DeskLink output support %bcond_without flite # flite voice synthesis support %bcond_without frei0r # frei0r video filtering +%bcond_without fribidi # fribidi support %bcond_without gme # Game Music Emu support %bcond_without ilbc # iLBC de/encoding via WebRTC libilbc +%bcond_without kvazaar # Kvazaar HEVC encoder support %bcond_without ladspa # LADSPA audio filtering -%bcond_without ssh # SFTP protocol support via libssh +%bcond_with mfx # MFX hardware acceleration support +%bcond_with nvenc # NVIDIA NVENC support (requires nonfree) %bcond_without openal # OpenAL 1.1 capture support -%bcond_with opencl # OpenCL code [OpenCL 1.2, not available in Mesa yet] -%bcond_without opengl # OpenGL rendering support +%bcond_without opencl # OpenCL 1.2 code %bcond_without opencv # OpenCV video filtering +%bcond_without opengl # OpenGL rendering support +%bcond_with openh264 # OpenH264 H.264 encoder %bcond_without pulseaudio # PulseAudio input support -%bcond_without quvi # quvi input support +%bcond_without rubberband # rubberband filter %bcond_without shine # shine fixed-point MP3 encoder +%bcond_without snappy # Snappy compression support (needed for hap encoding) +%bcond_without ssh # SFTP protocol support via libssh +%bcond_with smb # SMB support via libsmbclient %bcond_without soxr # SoX Resampler support +%bcond_with tesseract # OCR filter based on Tesseract %bcond_without x264 # H.264 x264 encoder %bcond_without x265 # H.265/HEVC x265 encoder %bcond_without utvideo # Ut Video decoder @@ -33,9 +45,15 @@ %bcond_without vpx # VP8, a high-quality video codec %bcond_without wavpack # wavpack encoding support %bcond_without webp # WebP encoding support +%bcond_without zimg # zscale filter based on z.lib %bcond_without zmq # 0MQ message passing %bcond_without zvbi # teletext via libzvbi %bcond_without doc # don't build docs +%bcond_with tests # "make check" (some tests fail as of 2.5) + +%if %{with bootstrap} +%undefine with_opencv +%endif %ifnarch %{ix86} %{x8664} arm %undefine with_x265 @@ -46,19 +64,19 @@ Summary: FFmpeg - a very fast video and audio converter Summary(pl.UTF-8): FFmpeg - szybki konwerter audio/wideo Name: ffmpeg -Version: 2.2.1 +Version: 3.0 Release: 2 # LGPL or GPL, chosen at configure time (GPL version is more featured) # (postprocessing, some filters, x264, x265, 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.org/releases/%{name}-%{version}.tar.bz2 -# Source0-md5: b8a1ee4964c2638f46fcc803ed453818 +Source0: http://ffmpeg.org/releases/%{name}-%{version}.tar.xz +# Source0-md5: ef9b6634bb7c920efc940b4d55adf7b2 Source1: ffserver.init Source2: ffserver.sysconfig Source3: ffserver.conf -Patch0: %{name}-opencv24.patch +Patch0: %{name}-utvideo.patch URL: http://www.ffmpeg.org/ %{?with_decklink:BuildRequires: Blackmagic_DeckLink_SDK} %{?with_openal:BuildRequires: OpenAL-devel >= 1.1} @@ -68,55 +86,66 @@ BuildRequires: SDL-devel >= 1.2.1 BuildRequires: alsa-lib-devel BuildRequires: bzip2-devel BuildRequires: celt-devel >= 0.11.0 -%{?with_nonfree:BuildRequires: faac-devel} +%{?with_dcadec:BuildRequires: dcadec-devel >= 0.2.0} +%{?with_faac:BuildRequires: faac-devel} %{?with_fdk_aac:BuildRequires: fdk-aac-devel} %{?with_flite:BuildRequires: flite-devel >= 1.4} BuildRequires: fontconfig-devel BuildRequires: freetype-devel %{?with_frei0r:BuildRequires: frei0r-devel} +%{?with_fribidi:BuildRequires: fribidi-devel} %{?with_gme:BuildRequires: game-music-emu-devel} %ifarch ppc # require version with altivec support fixed BuildRequires: gcc >= 5:3.3.2-3 %endif +BuildRequires: gmp-devel BuildRequires: gnutls-devel BuildRequires: jack-audio-connection-kit-devel +%{?with_kvazaar:BuildRequires: kvazaar-devel >= 0.8.1} %{?with_ladspa:BuildRequires: ladspa-devel} BuildRequires: lame-libs-devel >= 3.98.3 -%{?with_aacplus:BuildRequires: libaacplus-devel >= 2.0.0} BuildRequires: libass-devel BuildRequires: libavc1394-devel +%{?with_bs2b:BuildRequires: libbs2b-devel} BuildRequires: libbluray-devel %{?with_caca:BuildRequires: libcaca-devel} BuildRequires: libcdio-paranoia-devel >= 0.90-2 +%{?with_chromaprint:BuildRequires: libchromaprint-devel} BuildRequires: libdc1394-devel >= 2 BuildRequires: libgsm-devel BuildRequires: libiec61883-devel BuildRequires: libmodplug-devel BuildRequires: libnut-devel -%{?with_quvi:BuildRequires: libquvi-devel} BuildRequires: libraw1394-devel >= 2 BuildRequires: librtmp-devel %{?with_ssh:BuildRequires: libssh-devel} +%{?with_smb:BuildRequires: libsmbclient-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 >= 0.2 BuildRequires: libvorbis-devel -%{?with_vpx:BuildRequires: libvpx-devel >= 0.9.7} -%{?with_webp:BuildRequires: libwebp-devel} +%{?with_vpx:BuildRequires: libvpx-devel >= 1.3.0} +%{?with_webp:BuildRequires: libwebp-devel >= 0.4.0} # X264_BUILD >= 118 %{?with_x264:BuildRequires: libx264-devel >= 0.1.3-1.20111212_2245} -# X265_BUILD >= 7 -%{?with_x265:BuildRequires: libx265-devel >= 0.7} +# X265_BUILD >= 57 +%{?with_x265:BuildRequires: libx265-devel >= 1.3-0.20150610.1} +# libxcb xcb-shm xcb-xfixes xcb-shape +BuildRequires: libxcb-devel >= 1.4 +%{?with_mfx:BuildRequires: mfx_dispatch-devel} %ifarch %{ix86} %ifnarch i386 i486 BuildRequires: nasm %endif %endif +# which package? +#%{?with_nvenc:BuildRequires: NVIDIA-NVENC-API} BuildRequires: opencore-amr-devel %{?with_opencv:BuildRequires: opencv-devel} +%{?with_openh264:BuildRequires: openh264-devel >= 1.3} BuildRequires: openjpeg-devel >= 1.5 BuildRequires: opus-devel BuildRequires: perl-Encode @@ -124,17 +153,19 @@ BuildRequires: perl-tools-pod BuildRequires: pkgconfig %{?with_pulseaudio:BuildRequires: pulseaudio-devel} BuildRequires: rpmbuild(macros) >= 1.470 +%{?with_rubberband:BuildRequires: rubberband-devel >= 1.8.1} BuildRequires: schroedinger-devel %{?with_shine:BuildRequires: shine-devel >= 3.0.0} +%{?with_snappy:BuildRequires: snappy-devel} %{?with_soxr:BuildRequires: soxr-devel} BuildRequires: speex-devel >= 1:1.2-rc1 +%{?with_tesseract:BuildRequires: tesseract-devel} %{?with_doc:BuildRequires: tetex} %{?with_doc:BuildRequires: texi2html} %{?with_doc:BuildRequires: texinfo} BuildRequires: twolame-devel -%{?with_utvideo:BuildRequires: utvideo-devel >= 12} +%{?with_utvideo:BuildRequires: utvideo-devel >= 15.4} %{?with_vidstab:BuildRequires: vid.stab-devel >= 0.98} -BuildRequires: vo-aacenc-devel BuildRequires: vo-amrwbenc-devel %{?with_wavpack:BuildRequires: wavpack-devel} %{?with_ilbc:BuildRequires: webrtc-libilbc-devel} @@ -145,13 +176,14 @@ BuildRequires: xorg-lib-libXfixes-devel BuildRequires: xvid-devel >= 1:1.1.0 BuildRequires: yasm %{?with_zmq:BuildRequires: zeromq-devel} -%{?with_zvbi:BuildRequires: zvbi-devel} +%{?with_zimg:BuildRequires: zimg-devel} BuildRequires: zlib-devel +%{?with_zvbi:BuildRequires: zvbi-devel} %{?with_autoreqdep:BuildConflicts: libpostproc} # overflows maximum hash table size BuildConflicts: pdksh < 5.2.14-57 Requires: %{name}-libs = %{version}-%{release} -%{?with_utvideo:Requires: utvideo >= 12} +%{?with_utvideo:Requires: utvideo >= 15.4} %{?with_ilbc:Requires: webrtc-libilbc} Requires: xvid >= 1:1.1.0 Obsoletes: libpostproc @@ -184,11 +216,13 @@ telewizyjnej. %package libs Summary: ffmpeg libraries Summary(pl.UTF-8): Biblioteki ffmpeg +Group: Libraries %if "%(rpm -q --qf '%{V}' gnutls-devel)" >= "3.0.20" # uses gnutls_certificate_set_x509_system_trust if >= 3.0.20 Requires: gnutls-libs >= 3.0.20 %endif -Group: Libraries +%{?with_vpx:Requires: libvpx >= 1.3.0} +%{?with_rubberband:Requires: rubberband-libs >= 1.8.1} %description libs This package contains the ffmpeg shared libraries: @@ -218,46 +252,54 @@ Requires: SDL-devel >= 1.2.1 Requires: alsa-lib-devel Requires: bzip2-devel Requires: celt-devel >= 0.11.0 -%{?with_nonfree:Requires: faac-devel} +%{?with_dcadec:Requires: dcadec-devel >= 0.2.0} +%{?with_faac:Requires: faac-devel} %{?with_fdk_aac:Requires: fdk-aac-devel} %{?with_flite:Requires: flite-devel >= 1.4} Requires: fontconfig-devel Requires: freetype-devel +%{?with_fribidi:Requires: fribidi-devel} %{?with_gme:Requires: game-music-emu-devel} Requires: jack-audio-connection-kit-devel +%{?with_kvazaar:Requires: kvazaar-devel >= 0.7} Requires: lame-libs-devel >= 3.98.3 -%{?with_aacplus:Requires: libaacplus-devel >= 2.0.0} Requires: libass-devel Requires: libavc1394-devel Requires: libbluray-devel +%{?with_bs2b:Requires: libbs2b-devel} %{?with_caca:Requires: libcaca-devel} Requires: libcdio-paranoia-devel >= 0.90-2 +%{?with_chromaprint:Requires: libchromaprint-devel} Requires: libdc1394-devel >= 2 Requires: libgsm-devel Requires: libiec61883-devel Requires: libmodplug-devel Requires: libnut-devel -%{?with_quvi:Requires: libquvi-devel} Requires: libraw1394-devel >= 2 Requires: librtmp-devel +%{?with_smb:Requires: libsmbclient-devel} Requires: libtheora-devel >= 1.0-0.beta3 %{?with_va:Requires: libva-devel >= 1.0.3} Requires: libvorbis-devel -%{?with_vpx:Requires: libvpx-devel >= 0.9.7} -%{?with_webp:Requires: libwebp-devel} +%{?with_vpx:Requires: libvpx-devel >= 1.3.0} +%{?with_webp:Requires: libwebp-devel >= 0.4.0} %{?with_x264:Requires: libx264-devel >= 0.1.3-1.20110625_2245} -%{?with_x265:Requires: libx265-devel >= 0.7} +%{?with_x265:Requires: libx265-devel >= 1.3-0.20150610.1} +%{?with_mfx:Requires: mfx_dispatch-devel} Requires: opencore-amr-devel %{?with_opencv:Requires: opencv-devel} +%{?with_openh264:Requires: openh264-devel >= 1.3} Requires: openjpeg-devel >= 1.5 +%{?with_rubberband:Requires: rubberband-devel >= 1.8.1} Requires: schroedinger-devel %{?with_shine:Requires: shine-devel >= 3.0.0} +%{?with_snappy:Requires: snappy-devel} %{?with_soxr:Requires: soxr-devel} Requires: speex-devel >= 1:1.2-rc1 +%{?with_tesseract:Requires: tesseract-devel} Requires: twolame-devel -%{?with_utvideo:Requires: utvideo-devel >= 12} +%{?with_utvideo:Requires: utvideo-devel >= 15.4} %{?with_vidstab:Requires: vid.stab-devel >= 0.98} -Requires: vo-aacenc-devel Requires: vo-amrwbenc-devel %{?with_wavpack:Requires: wavpack-devel} %{?with_ilbc:Requires: webrtc-libilbc-devel} @@ -266,6 +308,7 @@ Requires: xorg-lib-libXext-devel Requires: xorg-lib-libXfixes-devel Requires: xvid-devel >= 1:1.1.0 %{?with_zmq:Requires: zeromq-devel} +%{?with_zimg:Requires: zimg-devel} Requires: zlib-devel Obsoletes: libpostproc-devel @@ -421,8 +464,10 @@ EOF --disable-debug \ --disable-optimizations \ --disable-stripping \ + %{!?with_doc:--disable-doc} \ --enable-avfilter \ --enable-avresample \ + %{?with_chromaprint:--enable-chromaprint} \ %{?with_decklink:--enable-decklink} \ --enable-gnutls \ --enable-gpl \ @@ -430,42 +475,48 @@ EOF --enable-fontconfig \ %{?with_frei0r:--enable-frei0r} \ %{?with_ladspa:--enable-ladspa} \ - %{?with_aacplus:--enable-libaacplus} \ --enable-libass \ --enable-libbluray \ + %{?with_bs2b:--enable-libbs2b} \ %{?with_caca:--enable-libcaca} \ --enable-libcelt \ --enable-libcdio \ --enable-libdc1394 \ - %{?with_fdk_aac:--enable-libfdk-aac} \ + %{?with_dcadec:--enable-libdcadec} \ %{?with_flite:--enable-libflite} \ --enable-libfreetype \ + %{?with_fribidi:--enable-libfribidi} \ %{?with_gme:--enable-libgme} \ --enable-libgsm \ --enable-libiec61883 \ %{?with_ilbc:--enable-libilbc} \ + %{?with_kvazaar:--enable-libkvazaar} \ + %{?with_mfx:--enable-libmfx} \ --enable-libmodplug \ --enable-libmp3lame \ --enable-libnut \ --enable-libopencore-amrnb \ --enable-libopencore-amrwb \ %{?with_opencv:--enable-libopencv} \ + %{?with_openh264:--enable-libopenh264} \ --enable-libopenjpeg \ --enable-libopus \ %{?with_pulseaudio:--enable-libpulse} \ - %{?with_quvi:--enable-libquvi} \ --enable-librtmp \ + %{?with_rubberband:--enable-librubberband} \ --enable-libschroedinger \ %{?with_shine:--enable-libshine} \ + %{?with_smb:--enable-libsmbclient} \ + %{?with_snappy:--enable-libsnappy} \ %{?with_soxr:--enable-libsoxr} \ --enable-libspeex \ %{?with_ssh:--enable-libssh} \ + %{?with_tesseract:--enable-libtesseract} \ --enable-libtheora \ --enable-libtwolame \ %{?with_utvideo:--enable-libutvideo} \ --enable-libv4l2 \ %{?with_vidstab:--enable-libvidstab} \ - --enable-libvo-aacenc \ --enable-libvo-amrwbenc \ --enable-libvorbis \ %{?with_vpx:--enable-libvpx} \ @@ -475,6 +526,7 @@ EOF %{?with_x265:--enable-libx265} \ --enable-libxavs \ --enable-libxvid \ + %{?with_zimg:--enable-libzimg} \ %{?with_zmq:--enable-libzmq} \ %{?with_zvbi:--enable-libzvbi} \ %{?with_openal:--enable-openal} \ @@ -492,9 +544,14 @@ EOF %ifarch i386 i486 --disable-mmx \ %endif +%ifarch x32 + --disable-asm \ +%endif %if %{with nonfree} --enable-nonfree \ - --enable-libfaac \ + %{?with_faac:--enable-libfaac} \ + %{?with_fdk_aac:--enable-libfdk-aac} \ + %{?with_nvenc:--enable-nvenc} \ %endif --enable-runtime-cpudetect @@ -504,6 +561,8 @@ EOF # CC_O to add -c to commandline. makefile should be patched %{__make} tools/qt-faststart V=1 CC_O='-c -o $@' +%{?with_tests:%{__make} check V=1} + %install rm -rf $RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_sbindir},/etc/{sysconfig,rc.d/init.d}} \ @@ -516,7 +575,7 @@ install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_sbindir},/etc/{sysconfig,rc.d/init. # install nonstandard, non-public headers manually cp -a config.h $RPM_BUILD_ROOT%{_includedir}/ffmpeg -for a in libavutil/*/bswap.h; do +for a in libavutil/*/{asm,bswap}.h; do install -Dp $a $RPM_BUILD_ROOT%{_includedir}/$a done cp -a libavformat/riff.h $RPM_BUILD_ROOT%{_includedir}/libavformat @@ -535,7 +594,9 @@ install -p tools/qt-faststart $RPM_BUILD_ROOT%{_bindir} install -p ffmpeg-avconfig $RPM_BUILD_ROOT%{_bindir}/ffmpeg-avconfig # packaged as %doc in -doc +%if %{with doc} %{__rm} $RPM_BUILD_ROOT%{_docdir}/ffmpeg/*.html +%endif install -d $RPM_BUILD_ROOT%{_examplesdir} %{__mv} $RPM_BUILD_ROOT%{_datadir}/ffmpeg/examples $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} @@ -568,7 +629,7 @@ fi %files %defattr(644,root,root,755) -%doc CREDITS LICENSE MAINTAINERS README doc/{APIchanges,RELEASE_NOTES} +%doc CREDITS LICENSE.md MAINTAINERS README.md RELEASE_NOTES doc/APIchanges %attr(755,root,root) %{_bindir}/ffmpeg %attr(755,root,root) %{_bindir}/ffprobe %attr(755,root,root) %{_bindir}/qt-faststart @@ -594,23 +655,23 @@ fi %files libs %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/libavcodec.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libavcodec.so.55 +%attr(755,root,root) %ghost %{_libdir}/libavcodec.so.57 %attr(755,root,root) %{_libdir}/libavdevice.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libavdevice.so.55 +%attr(755,root,root) %ghost %{_libdir}/libavdevice.so.57 %attr(755,root,root) %{_libdir}/libavfilter.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libavfilter.so.4 +%attr(755,root,root) %ghost %{_libdir}/libavfilter.so.6 %attr(755,root,root) %{_libdir}/libavformat.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libavformat.so.55 +%attr(755,root,root) %ghost %{_libdir}/libavformat.so.57 %attr(755,root,root) %{_libdir}/libavresample.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libavresample.so.1 +%attr(755,root,root) %ghost %{_libdir}/libavresample.so.3 %attr(755,root,root) %{_libdir}/libavutil.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libavutil.so.52 +%attr(755,root,root) %ghost %{_libdir}/libavutil.so.55 %attr(755,root,root) %{_libdir}/libpostproc.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libpostproc.so.52 +%attr(755,root,root) %ghost %{_libdir}/libpostproc.so.54 %attr(755,root,root) %{_libdir}/libswresample.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libswresample.so.0 +%attr(755,root,root) %ghost %{_libdir}/libswresample.so.2 %attr(755,root,root) %{_libdir}/libswscale.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libswscale.so.2 +%attr(755,root,root) %ghost %{_libdir}/libswscale.so.4 %files devel %defattr(644,root,root,755)