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