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