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