]> git.pld-linux.org Git - packages/ffmpeg.git/blame - ffmpeg.spec
- release 4 (libjxl 0.10.x)
[packages/ffmpeg.git] / ffmpeg.spec
CommitLineData
44f5d561 1# TODO:
165180f1 2# - avisynth+ >= 3.7.3 https://github.com/AviSynth/AviSynthPlus
faf18066 3# - libopenvino
f5aa1c6a 4# - libtensorflow [-ltensorflow tensorflow/c/c_api.h]
165180f1 5# - AMF >= 1.4.29.0 (available at https://github.com/GPUOpen-LibrariesAndSDKs/AMF, where is original source?)
197f4211 6#
d0745ce6 7# How to deal with ffmpeg/opencv/chromaprint checken-egg problem:
29c7bf5c 8# 1. make-request -r --with bootstrap ffmpeg.spec
d0745ce6
JR
9# 2 bump release of opencv.spec and chromaprint.spec
10# 3. make-request -r opencv.spec chromaprint.spec
11# 4. bump release of ffmpeg.spec
12# 5. make-request -r ffmpeg.spec
192f9f57 13#
2b3b2117 14# Conditional build:
29c7bf5c 15%bcond_with bootstrap # disable features to able to build without installed ffmpeg
45620667 16%bcond_with nonfree # unblock non free options of package (currently: cuda_nvcc, decklib, fdk_aac, npp, openssl, libressl/libtls)
471f06b0 17%bcond_without amr # AMR-NB/WB de/encoding via libopencore-amrnb/wb
c2a0ec66 18%bcond_without aom # AV1 viden de/encoding via libaom
45620667 19%bcond_without aribb24 # ARIB text and caption decoding via libaribb24
471f06b0 20%bcond_without avs # AVS encoding via xavs
45620667 21%bcond_without avs2 # AVS2 de/encoding via libdavs2/libxavs2
4474c07d 22%bcond_without bs2b # BS2B audio filter support
1c1d1368 23%bcond_without caca # textual display using libcaca
7fd3d5c0 24%bcond_without codec2 # codec2 support using libcodec2
0fdde3cc 25%bcond_without chromaprint # audio fingerprinting with chromaprint
45620667 26%bcond_with cudasdk # NVIDIA CUDA code using nvcc from CUDA SDK [BR: cuda.h, non-free]
61ffc605 27%bcond_with dav1d # AV1 decoding via libdav1d
471f06b0 28%bcond_without dc1394 # IIDC-1394 grabbing using libdc1394
1b2d21b4 29%bcond_with decklink # Blackmagic DeckLink I/O support (requires nonfree)
7003e3a3 30%bcond_with fdk_aac # AAC de/encoding via libfdk_aac (requires nonfree)
f5aa1c6a 31%bcond_without ffnvcodec # NVIDIA codecs support using ffnvcodec headers (covered: cuda cuvid nvdec nvenc)
a584ded4
JB
32%bcond_without flite # flite voice synthesis support
33%bcond_without frei0r # frei0r video filtering
165180f1 34%bcond_without fribidi # fribidi support in drawtext filter
eaebd467 35%bcond_with glslang # GLSL->SPIRV compilation via libglslang
22745365 36%bcond_without gme # Game Music Emu support
471f06b0
JP
37%bcond_without gsm # GSM de/encoding via libgsm
38%bcond_without iec61883 # ec61883 via libiec61883
cbeed0a5 39%bcond_without ilbc # iLBC de/encoding via WebRTC libilbc
7160e157 40%bcond_without kvazaar # Kvazaar HEVC encoder support
5f3dc7d9 41%bcond_without ladspa # LADSPA audio filtering
b1501b11 42%bcond_without lcms # ICC profile support via lcms2
f31e1135 43%bcond_with lensfun # lensfun lens correction
165180f1 44%bcond_with libaribcaption # ARIB text and caption decoding via libaribcaption
44f5d561 45%bcond_with libdrm # Linux Direct Rendering Manager code
b1501b11 46%bcond_without libjxl # JPEG XL de/encoding via libjxl
1b2d21b4 47%bcond_with libklvanc # Kernel Labs VANC processing (in decklink driver)
f5aa1c6a 48%bcond_without libmysofa # sofalizer filter
eaebd467 49%bcond_with libplacebo # libplacebo filters
faf18066 50%bcond_without librist # RIST support via librist
44f5d561
JB
51%bcond_with librsvg # SVG rasterization via librsvg
52%bcond_with libxml2 # XML parsing using libxml2
f5aa1c6a 53%bcond_without lv2 # LV2 audio filtering
0258feb8 54%bcond_with mfx # MFX hardware acceleration support
471f06b0 55%bcond_without modplug # ModPlug via libmodplug
7003e3a3 56%bcond_with npp # NVIDIA Performance Primitives-based code (requires nonfree) [BR: libnppc+libnppi, npp.h]
7003e3a3 57%bcond_without omx # OpenMAX IL support
a584ded4 58%bcond_without openal # OpenAL 1.1 capture support
6513d7e3 59%bcond_without opencl # OpenCL 1.2 code
019e6753 60%bcond_with opencv # OpenCV video filtering
0258feb8
JB
61%bcond_without opengl # OpenGL rendering support
62%bcond_with openh264 # OpenH264 H.264 encoder
6dfc7c2a 63%bcond_without openmpt # OpenMPT module decoder
45620667 64%bcond_with pocketsphinx # asr filter using PocketSphinx
a584ded4 65%bcond_without pulseaudio # PulseAudio input support
503d83e5 66%bcond_without rabbitmq # RabbitMQ support
02280f85 67%bcond_with rav1e # AV1 encoding using rav1e
f5aa1c6a 68%bcond_with rkmpp # Rockchip Media Process Platform code [implies libdrm]
0fdde3cc 69%bcond_without rubberband # rubberband filter
eaebd467 70%bcond_without shaderc # GLSL->SPIRV compilation via libshaderc
f56b6dce 71%bcond_without shine # shine fixed-point MP3 encoder
faf18066 72%bcond_with smb # SMB support via libsmbclient
7160e157 73%bcond_without snappy # Snappy compression support (needed for hap encoding)
faf18066 74%bcond_without soxr # SoX Resampler support
f5aa1c6a 75%bcond_without srt # Haivision SRT protocol support
0258feb8 76%bcond_without ssh # SFTP protocol support via libssh
faf18066 77%bcond_with svtav1 # AV1 encoding via SVT-AV1
e5c1d36e 78%bcond_with tesseract # OCR filter based on Tesseract
471f06b0 79%bcond_without theora # Theora encoding via libtheora
faf18066 80%bcond_with uavs3d # AVS3 decoding via libuavs3d (TODO: enable when 1.1.41 released)
80105e83 81%bcond_with v4l2_request # V4L2 request API for stateless hw decoding
1ef27ea1 82%bcond_without va # VAAPI (Video Acceleration API)
f5aa1c6a 83%bcond_without vapoursynth # VapourSynth demuxer
f56b6dce 84%bcond_without vidstab # vid.stab video stabilization support
faf18066 85%bcond_without vmaf # VMAF filter support
471f06b0 86%bcond_without voamrwbenc # MR-WB encoding via libvo-amrwbenc
0ea48c34 87%bcond_with vpl # oneVPL instead of MFX
1ef27ea1 88%bcond_without vpx # VP8, a high-quality video codec
503d83e5 89%bcond_without vulkan # Vulkan code
8b9d2787 90%bcond_without webp # WebP encoding support
faf18066
JB
91%bcond_without x264 # H.264 x264 encoder
92%bcond_without x265 # H.265/HEVC x265 encoder
471f06b0 93%bcond_without xvid # vid encoding via xvidcore
e5c1d36e 94%bcond_without zimg # zscale filter based on z.lib
6a6b11be 95%bcond_without zmq # 0MQ message passing
5f3dc7d9 96%bcond_without zvbi # teletext via libzvbi
c0992ddb 97%bcond_without doc # HTML documentation
8b479c7c 98%bcond_without static_libs # static libraries
560d82ce 99%bcond_with tests # "make check" (some tests fail as of 2.5)
314ef0df 100
29c7bf5c
ER
101%if %{with bootstrap}
102%undefine with_opencv
d0745ce6 103%undefine with_chromaprint
29c7bf5c 104%endif
80105e83 105%if %{with rkmpp} || %{with v4l2_request}
f5aa1c6a
JB
106%define with_libdrm 1
107%endif
eaebd467
JP
108%if %{with glslang}
109%undefine with_shaderc
110%endif
0ea48c34
JB
111%if %{with vpl}
112%undefine with_mfx
113%endif
29c7bf5c 114
f5aa1c6a
JB
115%ifnarch %{ix86} %{x8664}
116%undefine with_ffnvcodec
117%endif
02280f85
JB
118%ifnarch %{ix86} %{x8664} aarch64
119%undefine with_rav1e
120%endif
7003e3a3 121%ifnarch %{ix86} %{x8664} %{arm}
a6755e78
JB
122%undefine with_x265
123%endif
124%ifarch i386 i486
125%undefine with_x265
126%endif
471f06b0
JP
127%ifarch i686 pentium4 athlon %{x8664} x32
128%define with_crystalhd 1
129%endif
cbdd2688
JB
130Summary: FFmpeg - a very fast video and audio converter
131Summary(pl.UTF-8): FFmpeg - szybki konwerter audio/wideo
9fc4ad22 132Name: ffmpeg
e8591a3e 133# NOTE: 7.0 prepared on DEVEL-7 branch, but other software is not ready (e.g. xine-lib 1.2.13, gstreamer-libav 1.24.2)
165180f1 134Version: 6.1.1
b1ffd051 135Release: 4
9cf4d8a4 136# LGPL or GPL, chosen at configure time (GPL version is more featured)
f5aa1c6a
JB
137# GPL: frei0r libcdio libdavs2 rubberband vidstab x264 x265 xavs xavs2 xvid
138# v3 (allows *GPLv3 or Apache-licensed libs): gmp lensfun opencore-amr vmaf vo-*enc rkmpp
139# GPLv3: smbclient
0b43f655 140License: GPL v3+ with LGPL v3+ parts
fde29260 141Group: Applications/Multimedia
c732abb0 142Source0: https://ffmpeg.org/releases/%{name}-%{version}.tar.xz
165180f1 143# Source0-md5: 341d719415b7f95bb59f5016f2864ac6
7003e3a3 144Patch0: %{name}-omx-libnames.patch
2a2ce640 145Patch1: %{name}-atadenoise.patch
a9e080d9 146Patch2: opencv4.patch
80105e83 147Patch3: v4l2-request-hwdec.patch
e8591a3e
JB
148Patch4: %{name}-vulkan1.3.280.patch
149URL: https://ffmpeg.org/
eaebd467 150%{?with_decklink:BuildRequires: Blackmagic_DeckLink_SDK >= 10.11}
28673856 151%{?with_openal:BuildRequires: OpenAL-devel >= 1.1}
6a6b11be 152%{?with_opencl:BuildRequires: OpenCL-devel >= 1.2}
8b9d2787 153%{?with_opengl:BuildRequires: OpenGL-GLX-devel}
7003e3a3
JB
154# libomxil-bellagio-devel or limoi-core-devel (just headers, library is dlopened at runtime)
155%{?with_omx:BuildRequires: OpenMAX-IL-devel}
156BuildRequires: SDL2-devel >= 2.0.1
2f7d498d 157BuildRequires: SDL2-devel < 3.0.0
e8591a3e 158%{?with_vulkan:BuildRequires: Vulkan-Loader-devel >= 1.3.277}
cbdd2688 159BuildRequires: alsa-lib-devel
c2a0ec66 160%{?with_aom:BuildRequires: aom-devel >= 1.0.0}
45620667 161%{?with_aribb24:BuildRequires: aribb24-devel}
38cefaee 162BuildRequires: bzip2-devel
9f9ba8ac 163BuildRequires: celt-devel >= 0.11.0
7fd3d5c0 164%{?with_codec2:BuildRequires: codec2-devel}
f31e1135 165%{?with_dav1d:BuildRequires: dav1d-devel >= 0.5.0}
45620667 166%{?with_avs2:BuildRequires: davs2-devel >= 1.6}
004e5628 167%{?with_fdk_aac:BuildRequires: fdk-aac-devel}
a584ded4 168%{?with_flite:BuildRequires: flite-devel >= 1.4}
3dcb8642 169BuildRequires: fontconfig-devel
0aad4bf2 170BuildRequires: freetype-devel
d7a39558 171%{?with_frei0r:BuildRequires: frei0r-devel}
4474c07d 172%{?with_fribidi:BuildRequires: fribidi-devel}
22745365 173%{?with_gme:BuildRequires: game-music-emu-devel}
165180f1 174BuildRequires: harfbuzz-devel
4bee03f0
JB
175%ifarch ppc
176# require version with altivec support fixed
177BuildRequires: gcc >= 5:3.3.2-3
178%endif
f31e1135 179%{?with_glslang:BuildRequires: glslang-devel >= 11}
fecf9f23 180BuildRequires: gmp-devel
d5aef92e 181BuildRequires: gnutls-devel
cbdd2688 182BuildRequires: jack-audio-connection-kit-devel
165180f1 183%{?with_kvazaar:BuildRequires: kvazaar-devel >= 2.0.0}
5f3dc7d9 184%{?with_ladspa:BuildRequires: ladspa-devel}
cbdd2688 185BuildRequires: lame-libs-devel >= 3.98.3
b1501b11 186%{?with_lcms:BuildRequires: lcms2-devel >= 2.13}
f31e1135 187%{?with_lensfun:BuildRequires: lensfun-devel >= 0.3.95}
165180f1 188%{?with_aribcaption:BuildRequires: libaribcaption-devel}
eaebd467 189BuildRequires: libass-devel >= 0.11.0
043128df 190%ifnarch %arch_with_atomics64
f2c90402
JP
191BuildRequires: libatomic-devel
192%endif
471f06b0 193%{?with_iec61883:BuildRequires: libavc1394-devel}
4474c07d 194%{?with_bs2b:BuildRequires: libbs2b-devel}
3dcb8642 195BuildRequires: libbluray-devel
1c1d1368 196%{?with_caca:BuildRequires: libcaca-devel}
a09e741c 197BuildRequires: libcdio-paranoia-devel >= 0.90-2
0fdde3cc 198%{?with_chromaprint:BuildRequires: libchromaprint-devel}
471f06b0
JP
199%{?with_crystalhd:BuildRequires: libcrystalhd-devel}
200%{?with_dc1394:BuildRequires: libdc1394-devel >= 2}
44f5d561 201%{?with_libdrm:BuildRequires: libdrm-devel}
471f06b0
JP
202%{?with_gsm:BuildRequires: libgsm-devel}
203%{?with_iec61883:BuildRequires: libiec61883-devel}
b1501b11 204%{?with_libjxl:BuildRequires: libjxl-devel >= 0.7.0}
1b2d21b4 205%{?with_libklvanc:BuildRequires: libklvanc-devel}
471f06b0 206%{?with_modplug:BuildRequires: libmodplug-devel}
5de7eee9 207%{?with_libmysofa:BuildRequires: libmysofa-devel >= 0.7}
c4a15b86 208%{?with_openmpt:BuildRequires: libopenmpt-devel >= 0.4.5}
eaebd467 209%{?with_libplacebo:BuildRequires: libplacebo-devel >= 4.192.0}
471f06b0 210%if %{with dc1394} || %{with iec61883}
7571bfa0 211BuildRequires: libraw1394-devel >= 2
471f06b0 212%endif
b1501b11 213%{?with_librist:BuildRequires: librist-devel >= 0.2.7}
44f5d561 214%{?with_librsvg:BuildRequires: librsvg-devel >= 2}
cbdd2688 215BuildRequires: librtmp-devel
165180f1 216%{?with_ssh:BuildRequires: libssh-devel >= 0.6.0}
4474c07d 217%{?with_smb:BuildRequires: libsmbclient-devel}
471f06b0 218%{?with_theora:BuildRequires: libtheora-devel >= 1.0-0.beta3}
4814ac84 219BuildRequires: libtool >= 2:1.4d-3
daf9a670 220BuildRequires: libv4l-devel
7003e3a3
JB
221%if %{with va}
222BuildRequires: libva-devel >= 1.0.3
223BuildRequires: libva-drm-devel >= 1.0.3
224BuildRequires: libva-x11-devel >= 1.0.3
225%endif
503d83e5 226BuildRequires: libvdpau-devel >= 1.3
e380e18a 227BuildRequires: libvorbis-devel
ff838fc6 228%{?with_vpx:BuildRequires: libvpx-devel >= 1.4.0}
fecf9f23 229%{?with_webp:BuildRequires: libwebp-devel >= 0.4.0}
0ea48c34
JB
230# X264_BUILD >= 122
231%{?with_x264:BuildRequires: libx264-devel >= 0.1.3-1.20130827_2245}
232# X265_BUILD >= 89
233%{?with_x265:BuildRequires: libx265-devel >= 2.0}
560d82ce 234# libxcb xcb-shm xcb-xfixes xcb-shape
0258feb8 235BuildRequires: libxcb-devel >= 1.4
44f5d561 236%{?with_libxml2:BuildRequires: libxml2-devel >= 2}
f5aa1c6a 237%{?with_lv2:BuildRequires: lilv-devel}
80105e83 238%{?with_v4l2_request:BuildRequires: linux-libc-headers >= 7:5.11.0}
f5aa1c6a 239%{?with_lv2:BuildRequires: lv2-devel}
b1501b11 240%{?with_mfx:BuildRequires: mfx_dispatch-devel >= 1.28}
e1fe03f7 241%ifarch %{ix86}
242%ifnarch i386 i486
76243dbd
JB
243BuildRequires: nasm
244%endif
e1fe03f7 245%endif
165180f1 246%{?with_ffnvcodec:BuildRequires: nv-codec-headers >= 12.1.14.0}
0ea48c34 247%{?with_vpl:BuildRequires: oneVPL-devel >= 2.6}
7fd3d5c0 248# amrnb,amrwb
471f06b0 249%{?with_amr:BuildRequires: opencore-amr-devel}
f5aa1c6a 250%{?with_opencv:BuildRequires: opencv-devel >= 2}
62da4e00 251%{?with_openh264:BuildRequires: openh264-devel >= 1.3}
7003e3a3 252BuildRequires: openjpeg2-devel >= 2.1
1c1d1368 253BuildRequires: opus-devel
136f0f45 254BuildRequires: perl-Encode
1463656a 255BuildRequires: perl-tools-pod
45620667 256%{?with_pocketsphinx:BuildRequires: pocketsphinx-devel > 0.8}
ef3c0513 257BuildRequires: pkgconfig
1c1d1368 258%{?with_pulseaudio:BuildRequires: pulseaudio-devel}
503d83e5 259%{?with_rabbitmq:BuildRequires: rabbitmq-c-devel >= 0.7.1}
0ea48c34 260%{?with_rav1e:BuildRequires: rav1e-devel >= 0.5.0}
f5aa1c6a 261%{?with_rkmpp:BuildRequires: rockchip-mpp-devel >= 1.3.7}
043128df 262BuildRequires: rpmbuild(macros) >= 2.025
0fdde3cc 263%{?with_rubberband:BuildRequires: rubberband-devel >= 1.8.1}
eaebd467 264%{?with_shaderc:BuildRequires: shaderc-devel >= 2019.1}
4a11c99e 265%{?with_shine:BuildRequires: shine-devel >= 3.0.0}
7160e157 266%{?with_snappy:BuildRequires: snappy-devel}
05408820 267%{?with_soxr:BuildRequires: soxr-devel}
1c1d1368 268BuildRequires: speex-devel >= 1:1.2-rc1
503d83e5 269%{?with_glslang:BuildRequires: spirv-tools-devel}
f5aa1c6a 270%{?with_srt:BuildRequires: srt-devel >= 1.3}
b1501b11 271%{?with_svtav1:BuildRequires: svt-av1-devel >= 0.9.0}
8ebe3834 272BuildRequires: tar >= 1:1.22
e5c1d36e 273%{?with_tesseract:BuildRequires: tesseract-devel}
64f8f109
ER
274%{?with_doc:BuildRequires: tetex}
275%{?with_doc:BuildRequires: texi2html}
276%{?with_doc:BuildRequires: texinfo}
ff838fc6 277BuildRequires: twolame-devel >= 0.3.10
faf18066 278%{?with_uavs3d:BuildRequires: uavs3d-devel >= 1.1.41}
80105e83 279%{?with_v4l2_request:BuildRequires: udev-devel}
f5aa1c6a 280%{?with_vapoursynth:BuildRequires: vapoursynth-devel >= 42}
9befe454 281%{?with_vidstab:BuildRequires: vid.stab-devel >= 0.98}
b1501b11 282%{?with_vmaf:BuildRequires: vmaf-devel >= 2.0.0}
471f06b0 283%{?with_voamrwbenc:BuildRequires: vo-amrwbenc-devel}
cbeed0a5 284%{?with_ilbc:BuildRequires: webrtc-libilbc-devel}
471f06b0 285%{?with_avs:BuildRequires: xavs-devel}
45620667 286%{?with_avs2:BuildRequires: xavs2-devel >= 1.3}
28673856 287BuildRequires: xorg-lib-libX11-devel
cbdd2688 288BuildRequires: xorg-lib-libXext-devel
f5aa1c6a 289BuildRequires: xorg-lib-libXv-devel
471f06b0 290%{?with_xvid:BuildRequires: xvid-devel >= 1:1.1.0}
8ebe3834 291BuildRequires: xz
7003e3a3 292BuildRequires: xz-devel
503d83e5 293%{?with_zmq:BuildRequires: zeromq-devel >= 4.2.1}
d2c2eb42 294%{?with_zimg:BuildRequires: zimg-devel >= 2.7.0}
33a1c0f3 295BuildRequires: zlib-devel
f5aa1c6a 296%{?with_zvbi:BuildRequires: zvbi-devel >= 0.2.28}
9c4296c2
JB
297# overflows maximum hash table size
298BuildConflicts: pdksh < 5.2.14-57
54ec280e 299Requires: %{name}-libs = %{version}-%{release}
2e686000 300Suggests: fontconfig
35b7d412 301Suggests: fonts-TTF-Roboto
d1cf045f 302Obsoletes: libpostproc < 2:1.0-1
539b540f 303BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
9fc4ad22 304
d7999432 305%define specflags -fno-strict-aliasing -fPIC
c01d7857
PS
306
307# -fomit-frame-pointer is always needed on x86 due to lack of registers (-fPIC takes one)
308%define specflags_ia32 -fomit-frame-pointer
309# -mmmx is needed to enable <mmintrin.h> code.
310%define specflags_i586 -mmmx
311%define specflags_i686 -mmmx
312
9fc4ad22 313%description
85f7cea1
ER
314FFmpeg is a complete solution to record, convert and stream audio and
315video. It is a command line tool to convert one video file format to
316another. It also supports grabbing and encoding in real time from a TV
317card.
9fc4ad22 318
cdb7b42e 319%description -l pl.UTF-8
cbdd2688
JB
320FFmpeg to kompletne rozwiązanie nagrywania, konwersji i transmisji
321strumieni dźwięku i obrazu. Jest to działające z linii poleceń
322narzędzie do konwersji obrazu z jednego formatu do innego. Obsługuje
323także przechwytywanie i kodowanie w czasie rzeczywistym z karty
324telewizyjnej.
9fc4ad22 325
54ec280e
PG
326%package libs
327Summary: ffmpeg libraries
adcc0f76 328Summary(pl.UTF-8): Biblioteki ffmpeg
1be5865c 329Group: Libraries
7003e3a3 330Requires: SDL2 >= 2.0.1
e8591a3e 331%{?with_vulkan:Requires: Vulkan-Loader >= 1.3.277}
c2a0ec66 332%{?with_aom:Requires: aom >= 1.0.0}
f5aa1c6a 333Requires: celt >= 0.11.0
f31e1135 334%{?with_dav1d:Requires: dav1d >= 0.5.0}
45620667 335%{?with_avs2:Requires: davs2 >= 1.6}
f5aa1c6a 336%{?with_flite:Requires: flite >= 1.4}
143c6eec
JB
337%if "%(rpm -q --qf '%{V}' gnutls-devel)" >= "3.0.20"
338# uses gnutls_certificate_set_x509_system_trust if >= 3.0.20
f9cce0c9 339Requires: gnutls-libs >= 3.0.20
143c6eec 340%endif
165180f1 341%{?with_kvazaar:Requires: kvazaar-libs >= 2.0.0}
eaebd467 342Requires: libass >= 0.11.0
b1501b11 343%{?with_libjxl:Requires: libjxl >= 0.7.0}
5de7eee9 344%{?with_libmysofa:Requires: libmysofa >= 0.7}
c4a15b86 345%{?with_openmpt:Requires: libopenmpt >= 0.4.5}
c0992ddb 346%{?with_libplacebo:Requires: libplacebo >= 4.192.0}
b1501b11 347%{?with_librist:Requires: librist >= 0.2.7}
165180f1 348%{?with_ssh:Requires: libssh >= 0.6.0}
471f06b0 349%{?with_theora:Requires: libtheora >= 1.0-0.beta3}
f5aa1c6a
JB
350%if %{with va}
351Requires: libva >= 1.0.3
352Requires: libva-drm >= 1.0.3
353Requires: libva-x11 >= 1.0.3
354%endif
503d83e5 355Requires: libvdpau >= 1.3
ff838fc6 356%{?with_vpx:Requires: libvpx >= 1.4.0}
f5aa1c6a 357%{?with_webp:Requires: libwebp >= 0.4.0}
0ea48c34
JB
358%{?with_x264:Requires: libx264 >= 0.1.3-1.20130827_2245}
359%{?with_x265:Requires: libx265 >= 2.0}
f5aa1c6a
JB
360Requires: libxcb >= 1.4
361Requires: lame-libs >= 3.98.3
b1501b11
JB
362%{?with_lcms:Requires: lcms2 >= 2.13}
363%{?with_mfx:Requires: mfx_dispatch >= 1.28}
0ea48c34 364%{?with_vpl:Requires: oneVPL >= 2.6}
f5aa1c6a
JB
365%{?with_openh264:Requires: openh264 >= 1.3}
366Requires: openjpeg2 >= 2.1
503d83e5 367%{?with_rabbitmq:Requires: rabbitmq-c >= 0.7.1}
0ea48c34 368%{?with_rav1e:Requires: rav1e-libs >= 0.5.0}
f5aa1c6a 369%{?with_rkmpp:Requires: rockchip-mpp >= 1.3.7}
0fdde3cc 370%{?with_rubberband:Requires: rubberband-libs >= 1.8.1}
f5aa1c6a
JB
371%{?with_shine:Requires: shine >= 3.0.0}
372Requires: speex >= 1:1.2-rc1
373%{?with_srt:Requires: srt >= 1.3}
b1501b11 374%{?with_svtav1:Requires: svt-av1 >= 0.9.0}
ff838fc6 375Requires: twolame-libs >= 0.3.10
faf18066 376%{?with_uavs3d:Requires: uavs3d >= 1.1.41}
f5aa1c6a
JB
377%{?with_vapoursynth:Requires: vapoursynth >= 42}
378%{?with_vidstab:Requires: vid.stab >= 0.98}
b1501b11 379%{?with_vmaf:Requires: vmaf-libs >= 2.0.0}
45620667 380%{?with_avs2:Requires: xavs2 >= 1.3}
471f06b0 381%{?with_xvid:Requires: xvid >= 1:1.1.0}
503d83e5 382%{?with_zmq:Requires: zeromq >= 4.2.1}
80c0841f 383%{?with_zimg:Requires: zimg >= 2.7.0}
f5aa1c6a 384%{?with_zvbi:Requires: zvbi >= 0.2.28}
54ec280e
PG
385
386%description libs
cbdd2688
JB
387This package contains the ffmpeg shared libraries:
388- the codec library (libavcodec). It supports most existing encoding
389 formats (MPEG, DivX, MPEG4, AC3, DV...),
390- demuxer library (libavformat). It supports most existing file
391 formats (AVI, MPEG, OGG, Matroska, ASF...),
392- video postprocessing library (libpostproc).
54ec280e 393
cdb7b42e 394%description libs -l pl.UTF-8
cbdd2688
JB
395Ten pakiet zawiera biblioteki współdzielone ffmpeg:
396- bibliotekę kodeków (libavcodec); obsługuje większość istniejących
397 formatów kodowania (MPEG, DivX, MPEG4, AC3, DV...),
398- bibliotekę demuksera (libavformat); obsługuje większość istniejących
399 formatów plików (AVI, MPEG, OGG, Matroska, ASF...),
400- bibliotekę postprocessingu (libpostproc).
54ec280e 401
af49d6ab
JB
402%package devel
403Summary: ffmpeg header files
adcc0f76 404Summary(pl.UTF-8): Pliki nagłówkowe ffmpeg
af49d6ab 405Group: Development/Libraries
54ec280e 406Requires: %{name}-libs = %{version}-%{release}
f5aa1c6a
JB
407# Libs.private from *.pc
408%{?with_openal:Requires: OpenAL-devel >= 1.1}
6a6b11be 409%{?with_opencl:Requires: OpenCL-devel >= 1.2}
f6f5022a 410%{?with_opengl:Requires: OpenGL-devel}
7003e3a3 411Requires: SDL2-devel >= 2.0.1
e8591a3e 412%{?with_vulkan:Requires: Vulkan-Loader-devel >= 1.3.277}
38cefaee 413Requires: alsa-lib-devel
c2a0ec66 414%{?with_aom:Requires: aom-devel >= 1.0.0}
45620667 415%{?with_aribb24:Requires: aribb24-devel}
38cefaee 416Requires: bzip2-devel
9c4296c2 417Requires: celt-devel >= 0.11.0
7fd3d5c0 418%{?with_codec2:Requires: codec2-devel}
f31e1135 419%{?with_dav1d:Requires: dav1d-devel >= 0.5.0}
c0992ddb 420%{?with_avs2:Requires: davs2-devel >= 1.6}
004e5628 421%{?with_fdk_aac:Requires: fdk-aac-devel}
4b05ede1 422%{?with_flite:Requires: flite-devel >= 1.4}
3dcb8642 423Requires: fontconfig-devel
0aad4bf2 424Requires: freetype-devel
4474c07d 425%{?with_fribidi:Requires: fribidi-devel}
22745365 426%{?with_gme:Requires: game-music-emu-devel}
503d83e5 427%{?with_glslang:Requires: glslang-devel}
f5aa1c6a 428Requires: gnutls-devel
165180f1 429Requires: harfbuzz-devel
38cefaee 430Requires: jack-audio-connection-kit-devel
165180f1 431%{?with_kvazaar:Requires: kvazaar-devel >= 2.0.0}
38cefaee 432Requires: lame-libs-devel >= 3.98.3
b1501b11 433%{?with_lcms:Requires: lcms2-devel >= 2.13}
f31e1135 434%{?with_lensfun:Requires: lensfun-devel >= 0.3.95}
165180f1 435%{?with_libaribcaption:Requires: libaribcaption-devel}
eaebd467 436Requires: libass-devel >= 0.11.0
471f06b0 437%{?with_iec61883:Requires: libavc1394-devel}
3dcb8642 438Requires: libbluray-devel
4474c07d 439%{?with_bs2b:Requires: libbs2b-devel}
28673856 440%{?with_caca:Requires: libcaca-devel}
a09e741c 441Requires: libcdio-paranoia-devel >= 0.90-2
0fdde3cc 442%{?with_chromaprint:Requires: libchromaprint-devel}
471f06b0
JP
443%{?with_crystalhd:Requires: libcrystalhd-devel}
444%{?with_dc1394:Requires: libdc1394-devel >= 2}
44f5d561 445%{?with_libdrm:Requires: libdrm-devel}
471f06b0
JP
446%{?with_gsm:Requires: libgsm-devel}
447%{?with_iec61883:Requires: libiec61883-devel}
b1501b11 448%{?with_libjxl:Requires: libjxl-devel >= 0.7.0}
1b2d21b4 449%{?with_libklvanc:Requires: libklvanc-devel}
471f06b0 450%{?with_modplug:Requires: libmodplug-devel}
5de7eee9 451%{?with_libmysofa:Requires: libmysofa-devel >= 0.7}
c4a15b86 452%{?with_openmpt:Requires: libopenmpt-devel >= 0.4.5}
471f06b0 453%if %{with dc1394} || %{with iec61883}
7571bfa0 454Requires: libraw1394-devel >= 2
471f06b0 455%endif
b1501b11 456%{?with_librist:Requires: librist-devel >= 0.2.7}
44f5d561 457%{?with_librsvg:Requires: librsvg-devel >= 2}
38cefaee 458Requires: librtmp-devel
4474c07d 459%{?with_smb:Requires: libsmbclient-devel}
165180f1 460%{?with_ssh:Requires: libssh-devel >= 0.6.0}
f5aa1c6a 461Requires: libstdc++-devel
471f06b0 462%{?with_theora:Requires: libtheora-devel >= 1.0-0.beta3}
f5aa1c6a 463Requires: libv4l-devel
38cefaee 464%{?with_va:Requires: libva-devel >= 1.0.3}
f5aa1c6a
JB
465%{?with_va:Requires: libva-drm-devel >= 1.0.3}
466%{?with_va:Requires: libva-x11-devel >= 1.0.3}
503d83e5 467Requires: libvdpau-devel >= 1.3
33a1c0f3 468Requires: libvorbis-devel
ff838fc6 469%{?with_vpx:Requires: libvpx-devel >= 1.4.0}
fecf9f23 470%{?with_webp:Requires: libwebp-devel >= 0.4.0}
0ea48c34
JB
471%{?with_x264:Requires: libx264-devel >= 0.1.3-1.20130827_2245}
472%{?with_x265:Requires: libx265-devel >= 2.0}
f5aa1c6a
JB
473# libxcb xcb-shm xcb-xfixes xcb-shape
474Requires: libxcb-devel >= 1.4
44f5d561 475%{?with_libxml2:Requires: libxml2-devel >= 2}
f5aa1c6a 476%{?with_lv2:Requires: lilv-devel}
b1501b11 477%{?with_mfx:Requires: mfx_dispatch-devel >= 1.28}
0ea48c34 478%{?with_vpl:Requires: oneVPL-devel >= 2.6}
471f06b0 479%{?with_amr:Requires: opencore-amr-devel}
f5aa1c6a 480%{?with_opencv:Requires: opencv-devel >= 2}
62da4e00 481%{?with_openh264:Requires: openh264-devel >= 1.3}
7003e3a3 482Requires: openjpeg2-devel >= 2.1
f5aa1c6a
JB
483Requires: opus-devel
484%{?with_pulseaudio:Requires: pulseaudio-devel}
503d83e5 485%{?with_rabbitmq:Requires: rabbitmq-c-devel >= 0.7.1}
0ea48c34 486%{?with_rav1e:Requires: rav1e-devel >= 0.5.0}
f5aa1c6a 487%{?with_rkmpp:Requires: rockchip-mpp-devel >= 1.3.7}
0fdde3cc 488%{?with_rubberband:Requires: rubberband-devel >= 1.8.1}
c0992ddb 489%{?with_shaderc:Requires: shaderc-devel >= 2019.1}
4a11c99e 490%{?with_shine:Requires: shine-devel >= 3.0.0}
7160e157 491%{?with_snappy:Requires: snappy-devel}
05408820 492%{?with_soxr:Requires: soxr-devel}
38cefaee 493Requires: speex-devel >= 1:1.2-rc1
503d83e5 494%{?with_glslang:Requires: spirv-tools-devel}
f5aa1c6a 495%{?with_srt:Requires: srt-devel >= 1.3}
b1501b11 496%{?with_svtav1:Requires: svt-av1-devel >= 0.9.0}
e5c1d36e 497%{?with_tesseract:Requires: tesseract-devel}
ff838fc6 498Requires: twolame-devel >= 0.3.10
faf18066 499%{?with_uavs3d:Requires: uavs3d-devel >= 1.1.41}
f5aa1c6a 500%{?with_vapoursynth:Requires: vapoursynth-devel >= 42}
9befe454 501%{?with_vidstab:Requires: vid.stab-devel >= 0.98}
471f06b0 502%{?with_voamrwbenc:Requires: vo-amrwbenc-devel}
b1501b11 503%{?with_vmaf:Requires: vmaf-devel >= 2.0.0}
cbeed0a5 504%{?with_ilbc:Requires: webrtc-libilbc-devel}
471f06b0 505%{?with_avs:Requires: xavs-devel}
45620667 506%{?with_avs2:Requires: xavs2-devel >= 1.3}
f5aa1c6a 507Requires: xorg-lib-libX11-devel
38cefaee 508Requires: xorg-lib-libXext-devel
f5aa1c6a 509Requires: xorg-lib-libXv-devel
471f06b0 510%{?with_xvid:Requires: xvid-devel >= 1:1.1.0}
f5aa1c6a 511Requires: xz-devel
503d83e5 512%{?with_zmq:Requires: zeromq-devel >= 4.2.1}
f5aa1c6a 513%{?with_zimg:Requires: zimg-devel >= 2.7.0}
33a1c0f3 514Requires: zlib-devel
f5aa1c6a 515%{?with_zvbi:Requires: zvbi-devel >= 0.2.28}
d1cf045f 516Obsoletes: libpostproc-devel < 2:1.0-1
af49d6ab
JB
517
518%description devel
519ffmpeg header files.
520
cdb7b42e
JR
521%description devel -l pl.UTF-8
522Pliki nagłówkowe ffmpeg.
af49d6ab
JB
523
524%package static
525Summary: ffmpeg static libraries
adcc0f76 526Summary(pl.UTF-8): Statyczne biblioteki ffmpeg
af49d6ab
JB
527Group: Development/Libraries
528Requires: %{name}-devel = %{version}-%{release}
529
530%description static
531ffmpeg static libraries (libavcodec and libavformat).
532
cdb7b42e 533%description static -l pl.UTF-8
af49d6ab
JB
534Statyczne biblioteki ffmpeg (libavcodec i libavformat).
535
2a60eebe
JB
536%package ffplay
537Summary: FFplay - SDL-based media player
adcc0f76 538Summary(pl.UTF-8): FFplay - odtwarzacz mediów oparty na SDL
2a60eebe 539Group: Applications/Multimedia
54ec280e 540Requires: %{name}-libs = %{version}-%{release}
2a60eebe
JB
541
542%description ffplay
543FFplay is a very simple and portable media player using the FFmpeg
544libraries and the SDL library. It is mostly used as a test bench for
545the various APIs of FFmpeg.
546
cdb7b42e
JR
547%description ffplay -l pl.UTF-8
548FFplay to bardzo prosty i przenośny odtwarzacz mediów używający
549bibliotek FFmpeg oraz biblioteki SDL. Jest używany głównie do
550testowania różnych API FFmpeg.
2a60eebe 551
4b05ede1 552%package doc
143c6eec
JB
553Summary: FFmpeg documentation in HTML format
554Summary(pl.UTF-8): Dokumentacja pakietu FFmpeg w formacie HTML
4b05ede1 555Group: Documentation
69c891d5 556BuildArch: noarch
4b05ede1
ER
557
558%description doc
143c6eec 559FFmpeg documentation in HTML format.
4b05ede1
ER
560
561%description doc -l pl.UTF-8
143c6eec 562Dokumentacja pakietu FFmpeg w formacie HTML.
4b05ede1 563
9fc4ad22 564%prep
aed8e8c9 565%setup -q
7003e3a3 566%patch0 -p1
2a2ce640 567%patch1 -p1
a9e080d9 568%patch2 -p1
80105e83
JP
569%if %{with v4l2_request}
570%patch3 -p1
571%endif
e8591a3e 572%patch4 -p1
9fc4ad22 573
9d4f8977
ER
574# package the grep result for mplayer, the result formatted as ./mplayer/configure
575cat <<EOF > ffmpeg-avconfig
2b2445b7 576#! /bin/sh
16803cdb
ER
577libavdecoders_all="$(sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
578libavencoders_all="$(sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
579libavparsers_all="$(sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
580libavbsfs_all="$(sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
581libavdemuxers_all="$(sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')"
582libavmuxers_all="$(sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')"
583libavprotocols_all="$(sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')"
584libavhwaccels_all="$(sed -n 's/^[^#]*HWACCEL.*(.*, *\(.*\)).*/\1_hwaccel/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
585libavfilters_all="$(sed -n 's/^[^#]*FILTER.*(.*, *\(.*\),.*).*/\1_filter/p' libavfilter/allfilters.c | tr '[a-z]' '[A-Z]')"
2b2445b7 586EOF
9d4f8977 587cat <<'EOF' >> ffmpeg-avconfig
2b2445b7
ER
588
589case "$1" in
590--decoders)
16803cdb 591 echo $libavdecoders_all
2b2445b7
ER
592 ;;
593--encoders)
16803cdb 594 echo $libavencoders_all
2b2445b7
ER
595 ;;
596--parsers)
16803cdb 597 echo $libavparsers_all
2b2445b7
ER
598 ;;
599--bsfs)
16803cdb 600 echo $libavbsfs_all
2b2445b7
ER
601 ;;
602--demuxers)
16803cdb 603 echo $libavdemuxers_all
2b2445b7
ER
604 ;;
605--muxers)
16803cdb 606 echo $libavmuxers_all
2b2445b7
ER
607 ;;
608--protocols)
16803cdb
ER
609 echo $libavprotocols_all
610 ;;
611--hwaccels)
612 echo $libavhwaccels_all
613 ;;
614--filters)
615 echo $libavfilters_all
2b2445b7
ER
616 ;;
617*)
618 cat <<USAGE
619Usage: $0 [OPTION]
620Options:
621 --decoders
622 --encoders
623 --parsers
624 --bsfs
625 --demuxers
626 --muxers
627 --protocols
16803cdb
ER
628 --hwaccels
629 --filters
2b2445b7
ER
630USAGE
631 exit 1;;
632esac
633
634exit 0
635EOF
636
9fc4ad22 637%build
05e1eb2f
JB
638# notes:
639# - it's not autoconf configure
d0a0ec26 640# - --disable-debug, --disable-optimizations, tune=generic causes not to override our optflags
2080d1d3 641./configure \
b4680d0b 642 --arch=%{_target_base_arch} \
539b540f 643 --prefix=%{_prefix} \
9cf4d8a4 644 --libdir=%{_libdir} \
d81dfa95 645 --shlibdir=%{_libdir} \
2a60eebe 646 --mandir=%{_mandir} \
971ab51b
JP
647 --extra-cflags="-D_GNU_SOURCE=1 %{rpmcppflags} %{rpmcflags}%{?with_decklink: -I/usr/include/decklink}%{?with_opencv: -I/usr/include/opencv4}" \
648 --extra-cxxflags="-D_GNU_SOURCE=1 %{rpmcppflags} %{rpmcxxflags}%{?with_decklink: -I/usr/include/decklink}%{?with_opencv: -I/usr/include/opencv4}" \
1162803a 649 --extra-ldflags="%{rpmcflags} %{rpmldflags}" \
3eef5ddf 650 --cc="%{__cc}" \
126fb805
JB
651 --disable-debug \
652 --disable-optimizations \
6382c99d 653 --disable-stripping \
eaa9ad7b 654 %{!?with_doc:--disable-doc} \
314ef0df 655 --enable-avfilter \
0fdde3cc 656 %{?with_chromaprint:--enable-chromaprint} \
45620667 657 %{?with_cudasdk:--enable-cuda-nvcc} \
f6f5022a 658 %{?with_decklink:--enable-decklink} \
f5aa1c6a 659 %{!?with_ffnvcodec:--disable-ffnvcodec} \
d5aef92e 660 --enable-gnutls \
126fb805 661 --enable-gpl \
0b43f655 662 --enable-version3 \
d7a39558 663 %{?with_frei0r:--enable-frei0r} \
5f3dc7d9 664 %{?with_ladspa:--enable-ladspa} \
b1501b11 665 %{?with_lcms:--enable-lcms2} \
c2a0ec66 666 %{?with_aom:--enable-libaom} \
45620667 667 %{?with_aribb24:--enable-libaribb24} \
165180f1 668 %{?with_libaribcaption:--enable-libaribcaption} \
d5aef92e 669 --enable-libass \
3dcb8642 670 --enable-libbluray \
4474c07d 671 %{?with_bs2b:--enable-libbs2b} \
2362253d 672 %{?with_caca:--enable-libcaca} \
cbdd2688 673 --enable-libcelt \
d5aef92e 674 --enable-libcdio \
7fd3d5c0 675 %{?with_codec2:--enable-libcodec2} \
f7f28937 676 %{?with_dav1d:--enable-libdav1d} \
45620667 677 %{?with_avs2:--enable-libdavs2} \
471f06b0 678 %{?with_dc1394:--enable-libdc1394} \
44f5d561 679 %{?with_libdrm:--enable-libdrm} \
1c1d1368 680 %{?with_flite:--enable-libflite} \
7003e3a3 681 --enable-libfontconfig \
3dcb8642 682 --enable-libfreetype \
4474c07d 683 %{?with_fribidi:--enable-libfribidi} \
503d83e5 684 %{?with_glslang:--enable-libglslang} \
22745365 685 %{?with_gme:--enable-libgme} \
471f06b0 686 %{?with_gsm:--enable-libgsm} \
165180f1 687 --enable-libharfbuzz \
471f06b0 688 %{?with_iec61883:--enable-libiec61883} \
004e5628 689 %{?with_ilbc:--enable-libilbc} \
f5aa1c6a 690 --enable-libjack \
b1501b11 691 %{?with_libjxl:--enable-libjxl} \
7160e157 692 %{?with_kvazaar:--enable-libkvazaar} \
1b2d21b4 693 %{?with_libklvanc:--enable-libklvanc} \
f5aa1c6a 694 %{?with_lensfun:--enable-liblensfun} \
0258feb8 695 %{?with_mfx:--enable-libmfx} \
471f06b0 696 %{?with_modplug:--enable-libmodplug} \
15c15700 697 --enable-libmp3lame \
f5aa1c6a 698 %{?with_libmysofa:--enable-libmysofa} \
471f06b0
JP
699 %{?with_amr:--enable-libopencore-amrnb} \
700 %{?with_amr:--enable-libopencore-amrwb} \
192f9f57 701 %{?with_opencv:--enable-libopencv} \
0258feb8 702 %{?with_openh264:--enable-libopenh264} \
cbdd2688 703 --enable-libopenjpeg \
6dfc7c2a 704 %{?with_openmpt:--enable-libopenmpt} \
1c1d1368 705 --enable-libopus \
b1501b11 706 %{?with_libplacebo:--enable-libplacebo} \
d5aef92e 707 %{?with_pulseaudio:--enable-libpulse} \
503d83e5 708 %{?with_rabbitmq:--enable-librabbitmq} \
02280f85 709 %{?with_rav1e:--enable-librav1e} \
faf18066 710 %{?with_librist:--enable-librist} \
44f5d561 711 %{?with_librsvg:--enable-librsvg} \
cbdd2688 712 --enable-librtmp \
0fdde3cc 713 %{?with_rubberband:--enable-librubberband} \
eaebd467 714 %{?with_shaderc:--enable-libshaderc} \
f56b6dce 715 %{?with_shine:--enable-libshine} \
4474c07d 716 %{?with_smb:--enable-libsmbclient} \
7160e157 717 %{?with_snappy:--enable-libsnappy} \
05408820 718 %{?with_soxr:--enable-libsoxr} \
da99dcf2 719 --enable-libspeex \
503d83e5 720 %{?with_srt:--enable-libsrt} \
5f3dc7d9 721 %{?with_ssh:--enable-libssh} \
faf18066 722 %{?with_svtav1:--enable-libsvtav1} \
e5c1d36e 723 %{?with_tesseract:--enable-libtesseract} \
471f06b0 724 %{?with_theora:--enable-libtheora} \
1c1d1368 725 --enable-libtwolame \
faf18066 726 %{?with_uavs3d:--enable-libuavs3d} \
d5aef92e 727 --enable-libv4l2 \
f56b6dce 728 %{?with_vidstab:--enable-libvidstab} \
f5aa1c6a 729 %{?with_vmaf:--enable-libvmaf} \
471f06b0 730 %{?with_voamrwbenc:--enable-libvo-amrwbenc} \
126fb805 731 --enable-libvorbis \
64f8f109 732 %{?with_vpx:--enable-libvpx} \
8b9d2787 733 %{?with_webp:--enable-libwebp} \
ea09f25d 734 %{?with_x264:--enable-libx264} \
90ab353a 735 %{?with_x265:--enable-libx265} \
471f06b0 736 %{?with_avs:--enable-libxavs} \
45620667 737 %{?with_avs2:--enable-libxavs2} \
9e9d5429 738 --enable-libxcb \
503d83e5 739 %{?with_libxml2:--enable-libxml2} \
471f06b0 740 %{?with_xvid:--enable-libxvid} \
e5c1d36e 741 %{?with_zimg:--enable-libzimg} \
6a6b11be 742 %{?with_zmq:--enable-libzmq} \
5f3dc7d9 743 %{?with_zvbi:--enable-libzvbi} \
f5aa1c6a 744 %{?with_lv2:--enable-lv2} \
7003e3a3 745 %{?with_omx:--enable-omx} \
d5aef92e 746 %{?with_openal:--enable-openal} \
f56b6dce 747 %{?with_opencl:--enable-opencl} \
8b9d2787 748 %{?with_opengl:--enable-opengl} \
45620667 749 %{?with_pocketsphinx:--enable-pocketsphinx} \
6382c99d 750 --enable-postproc \
d7493de8 751 --enable-pthreads \
f5aa1c6a 752 %{?with_rkmpp:--enable-rkmpp} \
9cf4d8a4 753 --enable-shared \
8b479c7c 754 %{!?with_static_libs:--disable-static} \
6382c99d 755 --enable-swscale \
22745365 756 %{!?with_va:--disable-vaapi} \
f5aa1c6a 757 %{?with_vapoursynth:--enable-vapoursynth} \
eaebd467 758 %{!?with_vulkan:--disable-vulkan} \
80105e83
JP
759%if %{with v4l2_request}
760 --enable-libudev \
761 --enable-v4l2-request \
762%endif
7a286645 763%ifnarch %{ix86} %{x8664}
e1fe03f7 764 --disable-mmx \
765%endif
766%ifarch i386 i486
05e1eb2f 767 --disable-mmx \
b524cd99 768%endif
61f81a23
JR
769%ifarch x32
770 --disable-asm \
771%endif
0b43f655 772%if %{with nonfree}
48610c64 773 --enable-nonfree \
c8f42fb1 774 %{?with_fdk_aac:--enable-libfdk-aac} \
7003e3a3 775 %{?with_npp:--enable-libnpp} \
76243dbd 776%endif
75231f25 777 --enable-runtime-cpudetect
2305d791 778
1ef27ea1
JB
779%{__make} \
780 V=1
9fc4ad22 781
b8c60172
ER
782# CC_O to add -c to commandline. makefile should be patched
783%{__make} tools/qt-faststart V=1 CC_O='-c -o $@'
784
39711f7c
AM
785%{?with_tests:%{__make} check V=1}
786
9fc4ad22
AM
787%install
788rm -rf $RPM_BUILD_ROOT
38cf6de3 789install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_sbindir},/etc/{sysconfig,rc.d/init.d}} \
d2c2eb42 790 $RPM_BUILD_ROOT%{_includedir}/ffmpeg
9fc4ad22 791
a831ce58 792%{__make} install install-headers \
1ef27ea1
JB
793 DESTDIR=$RPM_BUILD_ROOT \
794 V=1
539b540f 795
a831ce58 796# install nonstandard, non-public headers manually
544421b2 797cp -a config.h $RPM_BUILD_ROOT%{_includedir}/ffmpeg
80428ade 798for a in libavutil/*/{asm,bswap}.h; do
a831ce58 799 install -Dp $a $RPM_BUILD_ROOT%{_includedir}/$a
544421b2 800done
9d4f8977 801cp -a libavformat/riff.h $RPM_BUILD_ROOT%{_includedir}/libavformat
544421b2 802
b8c60172 803install -p tools/qt-faststart $RPM_BUILD_ROOT%{_bindir}
9fc4ad22 804
2b2445b7
ER
805# install as ffmpeg-avconfig to avoid with possible programs looking for
806# ffmpeg-config and expecting --libs output from it which is not implemented
807# simple to do (by querying pkgconfig), but why?
b8c60172 808install -p ffmpeg-avconfig $RPM_BUILD_ROOT%{_bindir}/ffmpeg-avconfig
2b2445b7 809
a6755e78 810# packaged as %doc in -doc
eaa9ad7b 811%if %{with doc}
b1501b11 812%{__rm} $RPM_BUILD_ROOT%{_docdir}/ffmpeg/*.{css,html}
eaa9ad7b 813%endif
a6755e78
JB
814
815install -d $RPM_BUILD_ROOT%{_examplesdir}
816%{__mv} $RPM_BUILD_ROOT%{_datadir}/ffmpeg/examples $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
817
9fc4ad22
AM
818%clean
819rm -rf $RPM_BUILD_ROOT
820
1ef27ea1
JB
821%post libs -p /sbin/ldconfig
822%postun libs -p /sbin/ldconfig
539b540f 823
9fc4ad22
AM
824%files
825%defattr(644,root,root,755)
479e9af6 826%doc CREDITS LICENSE.md MAINTAINERS README.md RELEASE_NOTES doc/APIchanges
2a60eebe 827%attr(755,root,root) %{_bindir}/ffmpeg
3a7b84be 828%attr(755,root,root) %{_bindir}/ffprobe
b7313442 829%attr(755,root,root) %{_bindir}/qt-faststart
da99dcf2
AM
830%dir %{_datadir}/ffmpeg
831%{_datadir}/ffmpeg/*.ffpreset
714dcf83 832%{_datadir}/ffmpeg/ffprobe.xsd
28673856
JB
833%if %{with doc}
834%{_mandir}/man1/ffmpeg.1*
22745365 835%{_mandir}/man1/ffmpeg-all.1*
28673856
JB
836%{_mandir}/man1/ffmpeg-bitstream-filters.1*
837%{_mandir}/man1/ffmpeg-codecs.1*
838%{_mandir}/man1/ffmpeg-devices.1*
839%{_mandir}/man1/ffmpeg-filters.1*
840%{_mandir}/man1/ffmpeg-formats.1*
841%{_mandir}/man1/ffmpeg-protocols.1*
842%{_mandir}/man1/ffmpeg-resampler.1*
843%{_mandir}/man1/ffmpeg-scaler.1*
844%{_mandir}/man1/ffmpeg-utils.1*
845%{_mandir}/man1/ffprobe.1*
22745365 846%{_mandir}/man1/ffprobe-all.1*
28673856 847%endif
54ec280e
PG
848
849%files libs
850%defattr(644,root,root,755)
f50f7d7c 851%attr(755,root,root) %{_libdir}/libavcodec.so.*.*.*
0ea48c34 852%attr(755,root,root) %ghost %{_libdir}/libavcodec.so.60
d0a0ec26 853%attr(755,root,root) %{_libdir}/libavdevice.so.*.*.*
0ea48c34 854%attr(755,root,root) %ghost %{_libdir}/libavdevice.so.60
314ef0df 855%attr(755,root,root) %{_libdir}/libavfilter.so.*.*.*
0ea48c34 856%attr(755,root,root) %ghost %{_libdir}/libavfilter.so.9
f50f7d7c 857%attr(755,root,root) %{_libdir}/libavformat.so.*.*.*
0ea48c34 858%attr(755,root,root) %ghost %{_libdir}/libavformat.so.60
f50f7d7c 859%attr(755,root,root) %{_libdir}/libavutil.so.*.*.*
0ea48c34 860%attr(755,root,root) %ghost %{_libdir}/libavutil.so.58
d7493de8 861%attr(755,root,root) %{_libdir}/libpostproc.so.*.*.*
0ea48c34 862%attr(755,root,root) %ghost %{_libdir}/libpostproc.so.57
660918c5 863%attr(755,root,root) %{_libdir}/libswresample.so.*.*.*
eaebd467 864%attr(755,root,root) %ghost %{_libdir}/libswresample.so.4
ee032235 865%attr(755,root,root) %{_libdir}/libswscale.so.*.*.*
0ea48c34 866%attr(755,root,root) %ghost %{_libdir}/libswscale.so.7
314ef0df 867
539b540f
JB
868%files devel
869%defattr(644,root,root,755)
54ec280e 870%doc doc/optimization.txt
1ef27ea1 871%attr(755,root,root) %{_bindir}/ffmpeg-avconfig
539b540f 872%attr(755,root,root) %{_libdir}/libavcodec.so
d0a0ec26 873%attr(755,root,root) %{_libdir}/libavdevice.so
314ef0df 874%attr(755,root,root) %{_libdir}/libavfilter.so
539b540f 875%attr(755,root,root) %{_libdir}/libavformat.so
d7493de8 876%attr(755,root,root) %{_libdir}/libavutil.so
d2af4612 877%attr(755,root,root) %{_libdir}/libpostproc.so
660918c5 878%attr(755,root,root) %{_libdir}/libswresample.so
ee032235 879%attr(755,root,root) %{_libdir}/libswscale.so
539b540f 880%{_includedir}/ffmpeg
6382c99d
AM
881%{_includedir}/libavcodec
882%{_includedir}/libavdevice
314ef0df 883%{_includedir}/libavfilter
6382c99d
AM
884%{_includedir}/libavformat
885%{_includedir}/libavutil
886%{_includedir}/libpostproc
660918c5 887%{_includedir}/libswresample
6382c99d 888%{_includedir}/libswscale
1ef27ea1
JB
889%{_pkgconfigdir}/libavcodec.pc
890%{_pkgconfigdir}/libavdevice.pc
891%{_pkgconfigdir}/libavfilter.pc
892%{_pkgconfigdir}/libavformat.pc
893%{_pkgconfigdir}/libavutil.pc
894%{_pkgconfigdir}/libpostproc.pc
660918c5 895%{_pkgconfigdir}/libswresample.pc
1ef27ea1 896%{_pkgconfigdir}/libswscale.pc
28673856
JB
897%if %{with doc}
898%{_mandir}/man3/libavcodec.3*
899%{_mandir}/man3/libavdevice.3*
900%{_mandir}/man3/libavfilter.3*
901%{_mandir}/man3/libavformat.3*
902%{_mandir}/man3/libavutil.3*
903%{_mandir}/man3/libswresample.3*
904%{_mandir}/man3/libswscale.3*
905%endif
a6755e78 906%{_examplesdir}/%{name}-%{version}
539b540f 907
8b479c7c 908%if %{with static_libs}
9cf4d8a4
JB
909%files static
910%defattr(644,root,root,755)
1ef27ea1
JB
911%{_libdir}/libavcodec.a
912%{_libdir}/libavdevice.a
913%{_libdir}/libavfilter.a
914%{_libdir}/libavformat.a
915%{_libdir}/libavutil.a
916%{_libdir}/libpostproc.a
660918c5 917%{_libdir}/libswresample.a
1ef27ea1 918%{_libdir}/libswscale.a
8b479c7c 919%endif
af49d6ab
JB
920
921%files ffplay
922%defattr(644,root,root,755)
923%attr(755,root,root) %{_bindir}/ffplay
22745365
JB
924%if %{with doc}
925%{_mandir}/man1/ffplay.1*
926%{_mandir}/man1/ffplay-all.1*
927%endif
af49d6ab 928
4b05ede1
ER
929%if %{with doc}
930%files doc
931%defattr(644,root,root,755)
b1501b11 932%doc doc/*.{css,html}
4b05ede1 933%endif
This page took 0.811131 seconds and 4 git commands to generate.