]> git.pld-linux.org Git - packages/ffmpeg.git/blob - ffmpeg.spec
9e87d55cb83589b26994aa6833ebfb03ec577847
[packages/ffmpeg.git] / ffmpeg.spec
1 # TODO:
2 # - libndi_newtek[nonfree, BR: Processing.NDI.Lib.h - probably https://www.newtek.com/ndi/sdk/]
3 # - libdavs2 [pkgconfig(davs2) >= 1.5.115 davs2.h]
4 # - libklvanc [-lklvanc libklvanc/vanc.h]
5 # - libtensorflow [-ltensorflow tensorflow/c/c_api.h]
6 # - libxavs2 [pkgconfig(xavs2) >= 1.2.77
7 # - AMF >= 1.4.4.1 (available at https://github.com/GPUOpen-LibrariesAndSDKs/AMF, where is original source?)
8 #
9 # How to deal with ffmpeg/opencv/chromaprint checken-egg problem:
10 #       1. make-request -r --with bootstrap ffmpeg.spec
11 #       2  bump release of opencv.spec and chromaprint.spec
12 #       3. make-request -r opencv.spec chromaprint.spec
13 #       4. bump release of ffmpeg.spec
14 #       5. make-request -r ffmpeg.spec
15 #
16 # Conditional build:
17 %bcond_with     bootstrap       # disable features to able to build without installed ffmpeg
18 %bcond_with     nonfree         # unblock non free options of package (currently: cuda_sdk, decklib, fdk_aac, libndi_newtek, npp, openssl, libressl/libtls)
19 %bcond_without  bs2b            # BS2B audio filter support
20 %bcond_without  caca            # textual display using libcaca
21 %bcond_without  codec2          # codec2 support using libcodec2
22 %bcond_without  chromaprint     # audio fingerprinting with chromaprint
23 %bcond_with     cudasdk         # NVIDIA CUDA code using SDK [BR: cuda.h, non-free]
24 %bcond_without  dav1d           # AV1 decoding via libdav1d
25 %bcond_with     decklink        # Blackmagic DeskLink output support (requires nonfree)
26 %bcond_with     fdk_aac         # AAC de/encoding via libfdk_aac (requires nonfree)
27 %bcond_without  ffnvcodec       # NVIDIA codecs support using ffnvcodec headers (covered: cuda cuvid nvdec nvenc)
28 %bcond_without  flite           # flite voice synthesis support
29 %bcond_without  frei0r          # frei0r video filtering
30 %bcond_without  fribidi         # fribidi support
31 %bcond_without  gme             # Game Music Emu support
32 %bcond_without  ilbc            # iLBC de/encoding via WebRTC libilbc
33 %bcond_without  kvazaar         # Kvazaar HEVC encoder support
34 %bcond_without  ladspa          # LADSPA audio filtering
35 %bcond_without  lensfun         # lensfun lens correction
36 %bcond_with     libdrm          # Linux Direct Rendering Manager code
37 %bcond_without  libmysofa       # sofalizer filter
38 %bcond_with     librsvg         # SVG rasterization via librsvg
39 %bcond_with     libxml2         # XML parsing using libxml2
40 %bcond_without  lv2             # LV2 audio filtering
41 %bcond_with     mfx             # MFX hardware acceleration support
42 %bcond_with     npp             # NVIDIA Performance Primitives-based code (requires nonfree) [BR: libnppc+libnppi, npp.h]
43 %bcond_without  omx             # OpenMAX IL support
44 %bcond_without  openal          # OpenAL 1.1 capture support
45 %bcond_without  opencl          # OpenCL 1.2 code
46 %bcond_without  opencv          # OpenCV video filtering
47 %bcond_without  opengl          # OpenGL rendering support
48 %bcond_with     openh264        # OpenH264 H.264 encoder
49 %bcond_without  openmpt         # OpenMPT module decoder
50 %bcond_without  pulseaudio      # PulseAudio input support
51 %bcond_with     rkmpp           # Rockchip Media Process Platform code [implies libdrm]
52 %bcond_without  rubberband      # rubberband filter
53 %bcond_without  shine           # shine fixed-point MP3 encoder
54 %bcond_without  snappy          # Snappy compression support (needed for hap encoding)
55 %bcond_without  srt             # Haivision SRT protocol support
56 %bcond_without  ssh             # SFTP protocol support via libssh
57 %bcond_with     smb             # SMB support via libsmbclient
58 %bcond_without  soxr            # SoX Resampler support
59 %bcond_with     tesseract       # OCR filter based on Tesseract
60 %bcond_without  vmaf            # VMAF filter support
61 %bcond_without  x264            # H.264 x264 encoder
62 %bcond_without  x265            # H.265/HEVC x265 encoder
63 %bcond_without  va              # VAAPI (Video Acceleration API)
64 %bcond_without  vapoursynth     # VapourSynth demuxer
65 %bcond_without  vidstab         # vid.stab video stabilization support
66 %bcond_without  vpx             # VP8, a high-quality video codec
67 %bcond_without  wavpack         # wavpack encoding support
68 %bcond_without  webp            # WebP encoding support
69 %bcond_without  zimg            # zscale filter based on z.lib
70 %bcond_without  zmq             # 0MQ message passing
71 %bcond_without  zvbi            # teletext via libzvbi
72 %bcond_without  doc             # don't build docs
73 %bcond_with     tests           # "make check" (some tests fail as of 2.5)
74
75 %if %{with bootstrap}
76 %undefine       with_opencv
77 %undefine       with_chromaprint
78 %endif
79 %if %{with rkmpp}
80 %define         with_libdrm     1
81 %endif
82
83 %ifnarch %{ix86} %{x8664}
84 %undefine       with_ffnvcodec
85 %endif
86 %ifnarch %{ix86} %{x8664} %{arm}
87 %undefine       with_x265
88 %endif
89 %ifarch i386 i486
90 %undefine       with_x265
91 %endif
92 Summary:        FFmpeg - a very fast video and audio converter
93 Summary(pl.UTF-8):      FFmpeg - szybki konwerter audio/wideo
94 Name:           ffmpeg
95 Version:        4.2
96 Release:        1
97 # LGPL or GPL, chosen at configure time (GPL version is more featured)
98 # GPL: frei0r libcdio libdavs2 rubberband vidstab x264 x265 xavs xavs2 xvid
99 # v3 (allows *GPLv3 or Apache-licensed libs): gmp lensfun opencore-amr vmaf vo-*enc rkmpp
100 # GPLv3: smbclient
101 License:        GPL v3+ with LGPL v3+ parts
102 Group:          Applications/Multimedia
103 Source0:        http://ffmpeg.org/releases/%{name}-%{version}.tar.xz
104 # Source0-md5:  fb33a9110251873002869664686b2a3f
105 Patch0:         %{name}-omx-libnames.patch
106 URL:            http://www.ffmpeg.org/
107 %{?with_decklink:BuildRequires: Blackmagic_DeckLink_SDK >= 10.9.5}
108 %{?with_openal:BuildRequires:   OpenAL-devel >= 1.1}
109 %{?with_opencl:BuildRequires:   OpenCL-devel >= 1.2}
110 %{?with_opengl:BuildRequires:   OpenGL-GLX-devel}
111 # libomxil-bellagio-devel or limoi-core-devel (just headers, library is dlopened at runtime)
112 %{?with_omx:BuildRequires:      OpenMAX-IL-devel}
113 BuildRequires:  SDL2-devel >= 2.0.1
114 BuildRequires:  SDL2-devel < 2.1.0
115 BuildRequires:  alsa-lib-devel
116 BuildRequires:  aom-devel >= 1.0.0
117 BuildRequires:  bzip2-devel
118 BuildRequires:  celt-devel >= 0.11.0
119 %{?with_codec2:BuildRequires:   codec2-devel}
120 %{?with_dav1d:BuildRequires:    dav1d-devel >= 0.2.1}
121 %{?with_fdk_aac:BuildRequires:  fdk-aac-devel}
122 %{?with_flite:BuildRequires:    flite-devel >= 1.4}
123 BuildRequires:  fontconfig-devel
124 BuildRequires:  freetype-devel
125 %{?with_frei0r:BuildRequires:   frei0r-devel}
126 %{?with_fribidi:BuildRequires:  fribidi-devel}
127 %{?with_gme:BuildRequires:      game-music-emu-devel}
128 %ifarch ppc
129 # require version with altivec support fixed
130 BuildRequires:  gcc >= 5:3.3.2-3
131 %endif
132 BuildRequires:  gmp-devel
133 BuildRequires:  gnutls-devel
134 BuildRequires:  jack-audio-connection-kit-devel
135 %{?with_kvazaar:BuildRequires:  kvazaar-devel >= 0.8.1}
136 %{?with_ladspa:BuildRequires:   ladspa-devel}
137 BuildRequires:  lame-libs-devel >= 3.98.3
138 %{?with_lensfun:BuildRequires:  lensfun-devel}
139 BuildRequires:  libass-devel
140 BuildRequires:  libavc1394-devel
141 %{?with_bs2b:BuildRequires:     libbs2b-devel}
142 BuildRequires:  libbluray-devel
143 %{?with_caca:BuildRequires:     libcaca-devel}
144 BuildRequires:  libcdio-paranoia-devel >= 0.90-2
145 %{?with_chromaprint:BuildRequires:      libchromaprint-devel}
146 BuildRequires:  libcrystalhd-devel
147 BuildRequires:  libdc1394-devel >= 2
148 %{?with_libdrm:BuildRequires:   libdrm-devel}
149 BuildRequires:  libgsm-devel
150 BuildRequires:  libiec61883-devel
151 BuildRequires:  libmodplug-devel
152 %{?with_libmysofa:BuildRequires:        libmysofa-devel >= 0.7-2.20190516.1}
153 %{?with_openmpt:BuildRequires: libopenmpt-devel >= 0.2.6557}
154 BuildRequires:  libraw1394-devel >= 2
155 %{?with_librsvg:BuildRequires:  librsvg-devel >= 2}
156 BuildRequires:  librtmp-devel
157 %{?with_ssh:BuildRequires:      libssh-devel}
158 %{?with_smb:BuildRequires:      libsmbclient-devel}
159 BuildRequires:  libtheora-devel >= 1.0-0.beta3
160 BuildRequires:  libtool >= 2:1.4d-3
161 BuildRequires:  libv4l-devel
162 %if %{with va}
163 BuildRequires:  libva-devel >= 1.0.3
164 BuildRequires:  libva-drm-devel >= 1.0.3
165 BuildRequires:  libva-x11-devel >= 1.0.3
166 %endif
167 BuildRequires:  libvdpau-devel >= 0.2
168 BuildRequires:  libvorbis-devel
169 %{?with_vpx:BuildRequires:      libvpx-devel >= 1.4.0}
170 %{?with_webp:BuildRequires:     libwebp-devel >= 0.4.0}
171 # X264_BUILD >= 118
172 %{?with_x264:BuildRequires:     libx264-devel >= 0.1.3-1.20111212_2245}
173 # X265_BUILD >= 68
174 %{?with_x265:BuildRequires:     libx265-devel >= 1.8}
175 # libxcb xcb-shm xcb-xfixes xcb-shape
176 BuildRequires:  libxcb-devel >= 1.4
177 %{?with_libxml2:BuildRequires:  libxml2-devel >= 2}
178 %{?with_lv2:BuildRequires:      lilv-devel}
179 %{?with_lv2:BuildRequires:      lv2-devel}
180 %{?with_mfx:BuildRequires:      mfx_dispatch-devel}
181 %ifarch %{ix86}
182 %ifnarch i386 i486
183 BuildRequires:  nasm
184 %endif
185 %endif
186 %{?with_ffnvcodec:BuildRequires:        nv-codec-headers >= 8.1.24.2}
187 # amrnb,amrwb
188 BuildRequires:  opencore-amr-devel
189 %{?with_opencv:BuildRequires:   opencv-devel >= 2}
190 %{?with_openh264:BuildRequires: openh264-devel >= 1.3}
191 BuildRequires:  openjpeg2-devel >= 2.1
192 BuildRequires:  opus-devel
193 BuildRequires:  perl-Encode
194 BuildRequires:  perl-tools-pod
195 BuildRequires:  pkgconfig
196 %{?with_pulseaudio:BuildRequires:       pulseaudio-devel}
197 %{?with_rkmpp:BuildRequires:    rockchip-mpp-devel >= 1.3.7}
198 BuildRequires:  rpmbuild(macros) >= 1.470
199 %{?with_rubberband:BuildRequires:       rubberband-devel >= 1.8.1}
200 %{?with_shine:BuildRequires:    shine-devel >= 3.0.0}
201 %{?with_snappy:BuildRequires:   snappy-devel}
202 %{?with_soxr:BuildRequires:     soxr-devel}
203 BuildRequires:  speex-devel >= 1:1.2-rc1
204 %{?with_srt:BuildRequires:      srt-devel >= 1.3}
205 %{?with_tesseract:BuildRequires:        tesseract-devel}
206 %{?with_doc:BuildRequires:      tetex}
207 %{?with_doc:BuildRequires:      texi2html}
208 %{?with_doc:BuildRequires:      texinfo}
209 BuildRequires:  twolame-devel >= 0.3.10
210 %{?with_vapoursynth:BuildRequires:      vapoursynth-devel >= 42}
211 %{?with_vidstab:BuildRequires:  vid.stab-devel >= 0.98}
212 %{?with_vmaf:BuildRequires:     vmaf-devel >= 1.3.9}
213 BuildRequires:  vo-amrwbenc-devel
214 %{?with_wavpack:BuildRequires:  wavpack-devel}
215 %{?with_ilbc:BuildRequires:     webrtc-libilbc-devel}
216 BuildRequires:  xavs-devel
217 BuildRequires:  xorg-lib-libX11-devel
218 BuildRequires:  xorg-lib-libXext-devel
219 BuildRequires:  xorg-lib-libXv-devel
220 BuildRequires:  xvid-devel >= 1:1.1.0
221 BuildRequires:  xz-devel
222 BuildRequires:  yasm
223 %{?with_zmq:BuildRequires:      zeromq-devel}
224 %{?with_zimg:BuildRequires:     zimg-devel >= 2.7.0}
225 BuildRequires:  zlib-devel
226 %{?with_zvbi:BuildRequires:     zvbi-devel >= 0.2.28}
227 %{?with_autoreqdep:BuildConflicts:      libpostproc}
228 # overflows maximum hash table size
229 BuildConflicts: pdksh < 5.2.14-57
230 Requires:       %{name}-libs = %{version}-%{release}
231 Obsoletes:      libpostproc
232 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
233
234 %define         specflags       -fno-strict-aliasing
235
236 # -fomit-frame-pointer is always needed on x86 due to lack of registers (-fPIC takes one)
237 %define         specflags_ia32  -fomit-frame-pointer
238 # -mmmx is needed to enable <mmintrin.h> code.
239 %define         specflags_i586  -mmmx
240 %define         specflags_i686  -mmmx
241 %define         specflags_ppc   -fPIC
242
243 %description
244 FFmpeg is a complete solution to record, convert and stream audio and
245 video. It is a command line tool to convert one video file format to
246 another. It also supports grabbing and encoding in real time from a TV
247 card.
248
249 %description -l pl.UTF-8
250 FFmpeg to kompletne rozwiązanie nagrywania, konwersji i transmisji
251 strumieni dźwięku i obrazu. Jest to działające z linii poleceń
252 narzędzie do konwersji obrazu z jednego formatu do innego. Obsługuje
253 także przechwytywanie i kodowanie w czasie rzeczywistym z karty
254 telewizyjnej.
255
256 %package libs
257 Summary:        ffmpeg libraries
258 Summary(pl.UTF-8):      Biblioteki ffmpeg
259 Group:          Libraries
260 Requires:       SDL2 >= 2.0.1
261 Requires:       aom >= 1.0.0
262 Requires:       celt >= 0.11.0
263 %{?with_dav1d:Requires: dav1d >= 0.2.1}
264 %{?with_flite:Requires: flite >= 1.4}
265 %if "%(rpm -q --qf '%{V}' gnutls-devel)" >= "3.0.20"
266 # uses gnutls_certificate_set_x509_system_trust if >= 3.0.20
267 Requires:       gnutls-libs >= 3.0.20
268 %endif
269 %{?with_kvazaar:Requires:       kvazaar-libs >= 0.8.1}
270 %{?with_libmysofa:Requires:     libmysofa >= 0.7-2.20190516.1}
271 %{?with_openmpt:Requires: libopenmpt >= 0.2.6557}
272 Requires:       libtheora >= 1.0-0.beta3
273 %if %{with va}
274 Requires:       libva >= 1.0.3
275 Requires:       libva-drm >= 1.0.3
276 Requires:       libva-x11 >= 1.0.3
277 %endif
278 Requires:       libvdpau >= 0.2
279 %{?with_vpx:Requires:   libvpx >= 1.4.0}
280 %{?with_webp:Requires:  libwebp >= 0.4.0}
281 %{?with_x264:Requires:  libx264 >= 0.1.3-1.20111212_2245}
282 %{?with_x265:Requires:  libx265 >= 1.8}
283 Requires:       libxcb >= 1.4
284 Requires:       lame-libs >= 3.98.3
285 %{?with_openh264:Requires:      openh264 >= 1.3}
286 Requires:       openjpeg2 >= 2.1
287 %{?with_rkmpp:Requires: rockchip-mpp >= 1.3.7}
288 %{?with_rubberband:Requires:    rubberband-libs >= 1.8.1}
289 %{?with_shine:Requires: shine >= 3.0.0}
290 Requires:       speex >= 1:1.2-rc1
291 %{?with_srt:Requires:   srt >= 1.3}
292 Requires:       twolame-libs >= 0.3.10
293 %{?with_vapoursynth:Requires:   vapoursynth >= 42}
294 %{?with_vidstab:Requires:       vid.stab >= 0.98}
295 %{?with_vmaf:Requires:  vmaf-libs >= 1.3.9}
296 Requires:       xvid >= 1:1.1.0
297 %{?with_zimg:Requires:  zimg >= 2.7.0}
298 %{?with_zvbi:Requires:  zvbi >= 0.2.28}
299
300 %description libs
301 This package contains the ffmpeg shared libraries:
302 - the codec library (libavcodec). It supports most existing encoding
303   formats (MPEG, DivX, MPEG4, AC3, DV...),
304 - demuxer library (libavformat). It supports most existing file
305   formats (AVI, MPEG, OGG, Matroska, ASF...),
306 - video postprocessing library (libpostproc).
307
308 %description libs -l pl.UTF-8
309 Ten pakiet zawiera biblioteki współdzielone ffmpeg:
310 - bibliotekę kodeków (libavcodec); obsługuje większość istniejących
311   formatów kodowania (MPEG, DivX, MPEG4, AC3, DV...),
312 - bibliotekę demuksera (libavformat); obsługuje większość istniejących
313   formatów plików (AVI, MPEG, OGG, Matroska, ASF...),
314 - bibliotekę postprocessingu (libpostproc).
315
316 %package devel
317 Summary:        ffmpeg header files
318 Summary(pl.UTF-8):      Pliki nagłówkowe ffmpeg
319 Group:          Development/Libraries
320 Requires:       %{name}-libs = %{version}-%{release}
321 # Libs.private from *.pc
322 %{?with_openal:Requires:        OpenAL-devel >= 1.1}
323 %{?with_opencl:Requires:        OpenCL-devel >= 1.2}
324 %{?with_opengl:Requires:        OpenGL-devel}
325 Requires:       SDL2-devel >= 2.0.1
326 Requires:       alsa-lib-devel
327 Requires:       aom-devel >= 1.0.0
328 Requires:       bzip2-devel
329 Requires:       celt-devel >= 0.11.0
330 %{?with_codec2:Requires:        codec2-devel}
331 %{?with_dav1d:Requires: dav1d-devel >= 0.2.1}
332 %{?with_fdk_aac:Requires:       fdk-aac-devel}
333 %{?with_flite:Requires: flite-devel >= 1.4}
334 Requires:       fontconfig-devel
335 Requires:       freetype-devel
336 %{?with_fribidi:Requires:       fribidi-devel}
337 %{?with_gme:Requires:   game-music-emu-devel}
338 Requires:       gnutls-devel
339 Requires:       jack-audio-connection-kit-devel
340 %{?with_kvazaar:Requires:       kvazaar-devel >= 0.8.1}
341 Requires:       lame-libs-devel >= 3.98.3
342 %{?with_lensfun:Requires:       lensfun-devel}
343 Requires:       libass-devel
344 Requires:       libavc1394-devel
345 Requires:       libbluray-devel
346 %{?with_bs2b:Requires:  libbs2b-devel}
347 %{?with_caca:Requires:  libcaca-devel}
348 Requires:       libcdio-paranoia-devel >= 0.90-2
349 %{?with_chromaprint:Requires:   libchromaprint-devel}
350 Requires:       libcrystalhd-devel
351 Requires:       libdc1394-devel >= 2
352 %{?with_libdrm:Requires:        libdrm-devel}
353 Requires:       libgsm-devel
354 Requires:       libiec61883-devel
355 Requires:       libmodplug-devel
356 %{?with_libmysofa:Requires:     libmysofa-devel >= 0.7-2.20190516.1}
357 %{?with_openmpt:Requires: libopenmpt-devel >= 0.2.6557}
358 Requires:       libraw1394-devel >= 2
359 %{?with_librsvg:Requires:       librsvg-devel >= 2}
360 Requires:       librtmp-devel
361 %{?with_smb:Requires:   libsmbclient-devel}
362 %{?with_ssh:Requires:   libssh-devel}
363 Requires:       libstdc++-devel
364 Requires:       libtheora-devel >= 1.0-0.beta3
365 Requires:       libv4l-devel
366 %{?with_va:Requires:    libva-devel >= 1.0.3}
367 %{?with_va:Requires:    libva-drm-devel >= 1.0.3}
368 %{?with_va:Requires:    libva-x11-devel >= 1.0.3}
369 Requires:       libvdpau-devel >= 0.2
370 Requires:       libvorbis-devel
371 %{?with_vpx:Requires:   libvpx-devel >= 1.4.0}
372 %{?with_webp:Requires:  libwebp-devel >= 0.4.0}
373 %{?with_x264:Requires:  libx264-devel >= 0.1.3-1.20110625_2245}
374 %{?with_x265:Requires:  libx265-devel >= 1.8}
375 # libxcb xcb-shm xcb-xfixes xcb-shape
376 Requires:       libxcb-devel >= 1.4
377 %{?with_libxml2:Requires:       libxml2-devel >= 2}
378 %{?with_lv2:Requires:   lilv-devel}
379 %{?with_mfx:Requires:   mfx_dispatch-devel}
380 Requires:       opencore-amr-devel
381 %{?with_opencv:Requires:        opencv-devel >= 2}
382 %{?with_openh264:Requires:      openh264-devel >= 1.3}
383 Requires:       openjpeg2-devel >= 2.1
384 Requires:       opus-devel
385 %{?with_pulseaudio:Requires:    pulseaudio-devel}
386 %{?with_rkmpp:Requires: rockchip-mpp-devel >= 1.3.7}
387 %{?with_rubberband:Requires:    rubberband-devel >= 1.8.1}
388 %{?with_shine:Requires: shine-devel >= 3.0.0}
389 %{?with_snappy:Requires:        snappy-devel}
390 %{?with_soxr:Requires:  soxr-devel}
391 Requires:       speex-devel >= 1:1.2-rc1
392 %{?with_srt:Requires:   srt-devel >= 1.3}
393 %{?with_tesseract:Requires:     tesseract-devel}
394 Requires:       twolame-devel >= 0.3.10
395 %{?with_vapoursynth:Requires:   vapoursynth-devel >= 42}
396 %{?with_vidstab:Requires:       vid.stab-devel >= 0.98}
397 Requires:       vo-amrwbenc-devel
398 %{?with_vmaf:Requires:  vmaf-devel >= 1.3.9}
399 %{?with_wavpack:Requires:       wavpack-devel}
400 %{?with_ilbc:Requires:  webrtc-libilbc-devel}
401 Requires:       xavs-devel
402 Requires:       xorg-lib-libX11-devel
403 Requires:       xorg-lib-libXext-devel
404 Requires:       xorg-lib-libXv-devel
405 Requires:       xvid-devel >= 1:1.1.0
406 Requires:       xz-devel
407 %{?with_zmq:Requires:   zeromq-devel}
408 %{?with_zimg:Requires:  zimg-devel >= 2.7.0}
409 Requires:       zlib-devel
410 %{?with_zvbi:Requires:  zvbi-devel >= 0.2.28}
411 Obsoletes:      libpostproc-devel
412
413 %description devel
414 ffmpeg header files.
415
416 %description devel -l pl.UTF-8
417 Pliki nagłówkowe ffmpeg.
418
419 %package static
420 Summary:        ffmpeg static libraries
421 Summary(pl.UTF-8):      Statyczne biblioteki ffmpeg
422 Group:          Development/Libraries
423 Requires:       %{name}-devel = %{version}-%{release}
424
425 %description static
426 ffmpeg static libraries (libavcodec and libavformat).
427
428 %description static -l pl.UTF-8
429 Statyczne biblioteki ffmpeg (libavcodec i libavformat).
430
431 %package ffplay
432 Summary:        FFplay - SDL-based media player
433 Summary(pl.UTF-8):      FFplay - odtwarzacz mediów oparty na SDL
434 Group:          Applications/Multimedia
435 Requires:       %{name}-libs = %{version}-%{release}
436
437 %description ffplay
438 FFplay is a very simple and portable media player using the FFmpeg
439 libraries and the SDL library. It is mostly used as a test bench for
440 the various APIs of FFmpeg.
441
442 %description ffplay -l pl.UTF-8
443 FFplay to bardzo prosty i przenośny odtwarzacz mediów używający
444 bibliotek FFmpeg oraz biblioteki SDL. Jest używany głównie do
445 testowania różnych API FFmpeg.
446
447 %package doc
448 Summary:        FFmpeg documentation in HTML format
449 Summary(pl.UTF-8):      Dokumentacja pakietu FFmpeg w formacie HTML
450 Group:          Documentation
451 %if "%{_rpmversion}" >= "5"
452 BuildArch:      noarch
453 %endif
454
455 %description doc
456 FFmpeg documentation in HTML format.
457
458 %description doc -l pl.UTF-8
459 Dokumentacja pakietu FFmpeg w formacie HTML.
460
461 %prep
462 %setup -q
463 %patch0 -p1
464
465 # package the grep result for mplayer, the result formatted as ./mplayer/configure
466 cat <<EOF > ffmpeg-avconfig
467 #! /bin/sh
468 libavdecoders_all="$(sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
469 libavencoders_all="$(sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
470 libavparsers_all="$(sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
471 libavbsfs_all="$(sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
472 libavdemuxers_all="$(sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')"
473 libavmuxers_all="$(sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')"
474 libavprotocols_all="$(sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')"
475 libavhwaccels_all="$(sed -n 's/^[^#]*HWACCEL.*(.*, *\(.*\)).*/\1_hwaccel/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
476 libavfilters_all="$(sed -n 's/^[^#]*FILTER.*(.*, *\(.*\),.*).*/\1_filter/p' libavfilter/allfilters.c | tr '[a-z]' '[A-Z]')"
477 EOF
478 cat <<'EOF' >> ffmpeg-avconfig
479
480 case "$1" in
481 --decoders)
482         echo $libavdecoders_all
483         ;;
484 --encoders)
485         echo $libavencoders_all
486         ;;
487 --parsers)
488         echo $libavparsers_all
489         ;;
490 --bsfs)
491         echo $libavbsfs_all
492         ;;
493 --demuxers)
494         echo $libavdemuxers_all
495         ;;
496 --muxers)
497         echo $libavmuxers_all
498         ;;
499 --protocols)
500         echo $libavprotocols_all
501         ;;
502 --hwaccels)
503         echo $libavhwaccels_all
504         ;;
505 --filters)
506         echo $libavfilters_all
507         ;;
508 *)
509         cat <<USAGE
510 Usage: $0 [OPTION]
511 Options:
512   --decoders
513   --encoders
514   --parsers
515   --bsfs
516   --demuxers
517   --muxers
518   --protocols
519   --hwaccels
520   --filters
521 USAGE
522         exit 1;;
523 esac
524
525 exit 0
526 EOF
527
528 %build
529 # notes:
530 # - it's not autoconf configure
531 # - --disable-debug, --disable-optimizations, tune=generic causes not to override our optflags
532 ./configure \
533         --arch=%{_target_base_arch} \
534         --prefix=%{_prefix} \
535         --libdir=%{_libdir} \
536         --shlibdir=%{_libdir} \
537         --mandir=%{_mandir} \
538         --extra-cflags="-D_GNU_SOURCE=1 %{rpmcppflags} %{rpmcflags}%{?with_decklink: -I/usr/include/decklink}" \
539         --extra-ldflags="%{rpmcflags} %{rpmldflags}" \
540         --cc="%{__cc}" \
541         --disable-debug \
542         --disable-optimizations \
543         --disable-stripping \
544         %{!?with_doc:--disable-doc} \
545         --enable-avfilter \
546         --enable-avresample \
547         %{?with_chromaprint:--enable-chromaprint} \
548         %{?with_cudasdk:--enable-cuda-sdk} \
549         %{?with_decklink:--enable-decklink} \
550         %{!?with_ffnvcodec:--disable-ffnvcodec} \
551         --enable-gnutls \
552         --enable-gpl \
553         --enable-version3 \
554         %{?with_frei0r:--enable-frei0r} \
555         %{?with_ladspa:--enable-ladspa} \
556         --enable-libaom \
557         --enable-libass \
558         --enable-libbluray \
559         %{?with_bs2b:--enable-libbs2b} \
560         %{?with_caca:--enable-libcaca} \
561         --enable-libcelt \
562         --enable-libcdio \
563         %{?with_codec2:--enable-libcodec2} \
564         %{?with_dav1d:--enable-libdav1d} \
565         --enable-libdc1394 \
566         %{?with_libdrm:--enable-libdrm} \
567         %{?with_flite:--enable-libflite} \
568         --enable-libfontconfig \
569         --enable-libfreetype \
570         %{?with_fribidi:--enable-libfribidi} \
571         %{?with_gme:--enable-libgme} \
572         --enable-libgsm \
573         --enable-libiec61883 \
574         %{?with_ilbc:--enable-libilbc} \
575         --enable-libjack \
576         %{?with_kvazaar:--enable-libkvazaar} \
577         %{?with_lensfun:--enable-liblensfun} \
578         %{?with_mfx:--enable-libmfx} \
579         --enable-libmodplug \
580         --enable-libmp3lame \
581         %{?with_libmysofa:--enable-libmysofa} \
582         --enable-libopencore-amrnb \
583         --enable-libopencore-amrwb \
584         %{?with_opencv:--enable-libopencv} \
585         %{?with_openh264:--enable-libopenh264} \
586         --enable-libopenjpeg \
587         %{?with_openmpt:--enable-libopenmpt} \
588         --enable-libopus \
589         %{?with_pulseaudio:--enable-libpulse} \
590         %{?with_librsvg:--enable-librsvg} \
591         --enable-librtmp \
592         %{?with_srt:--enable-libsrt} \
593         %{?with_libxml2:--enable-libxml2} \
594         %{?with_rubberband:--enable-librubberband} \
595         %{?with_shine:--enable-libshine} \
596         %{?with_smb:--enable-libsmbclient} \
597         %{?with_snappy:--enable-libsnappy} \
598         %{?with_soxr:--enable-libsoxr} \
599         --enable-libspeex \
600         %{?with_ssh:--enable-libssh} \
601         %{?with_tesseract:--enable-libtesseract} \
602         --enable-libtheora \
603         --enable-libtwolame \
604         --enable-libv4l2 \
605         %{?with_vidstab:--enable-libvidstab} \
606         %{?with_vmaf:--enable-libvmaf} \
607         --enable-libvo-amrwbenc \
608         --enable-libvorbis \
609         %{?with_vpx:--enable-libvpx} \
610         %{?with_wavpack:--enable-libwavpack} \
611         %{?with_webp:--enable-libwebp} \
612         %{?with_x264:--enable-libx264} \
613         %{?with_x265:--enable-libx265} \
614         --enable-libxavs \
615         --enable-libxcb \
616         --enable-libxvid \
617         %{?with_zimg:--enable-libzimg} \
618         %{?with_zmq:--enable-libzmq} \
619         %{?with_zvbi:--enable-libzvbi} \
620         %{?with_lv2:--enable-lv2} \
621         %{?with_omx:--enable-omx} \
622         %{?with_openal:--enable-openal} \
623         %{?with_opencl:--enable-opencl} \
624         %{?with_opengl:--enable-opengl} \
625         --enable-postproc \
626         --enable-pthreads \
627         %{?with_rkmpp:--enable-rkmpp} \
628         --enable-shared \
629         --enable-swscale \
630         %{!?with_va:--disable-vaapi} \
631         %{?with_vapoursynth:--enable-vapoursynth} \
632 %ifnarch %{ix86} %{x8664}
633         --disable-mmx \
634 %endif
635 %ifarch i386 i486
636         --disable-mmx \
637 %endif
638 %ifarch x32
639         --disable-asm \
640 %endif
641 %if %{with nonfree}
642         --enable-nonfree \
643         %{?with_fdk_aac:--enable-libfdk-aac} \
644         %{?with_npp:--enable-libnpp} \
645 %endif
646         --enable-runtime-cpudetect
647
648 %{__make} \
649         V=1
650
651 # CC_O to add -c to commandline. makefile should be patched
652 %{__make} tools/qt-faststart V=1 CC_O='-c -o $@'
653
654 %{?with_tests:%{__make} check V=1}
655
656 %install
657 rm -rf $RPM_BUILD_ROOT
658 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_sbindir},/etc/{sysconfig,rc.d/init.d}} \
659         $RPM_BUILD_ROOT%{_includedir}/ffmpeg
660
661 %{__make} install install-headers \
662         DESTDIR=$RPM_BUILD_ROOT \
663         V=1
664
665 # install nonstandard, non-public headers manually
666 cp -a config.h $RPM_BUILD_ROOT%{_includedir}/ffmpeg
667 for a in libavutil/*/{asm,bswap}.h; do
668         install -Dp $a $RPM_BUILD_ROOT%{_includedir}/$a
669 done
670 cp -a libavformat/riff.h $RPM_BUILD_ROOT%{_includedir}/libavformat
671
672 install -p tools/qt-faststart $RPM_BUILD_ROOT%{_bindir}
673
674 # install as ffmpeg-avconfig to avoid with possible programs looking for
675 # ffmpeg-config and expecting --libs output from it which is not implemented
676 # simple to do (by querying pkgconfig), but why?
677 install -p ffmpeg-avconfig $RPM_BUILD_ROOT%{_bindir}/ffmpeg-avconfig
678
679 # packaged as %doc in -doc
680 %if %{with doc}
681 %{__rm} $RPM_BUILD_ROOT%{_docdir}/ffmpeg/*.html
682 %endif
683
684 install -d $RPM_BUILD_ROOT%{_examplesdir}
685 %{__mv} $RPM_BUILD_ROOT%{_datadir}/ffmpeg/examples $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
686
687 %clean
688 rm -rf $RPM_BUILD_ROOT
689
690 %post   libs -p /sbin/ldconfig
691 %postun libs -p /sbin/ldconfig
692
693 %files
694 %defattr(644,root,root,755)
695 %doc CREDITS LICENSE.md MAINTAINERS README.md RELEASE_NOTES doc/APIchanges
696 %attr(755,root,root) %{_bindir}/ffmpeg
697 %attr(755,root,root) %{_bindir}/ffprobe
698 %attr(755,root,root) %{_bindir}/qt-faststart
699 %dir %{_datadir}/ffmpeg
700 %{_datadir}/ffmpeg/*.ffpreset
701 %{_datadir}/ffmpeg/ffprobe.xsd
702 %if %{with doc}
703 %{_mandir}/man1/ffmpeg.1*
704 %{_mandir}/man1/ffmpeg-all.1*
705 %{_mandir}/man1/ffmpeg-bitstream-filters.1*
706 %{_mandir}/man1/ffmpeg-codecs.1*
707 %{_mandir}/man1/ffmpeg-devices.1*
708 %{_mandir}/man1/ffmpeg-filters.1*
709 %{_mandir}/man1/ffmpeg-formats.1*
710 %{_mandir}/man1/ffmpeg-protocols.1*
711 %{_mandir}/man1/ffmpeg-resampler.1*
712 %{_mandir}/man1/ffmpeg-scaler.1*
713 %{_mandir}/man1/ffmpeg-utils.1*
714 %{_mandir}/man1/ffprobe.1*
715 %{_mandir}/man1/ffprobe-all.1*
716 %endif
717
718 %files libs
719 %defattr(644,root,root,755)
720 %attr(755,root,root) %{_libdir}/libavcodec.so.*.*.*
721 %attr(755,root,root) %ghost %{_libdir}/libavcodec.so.58
722 %attr(755,root,root) %{_libdir}/libavdevice.so.*.*.*
723 %attr(755,root,root) %ghost %{_libdir}/libavdevice.so.58
724 %attr(755,root,root) %{_libdir}/libavfilter.so.*.*.*
725 %attr(755,root,root) %ghost %{_libdir}/libavfilter.so.7
726 %attr(755,root,root) %{_libdir}/libavformat.so.*.*.*
727 %attr(755,root,root) %ghost %{_libdir}/libavformat.so.58
728 %attr(755,root,root) %{_libdir}/libavresample.so.*.*.*
729 %attr(755,root,root) %ghost %{_libdir}/libavresample.so.4
730 %attr(755,root,root) %{_libdir}/libavutil.so.*.*.*
731 %attr(755,root,root) %ghost %{_libdir}/libavutil.so.56
732 %attr(755,root,root) %{_libdir}/libpostproc.so.*.*.*
733 %attr(755,root,root) %ghost %{_libdir}/libpostproc.so.55
734 %attr(755,root,root) %{_libdir}/libswresample.so.*.*.*
735 %attr(755,root,root) %ghost %{_libdir}/libswresample.so.3
736 %attr(755,root,root) %{_libdir}/libswscale.so.*.*.*
737 %attr(755,root,root) %ghost %{_libdir}/libswscale.so.5
738
739 %files devel
740 %defattr(644,root,root,755)
741 %doc doc/optimization.txt
742 %attr(755,root,root) %{_bindir}/ffmpeg-avconfig
743 %attr(755,root,root) %{_libdir}/libavcodec.so
744 %attr(755,root,root) %{_libdir}/libavdevice.so
745 %attr(755,root,root) %{_libdir}/libavfilter.so
746 %attr(755,root,root) %{_libdir}/libavformat.so
747 %attr(755,root,root) %{_libdir}/libavresample.so
748 %attr(755,root,root) %{_libdir}/libavutil.so
749 %attr(755,root,root) %{_libdir}/libpostproc.so
750 %attr(755,root,root) %{_libdir}/libswresample.so
751 %attr(755,root,root) %{_libdir}/libswscale.so
752 %{_includedir}/ffmpeg
753 %{_includedir}/libavcodec
754 %{_includedir}/libavdevice
755 %{_includedir}/libavfilter
756 %{_includedir}/libavformat
757 %{_includedir}/libavresample
758 %{_includedir}/libavutil
759 %{_includedir}/libpostproc
760 %{_includedir}/libswresample
761 %{_includedir}/libswscale
762 %{_pkgconfigdir}/libavcodec.pc
763 %{_pkgconfigdir}/libavdevice.pc
764 %{_pkgconfigdir}/libavfilter.pc
765 %{_pkgconfigdir}/libavformat.pc
766 %{_pkgconfigdir}/libavresample.pc
767 %{_pkgconfigdir}/libavutil.pc
768 %{_pkgconfigdir}/libpostproc.pc
769 %{_pkgconfigdir}/libswresample.pc
770 %{_pkgconfigdir}/libswscale.pc
771 %if %{with doc}
772 %{_mandir}/man3/libavcodec.3*
773 %{_mandir}/man3/libavdevice.3*
774 %{_mandir}/man3/libavfilter.3*
775 %{_mandir}/man3/libavformat.3*
776 %{_mandir}/man3/libavutil.3*
777 %{_mandir}/man3/libswresample.3*
778 %{_mandir}/man3/libswscale.3*
779 %endif
780 %{_examplesdir}/%{name}-%{version}
781
782 %files static
783 %defattr(644,root,root,755)
784 %{_libdir}/libavcodec.a
785 %{_libdir}/libavdevice.a
786 %{_libdir}/libavfilter.a
787 %{_libdir}/libavformat.a
788 %{_libdir}/libavresample.a
789 %{_libdir}/libavutil.a
790 %{_libdir}/libpostproc.a
791 %{_libdir}/libswresample.a
792 %{_libdir}/libswscale.a
793
794 %files ffplay
795 %defattr(644,root,root,755)
796 %attr(755,root,root) %{_bindir}/ffplay
797 %if %{with doc}
798 %{_mandir}/man1/ffplay.1*
799 %{_mandir}/man1/ffplay-all.1*
800 %endif
801
802 %if %{with doc}
803 %files doc
804 %defattr(644,root,root,755)
805 %doc doc/*.html
806 %endif
This page took 0.08244 seconds and 2 git commands to generate.