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