]>
Commit | Line | Data |
---|---|---|
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 |
130 | Summary: FFmpeg - a very fast video and audio converter |
131 | Summary(pl.UTF-8): FFmpeg - szybki konwerter audio/wideo | |
9fc4ad22 | 132 | Name: 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 | 134 | Version: 6.1.1 |
b1ffd051 | 135 | Release: 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 | 140 | License: GPL v3+ with LGPL v3+ parts |
fde29260 | 141 | Group: Applications/Multimedia |
c732abb0 | 142 | Source0: https://ffmpeg.org/releases/%{name}-%{version}.tar.xz |
165180f1 | 143 | # Source0-md5: 341d719415b7f95bb59f5016f2864ac6 |
7003e3a3 | 144 | Patch0: %{name}-omx-libnames.patch |
2a2ce640 | 145 | Patch1: %{name}-atadenoise.patch |
a9e080d9 | 146 | Patch2: opencv4.patch |
80105e83 | 147 | Patch3: v4l2-request-hwdec.patch |
e8591a3e JB |
148 | Patch4: %{name}-vulkan1.3.280.patch |
149 | URL: 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} | |
156 | BuildRequires: SDL2-devel >= 2.0.1 | |
2f7d498d | 157 | BuildRequires: SDL2-devel < 3.0.0 |
e8591a3e | 158 | %{?with_vulkan:BuildRequires: Vulkan-Loader-devel >= 1.3.277} |
cbdd2688 | 159 | BuildRequires: alsa-lib-devel |
c2a0ec66 | 160 | %{?with_aom:BuildRequires: aom-devel >= 1.0.0} |
45620667 | 161 | %{?with_aribb24:BuildRequires: aribb24-devel} |
38cefaee | 162 | BuildRequires: bzip2-devel |
9f9ba8ac | 163 | BuildRequires: 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 | 169 | BuildRequires: fontconfig-devel |
0aad4bf2 | 170 | BuildRequires: 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 | 174 | BuildRequires: harfbuzz-devel |
4bee03f0 JB |
175 | %ifarch ppc |
176 | # require version with altivec support fixed | |
177 | BuildRequires: gcc >= 5:3.3.2-3 | |
178 | %endif | |
f31e1135 | 179 | %{?with_glslang:BuildRequires: glslang-devel >= 11} |
fecf9f23 | 180 | BuildRequires: gmp-devel |
d5aef92e | 181 | BuildRequires: gnutls-devel |
cbdd2688 | 182 | BuildRequires: jack-audio-connection-kit-devel |
165180f1 | 183 | %{?with_kvazaar:BuildRequires: kvazaar-devel >= 2.0.0} |
5f3dc7d9 | 184 | %{?with_ladspa:BuildRequires: ladspa-devel} |
cbdd2688 | 185 | BuildRequires: 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 | 189 | BuildRequires: libass-devel >= 0.11.0 |
043128df | 190 | %ifnarch %arch_with_atomics64 |
f2c90402 JP |
191 | BuildRequires: libatomic-devel |
192 | %endif | |
471f06b0 | 193 | %{?with_iec61883:BuildRequires: libavc1394-devel} |
4474c07d | 194 | %{?with_bs2b:BuildRequires: libbs2b-devel} |
3dcb8642 | 195 | BuildRequires: libbluray-devel |
1c1d1368 | 196 | %{?with_caca:BuildRequires: libcaca-devel} |
a09e741c | 197 | BuildRequires: 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 | 211 | BuildRequires: 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 | 215 | BuildRequires: 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 | 219 | BuildRequires: libtool >= 2:1.4d-3 |
daf9a670 | 220 | BuildRequires: libv4l-devel |
7003e3a3 JB |
221 | %if %{with va} |
222 | BuildRequires: libva-devel >= 1.0.3 | |
223 | BuildRequires: libva-drm-devel >= 1.0.3 | |
224 | BuildRequires: libva-x11-devel >= 1.0.3 | |
225 | %endif | |
503d83e5 | 226 | BuildRequires: libvdpau-devel >= 1.3 |
e380e18a | 227 | BuildRequires: 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 | 235 | BuildRequires: 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 |
243 | BuildRequires: 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 | 252 | BuildRequires: openjpeg2-devel >= 2.1 |
1c1d1368 | 253 | BuildRequires: opus-devel |
136f0f45 | 254 | BuildRequires: perl-Encode |
1463656a | 255 | BuildRequires: perl-tools-pod |
45620667 | 256 | %{?with_pocketsphinx:BuildRequires: pocketsphinx-devel > 0.8} |
ef3c0513 | 257 | BuildRequires: 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 | 262 | BuildRequires: 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 | 268 | BuildRequires: 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 | 272 | BuildRequires: 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 | 277 | BuildRequires: 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 | 287 | BuildRequires: xorg-lib-libX11-devel |
cbdd2688 | 288 | BuildRequires: xorg-lib-libXext-devel |
f5aa1c6a | 289 | BuildRequires: xorg-lib-libXv-devel |
471f06b0 | 290 | %{?with_xvid:BuildRequires: xvid-devel >= 1:1.1.0} |
8ebe3834 | 291 | BuildRequires: xz |
7003e3a3 | 292 | BuildRequires: xz-devel |
503d83e5 | 293 | %{?with_zmq:BuildRequires: zeromq-devel >= 4.2.1} |
d2c2eb42 | 294 | %{?with_zimg:BuildRequires: zimg-devel >= 2.7.0} |
33a1c0f3 | 295 | BuildRequires: zlib-devel |
f5aa1c6a | 296 | %{?with_zvbi:BuildRequires: zvbi-devel >= 0.2.28} |
9c4296c2 JB |
297 | # overflows maximum hash table size |
298 | BuildConflicts: pdksh < 5.2.14-57 | |
54ec280e | 299 | Requires: %{name}-libs = %{version}-%{release} |
2e686000 | 300 | Suggests: fontconfig |
35b7d412 | 301 | Suggests: fonts-TTF-Roboto |
d1cf045f | 302 | Obsoletes: libpostproc < 2:1.0-1 |
539b540f | 303 | BuildRoot: %{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 |
314 | FFmpeg is a complete solution to record, convert and stream audio and |
315 | video. It is a command line tool to convert one video file format to | |
316 | another. It also supports grabbing and encoding in real time from a TV | |
317 | card. | |
9fc4ad22 | 318 | |
cdb7b42e | 319 | %description -l pl.UTF-8 |
cbdd2688 JB |
320 | FFmpeg to kompletne rozwiązanie nagrywania, konwersji i transmisji |
321 | strumieni dźwięku i obrazu. Jest to działające z linii poleceń | |
322 | narzędzie do konwersji obrazu z jednego formatu do innego. Obsługuje | |
323 | także przechwytywanie i kodowanie w czasie rzeczywistym z karty | |
324 | telewizyjnej. | |
9fc4ad22 | 325 | |
54ec280e PG |
326 | %package libs |
327 | Summary: ffmpeg libraries | |
adcc0f76 | 328 | Summary(pl.UTF-8): Biblioteki ffmpeg |
1be5865c | 329 | Group: Libraries |
7003e3a3 | 330 | Requires: SDL2 >= 2.0.1 |
e8591a3e | 331 | %{?with_vulkan:Requires: Vulkan-Loader >= 1.3.277} |
c2a0ec66 | 332 | %{?with_aom:Requires: aom >= 1.0.0} |
f5aa1c6a | 333 | Requires: 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 | 339 | Requires: gnutls-libs >= 3.0.20 |
143c6eec | 340 | %endif |
165180f1 | 341 | %{?with_kvazaar:Requires: kvazaar-libs >= 2.0.0} |
eaebd467 | 342 | Requires: 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} |
351 | Requires: libva >= 1.0.3 | |
352 | Requires: libva-drm >= 1.0.3 | |
353 | Requires: libva-x11 >= 1.0.3 | |
354 | %endif | |
503d83e5 | 355 | Requires: 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 |
360 | Requires: libxcb >= 1.4 |
361 | Requires: 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} |
366 | Requires: 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} |
372 | Requires: speex >= 1:1.2-rc1 | |
373 | %{?with_srt:Requires: srt >= 1.3} | |
b1501b11 | 374 | %{?with_svtav1:Requires: svt-av1 >= 0.9.0} |
ff838fc6 | 375 | Requires: 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 |
387 | This 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 |
395 | Ten 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 |
403 | Summary: ffmpeg header files | |
adcc0f76 | 404 | Summary(pl.UTF-8): Pliki nagłówkowe ffmpeg |
af49d6ab | 405 | Group: Development/Libraries |
54ec280e | 406 | Requires: %{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 | 411 | Requires: SDL2-devel >= 2.0.1 |
e8591a3e | 412 | %{?with_vulkan:Requires: Vulkan-Loader-devel >= 1.3.277} |
38cefaee | 413 | Requires: alsa-lib-devel |
c2a0ec66 | 414 | %{?with_aom:Requires: aom-devel >= 1.0.0} |
45620667 | 415 | %{?with_aribb24:Requires: aribb24-devel} |
38cefaee | 416 | Requires: bzip2-devel |
9c4296c2 | 417 | Requires: 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 | 423 | Requires: fontconfig-devel |
0aad4bf2 | 424 | Requires: 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 | 428 | Requires: gnutls-devel |
165180f1 | 429 | Requires: harfbuzz-devel |
38cefaee | 430 | Requires: jack-audio-connection-kit-devel |
165180f1 | 431 | %{?with_kvazaar:Requires: kvazaar-devel >= 2.0.0} |
38cefaee | 432 | Requires: 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 | 436 | Requires: libass-devel >= 0.11.0 |
471f06b0 | 437 | %{?with_iec61883:Requires: libavc1394-devel} |
3dcb8642 | 438 | Requires: libbluray-devel |
4474c07d | 439 | %{?with_bs2b:Requires: libbs2b-devel} |
28673856 | 440 | %{?with_caca:Requires: libcaca-devel} |
a09e741c | 441 | Requires: 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 | 454 | Requires: 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 | 458 | Requires: librtmp-devel |
4474c07d | 459 | %{?with_smb:Requires: libsmbclient-devel} |
165180f1 | 460 | %{?with_ssh:Requires: libssh-devel >= 0.6.0} |
f5aa1c6a | 461 | Requires: libstdc++-devel |
471f06b0 | 462 | %{?with_theora:Requires: libtheora-devel >= 1.0-0.beta3} |
f5aa1c6a | 463 | Requires: 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 | 467 | Requires: libvdpau-devel >= 1.3 |
33a1c0f3 | 468 | Requires: 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 |
474 | Requires: 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 | 482 | Requires: openjpeg2-devel >= 2.1 |
f5aa1c6a JB |
483 | Requires: 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 | 493 | Requires: 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 | 498 | Requires: 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 | 507 | Requires: xorg-lib-libX11-devel |
38cefaee | 508 | Requires: xorg-lib-libXext-devel |
f5aa1c6a | 509 | Requires: xorg-lib-libXv-devel |
471f06b0 | 510 | %{?with_xvid:Requires: xvid-devel >= 1:1.1.0} |
f5aa1c6a | 511 | Requires: xz-devel |
503d83e5 | 512 | %{?with_zmq:Requires: zeromq-devel >= 4.2.1} |
f5aa1c6a | 513 | %{?with_zimg:Requires: zimg-devel >= 2.7.0} |
33a1c0f3 | 514 | Requires: zlib-devel |
f5aa1c6a | 515 | %{?with_zvbi:Requires: zvbi-devel >= 0.2.28} |
d1cf045f | 516 | Obsoletes: libpostproc-devel < 2:1.0-1 |
af49d6ab JB |
517 | |
518 | %description devel | |
519 | ffmpeg header files. | |
520 | ||
cdb7b42e JR |
521 | %description devel -l pl.UTF-8 |
522 | Pliki nagłówkowe ffmpeg. | |
af49d6ab JB |
523 | |
524 | %package static | |
525 | Summary: ffmpeg static libraries | |
adcc0f76 | 526 | Summary(pl.UTF-8): Statyczne biblioteki ffmpeg |
af49d6ab JB |
527 | Group: Development/Libraries |
528 | Requires: %{name}-devel = %{version}-%{release} | |
529 | ||
530 | %description static | |
531 | ffmpeg static libraries (libavcodec and libavformat). | |
532 | ||
cdb7b42e | 533 | %description static -l pl.UTF-8 |
af49d6ab JB |
534 | Statyczne biblioteki ffmpeg (libavcodec i libavformat). |
535 | ||
2a60eebe JB |
536 | %package ffplay |
537 | Summary: FFplay - SDL-based media player | |
adcc0f76 | 538 | Summary(pl.UTF-8): FFplay - odtwarzacz mediów oparty na SDL |
2a60eebe | 539 | Group: Applications/Multimedia |
54ec280e | 540 | Requires: %{name}-libs = %{version}-%{release} |
2a60eebe JB |
541 | |
542 | %description ffplay | |
543 | FFplay is a very simple and portable media player using the FFmpeg | |
544 | libraries and the SDL library. It is mostly used as a test bench for | |
545 | the various APIs of FFmpeg. | |
546 | ||
cdb7b42e JR |
547 | %description ffplay -l pl.UTF-8 |
548 | FFplay to bardzo prosty i przenośny odtwarzacz mediów używający | |
549 | bibliotek FFmpeg oraz biblioteki SDL. Jest używany głównie do | |
550 | testowania różnych API FFmpeg. | |
2a60eebe | 551 | |
4b05ede1 | 552 | %package doc |
143c6eec JB |
553 | Summary: FFmpeg documentation in HTML format |
554 | Summary(pl.UTF-8): Dokumentacja pakietu FFmpeg w formacie HTML | |
4b05ede1 | 555 | Group: Documentation |
69c891d5 | 556 | BuildArch: noarch |
4b05ede1 ER |
557 | |
558 | %description doc | |
143c6eec | 559 | FFmpeg documentation in HTML format. |
4b05ede1 ER |
560 | |
561 | %description doc -l pl.UTF-8 | |
143c6eec | 562 | Dokumentacja 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 |
575 | cat <<EOF > ffmpeg-avconfig | |
2b2445b7 | 576 | #! /bin/sh |
16803cdb ER |
577 | libavdecoders_all="$(sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')" |
578 | libavencoders_all="$(sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')" | |
579 | libavparsers_all="$(sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')" | |
580 | libavbsfs_all="$(sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')" | |
581 | libavdemuxers_all="$(sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')" | |
582 | libavmuxers_all="$(sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')" | |
583 | libavprotocols_all="$(sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')" | |
584 | libavhwaccels_all="$(sed -n 's/^[^#]*HWACCEL.*(.*, *\(.*\)).*/\1_hwaccel/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')" | |
585 | libavfilters_all="$(sed -n 's/^[^#]*FILTER.*(.*, *\(.*\),.*).*/\1_filter/p' libavfilter/allfilters.c | tr '[a-z]' '[A-Z]')" | |
2b2445b7 | 586 | EOF |
9d4f8977 | 587 | cat <<'EOF' >> ffmpeg-avconfig |
2b2445b7 ER |
588 | |
589 | case "$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 | |
619 | Usage: $0 [OPTION] | |
620 | Options: | |
621 | --decoders | |
622 | --encoders | |
623 | --parsers | |
624 | --bsfs | |
625 | --demuxers | |
626 | --muxers | |
627 | --protocols | |
16803cdb ER |
628 | --hwaccels |
629 | --filters | |
2b2445b7 ER |
630 | USAGE |
631 | exit 1;; | |
632 | esac | |
633 | ||
634 | exit 0 | |
635 | EOF | |
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 |
788 | rm -rf $RPM_BUILD_ROOT | |
38cf6de3 | 789 | install -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 | 797 | cp -a config.h $RPM_BUILD_ROOT%{_includedir}/ffmpeg |
80428ade | 798 | for a in libavutil/*/{asm,bswap}.h; do |
a831ce58 | 799 | install -Dp $a $RPM_BUILD_ROOT%{_includedir}/$a |
544421b2 | 800 | done |
9d4f8977 | 801 | cp -a libavformat/riff.h $RPM_BUILD_ROOT%{_includedir}/libavformat |
544421b2 | 802 | |
b8c60172 | 803 | install -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 | 808 | install -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 | |
815 | install -d $RPM_BUILD_ROOT%{_examplesdir} | |
816 | %{__mv} $RPM_BUILD_ROOT%{_datadir}/ffmpeg/examples $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} | |
817 | ||
9fc4ad22 AM |
818 | %clean |
819 | rm -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 |