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
10 %bcond_with bootstrap # disable features to able to build without installed ffmpeg
11 %bcond_with nonfree # non free options of package (currently: decklib, fdk_aac, openssl)
12 %bcond_without bs2b # BS2B audio filter support
13 %bcond_without caca # textual display using libcaca
14 %bcond_without chromaprint # audio fingerprinting with chromaprint
15 %bcond_with cuda # NVIDIA CUDA code [BR: cuda.h]
16 %bcond_with cuvid # NVIDIA CUVID support
17 %bcond_with decklink # Blackmagic DeskLink output support (requires nonfree)
18 %bcond_with fdk_aac # AAC de/encoding via libfdk_aac (requires nonfree)
19 %bcond_without flite # flite voice synthesis support
20 %bcond_without frei0r # frei0r video filtering
21 %bcond_without fribidi # fribidi support
22 %bcond_without gme # Game Music Emu support
23 %bcond_without ilbc # iLBC de/encoding via WebRTC libilbc
24 %bcond_without kvazaar # Kvazaar HEVC encoder support
25 %bcond_without ladspa # LADSPA audio filtering
26 %bcond_with mfx # MFX hardware acceleration support
27 %bcond_with npp # NVIDIA Performance Primitives-based code (requires nonfree) [BR: libnppc+libnppi, npp.h]
28 %bcond_with nvenc # NVIDIA NVENC support
29 %bcond_without omx # OpenMAX IL support
30 %bcond_without openal # OpenAL 1.1 capture support
31 %bcond_without opencl # OpenCL 1.2 code
32 %bcond_without opencv # OpenCV video filtering
33 %bcond_without opengl # OpenGL rendering support
34 %bcond_with openh264 # OpenH264 H.264 encoder
35 %bcond_without openmpt # OpenMPT module decoder
36 %bcond_without pulseaudio # PulseAudio input support
37 %bcond_without rubberband # rubberband filter
38 %bcond_without shine # shine fixed-point MP3 encoder
39 %bcond_without snappy # Snappy compression support (needed for hap encoding)
40 %bcond_without ssh # SFTP protocol support via libssh
41 %bcond_with smb # SMB support via libsmbclient
42 %bcond_without soxr # SoX Resampler support
43 %bcond_with tesseract # OCR filter based on Tesseract
44 %bcond_without x264 # H.264 x264 encoder
45 %bcond_without x265 # H.265/HEVC x265 encoder
46 %bcond_without va # VAAPI (Video Acceleration API)
47 %bcond_without vidstab # vid.stab video stabilization support
48 %bcond_without vpx # VP8, a high-quality video codec
49 %bcond_without wavpack # wavpack encoding support
50 %bcond_without webp # WebP encoding support
51 %bcond_without zimg # zscale filter based on z.lib
52 %bcond_without zmq # 0MQ message passing
53 %bcond_without zvbi # teletext via libzvbi
54 %bcond_without doc # don't build docs
55 %bcond_with tests # "make check" (some tests fail as of 2.5)
59 %undefine with_chromaprint
62 %ifnarch %{ix86} %{x8664} %{arm}
68 Summary: FFmpeg - a very fast video and audio converter
69 Summary(pl.UTF-8): FFmpeg - szybki konwerter audio/wideo
73 # LGPL or GPL, chosen at configure time (GPL version is more featured)
74 # (postprocessing, some filters, x264, x265, xavs, xvid, xcbgrab)
75 # using v3 allows Apache-licensed libs (opencore-amr, libvo-*enc)
76 License: GPL v3+ with LGPL v3+ parts
77 Group: Applications/Multimedia
78 Source0: http://ffmpeg.org/releases/%{name}-%{version}.tar.xz
79 # Source0-md5: d6c09c84e3d0d9ca8a51f481da660603
80 Source1: ffserver.init
81 Source2: ffserver.sysconfig
82 Source3: ffserver.conf
83 Patch0: %{name}-omx-libnames.patch
84 URL: http://www.ffmpeg.org/
85 %{?with_decklink:BuildRequires: Blackmagic_DeckLink_SDK >= 10.6.1}
86 %{?with_openal:BuildRequires: OpenAL-devel >= 1.1}
87 %{?with_opencl:BuildRequires: OpenCL-devel >= 1.2}
88 %{?with_opengl:BuildRequires: OpenGL-GLX-devel}
89 # libomxil-bellagio-devel or limoi-core-devel (just headers, library is dlopened at runtime)
90 %{?with_omx:BuildRequires: OpenMAX-IL-devel}
91 BuildRequires: SDL2-devel >= 2.0.1
92 BuildRequires: alsa-lib-devel
93 BuildRequires: bzip2-devel
94 BuildRequires: celt-devel >= 0.11.0
95 %{?with_fdk_aac:BuildRequires: fdk-aac-devel}
96 %{?with_flite:BuildRequires: flite-devel >= 1.4}
97 BuildRequires: fontconfig-devel
98 BuildRequires: freetype-devel
99 %{?with_frei0r:BuildRequires: frei0r-devel}
100 %{?with_fribidi:BuildRequires: fribidi-devel}
101 %{?with_gme:BuildRequires: game-music-emu-devel}
103 # require version with altivec support fixed
104 BuildRequires: gcc >= 5:3.3.2-3
106 BuildRequires: gmp-devel
107 BuildRequires: gnutls-devel
108 BuildRequires: jack-audio-connection-kit-devel
109 %{?with_kvazaar:BuildRequires: kvazaar-devel >= 0.8.1}
110 %{?with_ladspa:BuildRequires: ladspa-devel}
111 BuildRequires: lame-libs-devel >= 3.98.3
112 BuildRequires: libass-devel
113 BuildRequires: libavc1394-devel
114 %{?with_bs2b:BuildRequires: libbs2b-devel}
115 BuildRequires: libbluray-devel
116 %{?with_caca:BuildRequires: libcaca-devel}
117 BuildRequires: libcdio-paranoia-devel >= 0.90-2
118 %{?with_chromaprint:BuildRequires: libchromaprint-devel}
119 BuildRequires: libdc1394-devel >= 2
120 BuildRequires: libgsm-devel
121 BuildRequires: libiec61883-devel
122 BuildRequires: libmodplug-devel
123 BuildRequires: libnut-devel
124 %{?with_openmpt:BuildRequires: libopenmpt-devel >= 0.2.6557}
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
133 BuildRequires: libva-devel >= 1.0.3
134 BuildRequires: libva-drm-devel >= 1.0.3
135 BuildRequires: libva-x11-devel >= 1.0.3
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}
142 %{?with_x264:BuildRequires: libx264-devel >= 0.1.3-1.20111212_2245}
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}
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
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)
200 %define specflags -fno-strict-aliasing
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
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
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
223 Summary: ffmpeg libraries
224 Summary(pl.UTF-8): Biblioteki ffmpeg
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
231 %{?with_openmpt:Requires: libopenmpt >= 0.2.6557}
232 %{?with_vpx:Requires: libvpx >= 1.3.0}
233 %{?with_rubberband:Requires: rubberband-libs >= 1.8.1}
234 %{?with_zimg:Requires: zimg >= 2.3.0}
237 This package contains the ffmpeg shared libraries:
238 - the codec library (libavcodec). It supports most existing encoding
239 formats (MPEG, DivX, MPEG4, AC3, DV...),
240 - demuxer library (libavformat). It supports most existing file
241 formats (AVI, MPEG, OGG, Matroska, ASF...),
242 - video postprocessing library (libpostproc).
244 %description libs -l pl.UTF-8
245 Ten pakiet zawiera biblioteki współdzielone ffmpeg:
246 - bibliotekę kodeków (libavcodec); obsługuje większość istniejących
247 formatów kodowania (MPEG, DivX, MPEG4, AC3, DV...),
248 - bibliotekę demuksera (libavformat); obsługuje większość istniejących
249 formatów plików (AVI, MPEG, OGG, Matroska, ASF...),
250 - bibliotekę postprocessingu (libpostproc).
253 Summary: ffmpeg header files
254 Summary(pl.UTF-8): Pliki nagłówkowe ffmpeg
255 Group: Development/Libraries
256 Requires: %{name}-libs = %{version}-%{release}
257 # Libs.private from *.pc (unreasonably they are all the same)
258 %{?with_opencl:Requires: OpenCL-devel >= 1.2}
259 %{?with_opengl:Requires: OpenGL-devel}
260 Requires: SDL2-devel >= 2.0.1
261 Requires: alsa-lib-devel
262 Requires: bzip2-devel
263 Requires: celt-devel >= 0.11.0
264 %{?with_fdk_aac:Requires: fdk-aac-devel}
265 %{?with_flite:Requires: flite-devel >= 1.4}
266 Requires: fontconfig-devel
267 Requires: freetype-devel
268 %{?with_fribidi:Requires: fribidi-devel}
269 %{?with_gme:Requires: game-music-emu-devel}
270 Requires: jack-audio-connection-kit-devel
271 %{?with_kvazaar:Requires: kvazaar-devel >= 0.7}
272 Requires: lame-libs-devel >= 3.98.3
273 Requires: libass-devel
274 Requires: libavc1394-devel
275 Requires: libbluray-devel
276 %{?with_bs2b:Requires: libbs2b-devel}
277 %{?with_caca:Requires: libcaca-devel}
278 Requires: libcdio-paranoia-devel >= 0.90-2
279 %{?with_chromaprint:Requires: libchromaprint-devel}
280 Requires: libdc1394-devel >= 2
281 Requires: libgsm-devel
282 Requires: libiec61883-devel
283 Requires: libmodplug-devel
284 Requires: libnut-devel
285 %{?with_openmpt:Requires: libopenmpt-devel >= 0.2.6557}
286 Requires: libraw1394-devel >= 2
287 Requires: librtmp-devel
288 %{?with_smb:Requires: libsmbclient-devel}
289 Requires: libtheora-devel >= 1.0-0.beta3
290 %{?with_va:Requires: libva-devel >= 1.0.3}
291 Requires: libvorbis-devel
292 %{?with_vpx:Requires: libvpx-devel >= 1.3.0}
293 %{?with_webp:Requires: libwebp-devel >= 0.4.0}
294 %{?with_x264:Requires: libx264-devel >= 0.1.3-1.20110625_2245}
295 %{?with_x265:Requires: libx265-devel >= 1.3-0.20150610.1}
296 %{?with_mfx:Requires: mfx_dispatch-devel}
297 Requires: opencore-amr-devel
298 %{?with_opencv:Requires: opencv-devel}
299 %{?with_openh264:Requires: openh264-devel >= 1.3}
300 Requires: openjpeg2-devel >= 2.1
301 %{?with_rubberband:Requires: rubberband-devel >= 1.8.1}
302 Requires: schroedinger-devel
303 %{?with_shine:Requires: shine-devel >= 3.0.0}
304 %{?with_snappy:Requires: snappy-devel}
305 %{?with_soxr:Requires: soxr-devel}
306 Requires: speex-devel >= 1:1.2-rc1
307 %{?with_tesseract:Requires: tesseract-devel}
308 Requires: twolame-devel
309 %{?with_vidstab:Requires: vid.stab-devel >= 0.98}
310 Requires: vo-amrwbenc-devel
311 %{?with_wavpack:Requires: wavpack-devel}
312 %{?with_ilbc:Requires: webrtc-libilbc-devel}
314 Requires: xorg-lib-libXext-devel
315 Requires: xorg-lib-libXfixes-devel
316 Requires: xvid-devel >= 1:1.1.0
317 %{?with_zmq:Requires: zeromq-devel}
318 %{?with_zimg:Requires: zimg-devel >= 2.3.0}
320 Obsoletes: libpostproc-devel
325 %description devel -l pl.UTF-8
326 Pliki nagłówkowe ffmpeg.
329 Summary: ffmpeg static libraries
330 Summary(pl.UTF-8): Statyczne biblioteki ffmpeg
331 Group: Development/Libraries
332 Requires: %{name}-devel = %{version}-%{release}
335 ffmpeg static libraries (libavcodec and libavformat).
337 %description static -l pl.UTF-8
338 Statyczne biblioteki ffmpeg (libavcodec i libavformat).
341 Summary: FFplay - SDL-based media player
342 Summary(pl.UTF-8): FFplay - odtwarzacz mediów oparty na SDL
343 Group: Applications/Multimedia
344 Requires: %{name}-libs = %{version}-%{release}
347 FFplay is a very simple and portable media player using the FFmpeg
348 libraries and the SDL library. It is mostly used as a test bench for
349 the various APIs of FFmpeg.
351 %description ffplay -l pl.UTF-8
352 FFplay to bardzo prosty i przenośny odtwarzacz mediów używający
353 bibliotek FFmpeg oraz biblioteki SDL. Jest używany głównie do
354 testowania różnych API FFmpeg.
357 Summary: FFserver video server
358 Summary(pl.UTF-8): FFserver - serwer strumieni obrazu
360 Requires(post,preun): /sbin/chkconfig
361 Requires: %{name}-libs = %{version}-%{release}
362 Requires: rc-scripts >= 0.4.0.10
364 %description ffserver
365 FFserver is a streaming server for both audio and video. It supports
366 several live feeds, streaming from files and time shifting on live
367 feeds (you can seek to positions in the past on each live feed,
368 provided you specify a big enough feed storage in ffserver.conf).
370 %description ffserver -l pl.UTF-8
371 FFserver to serwer strumieni dla dźwięku i obrazu. Obsługuje kilka
372 źródeł na żywo, przekazywanie strumieni z plików i przesuwanie w
373 czasie dla źródeł na żywo (można przeskakiwać na położenia w
374 przeszłości dla każdego źródła na żywo, pod warunkiem odpowiednio
375 dużej przestrzeni na dane skonfigurowanej w ffserver.conf).
378 Summary: FFmpeg documentation in HTML format
379 Summary(pl.UTF-8): Dokumentacja pakietu FFmpeg w formacie HTML
381 %if "%{_rpmversion}" >= "5"
386 FFmpeg documentation in HTML format.
388 %description doc -l pl.UTF-8
389 Dokumentacja pakietu FFmpeg w formacie HTML.
395 # package the grep result for mplayer, the result formatted as ./mplayer/configure
396 cat <<EOF > ffmpeg-avconfig
398 libavdecoders_all="$(sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
399 libavencoders_all="$(sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
400 libavparsers_all="$(sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
401 libavbsfs_all="$(sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
402 libavdemuxers_all="$(sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')"
403 libavmuxers_all="$(sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')"
404 libavprotocols_all="$(sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')"
405 libavhwaccels_all="$(sed -n 's/^[^#]*HWACCEL.*(.*, *\(.*\)).*/\1_hwaccel/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
406 libavfilters_all="$(sed -n 's/^[^#]*FILTER.*(.*, *\(.*\),.*).*/\1_filter/p' libavfilter/allfilters.c | tr '[a-z]' '[A-Z]')"
408 cat <<'EOF' >> ffmpeg-avconfig
412 echo $libavdecoders_all
415 echo $libavencoders_all
418 echo $libavparsers_all
424 echo $libavdemuxers_all
427 echo $libavmuxers_all
430 echo $libavprotocols_all
433 echo $libavhwaccels_all
436 echo $libavfilters_all
460 # - it's not autoconf configure
461 # - --disable-debug, --disable-optimizations, tune=generic causes not to override our optflags
463 --arch=%{_target_base_arch} \
464 --prefix=%{_prefix} \
465 --libdir=%{_libdir} \
466 --shlibdir=%{_libdir} \
467 --mandir=%{_mandir} \
468 --extra-cflags="-D_GNU_SOURCE=1 %{rpmcppflags} %{rpmcflags}%{?with_decklink: -I/usr/include/decklink}" \
469 --extra-ldflags="%{rpmcflags} %{rpmldflags}" \
472 --disable-optimizations \
473 --disable-stripping \
474 %{!?with_doc:--disable-doc} \
476 --enable-avresample \
477 %{?with_chromaprint:--enable-chromaprint} \
478 %{!?with_cuda:--disable-cuda} \
479 %{!?with_cuvid:--disable-cuvid} \
480 %{?with_decklink:--enable-decklink} \
484 %{?with_frei0r:--enable-frei0r} \
485 %{?with_ladspa:--enable-ladspa} \
488 %{?with_bs2b:--enable-libbs2b} \
489 %{?with_caca:--enable-libcaca} \
493 %{?with_flite:--enable-libflite} \
494 --enable-libfontconfig \
495 --enable-libfreetype \
496 %{?with_fribidi:--enable-libfribidi} \
497 %{?with_gme:--enable-libgme} \
499 --enable-libiec61883 \
500 %{?with_ilbc:--enable-libilbc} \
501 %{?with_kvazaar:--enable-libkvazaar} \
502 %{?with_mfx:--enable-libmfx} \
503 --enable-libmodplug \
504 --enable-libmp3lame \
506 --enable-libopencore-amrnb \
507 --enable-libopencore-amrwb \
508 %{?with_opencv:--enable-libopencv} \
509 %{?with_openh264:--enable-libopenh264} \
510 --enable-libopenjpeg \
511 %{?with_openmpt:--enable-libopenmpt} \
513 %{?with_pulseaudio:--enable-libpulse} \
515 %{?with_rubberband:--enable-librubberband} \
516 --enable-libschroedinger \
517 %{?with_shine:--enable-libshine} \
518 %{?with_smb:--enable-libsmbclient} \
519 %{?with_snappy:--enable-libsnappy} \
520 %{?with_soxr:--enable-libsoxr} \
522 %{?with_ssh:--enable-libssh} \
523 %{?with_tesseract:--enable-libtesseract} \
525 --enable-libtwolame \
527 %{?with_vidstab:--enable-libvidstab} \
528 --enable-libvo-amrwbenc \
530 %{?with_vpx:--enable-libvpx} \
531 %{?with_wavpack:--enable-libwavpack} \
532 %{?with_webp:--enable-libwebp} \
533 %{?with_x264:--enable-libx264} \
534 %{?with_x265:--enable-libx265} \
537 %{?with_zimg:--enable-libzimg} \
538 %{?with_zmq:--enable-libzmq} \
539 %{?with_zvbi:--enable-libzvbi} \
540 %{!?with_nvenc:--disable-nvenc} \
541 %{?with_omx:--enable-omx} \
542 %{?with_openal:--enable-openal} \
543 %{?with_opencl:--enable-opencl} \
544 %{?with_opengl:--enable-opengl} \
549 %{!?with_va:--disable-vaapi} \
551 %ifnarch %{ix86} %{x8664}
562 %{?with_fdk_aac:--enable-libfdk-aac} \
563 %{?with_npp:--enable-libnpp} \
565 --enable-runtime-cpudetect
570 # CC_O to add -c to commandline. makefile should be patched
571 %{__make} tools/qt-faststart V=1 CC_O='-c -o $@'
573 %{?with_tests:%{__make} check V=1}
576 rm -rf $RPM_BUILD_ROOT
577 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_sbindir},/etc/{sysconfig,rc.d/init.d}} \
578 $RPM_BUILD_ROOT%{_includedir}/ffmpeg \
579 $RPM_BUILD_ROOT/var/{cache,log}/ffserver
581 %{__make} install install-headers \
582 DESTDIR=$RPM_BUILD_ROOT \
585 # install nonstandard, non-public headers manually
586 cp -a config.h $RPM_BUILD_ROOT%{_includedir}/ffmpeg
587 for a in libavutil/*/{asm,bswap}.h; do
588 install -Dp $a $RPM_BUILD_ROOT%{_includedir}/$a
590 cp -a libavformat/riff.h $RPM_BUILD_ROOT%{_includedir}/libavformat
591 # for lim-omx ffmpeg components
592 cp -a libavcodec/audioconvert.h $RPM_BUILD_ROOT%{_includedir}/libavcodec
594 install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/ffserver
595 cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/ffserver
596 cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/ffserver.conf
597 mv -f $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/ffserver
598 install -p tools/qt-faststart $RPM_BUILD_ROOT%{_bindir}
600 # install as ffmpeg-avconfig to avoid with possible programs looking for
601 # ffmpeg-config and expecting --libs output from it which is not implemented
602 # simple to do (by querying pkgconfig), but why?
603 install -p ffmpeg-avconfig $RPM_BUILD_ROOT%{_bindir}/ffmpeg-avconfig
605 # packaged as %doc in -doc
607 %{__rm} $RPM_BUILD_ROOT%{_docdir}/ffmpeg/*.html
610 install -d $RPM_BUILD_ROOT%{_examplesdir}
611 %{__mv} $RPM_BUILD_ROOT%{_datadir}/ffmpeg/examples $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
614 rm -rf $RPM_BUILD_ROOT
616 %post libs -p /sbin/ldconfig
617 %postun libs -p /sbin/ldconfig
620 %groupadd -g 167 ffserver
621 %useradd -g ffserver -u 167 ffserver
624 /sbin/chkconfig --add ffserver
625 %service ffserver restart
628 if [ "$1" = 0 ]; then
629 %service ffserver stop
630 /sbin/chkconfig --del ffserver
634 if [ "$1" = 0 ]; then
636 %groupremove ffserver
640 %defattr(644,root,root,755)
641 %doc CREDITS LICENSE.md MAINTAINERS README.md RELEASE_NOTES doc/APIchanges
642 %attr(755,root,root) %{_bindir}/ffmpeg
643 %attr(755,root,root) %{_bindir}/ffprobe
644 %attr(755,root,root) %{_bindir}/qt-faststart
645 %dir %{_datadir}/ffmpeg
646 %{_datadir}/ffmpeg/*.ffpreset
647 %{_datadir}/ffmpeg/ffprobe.xsd
649 %{_mandir}/man1/ffmpeg.1*
650 %{_mandir}/man1/ffmpeg-all.1*
651 %{_mandir}/man1/ffmpeg-bitstream-filters.1*
652 %{_mandir}/man1/ffmpeg-codecs.1*
653 %{_mandir}/man1/ffmpeg-devices.1*
654 %{_mandir}/man1/ffmpeg-filters.1*
655 %{_mandir}/man1/ffmpeg-formats.1*
656 %{_mandir}/man1/ffmpeg-protocols.1*
657 %{_mandir}/man1/ffmpeg-resampler.1*
658 %{_mandir}/man1/ffmpeg-scaler.1*
659 %{_mandir}/man1/ffmpeg-utils.1*
660 %{_mandir}/man1/ffprobe.1*
661 %{_mandir}/man1/ffprobe-all.1*
665 %defattr(644,root,root,755)
666 %attr(755,root,root) %{_libdir}/libavcodec.so.*.*.*
667 %attr(755,root,root) %ghost %{_libdir}/libavcodec.so.57
668 %attr(755,root,root) %{_libdir}/libavdevice.so.*.*.*
669 %attr(755,root,root) %ghost %{_libdir}/libavdevice.so.57
670 %attr(755,root,root) %{_libdir}/libavfilter.so.*.*.*
671 %attr(755,root,root) %ghost %{_libdir}/libavfilter.so.6
672 %attr(755,root,root) %{_libdir}/libavformat.so.*.*.*
673 %attr(755,root,root) %ghost %{_libdir}/libavformat.so.57
674 %attr(755,root,root) %{_libdir}/libavresample.so.*.*.*
675 %attr(755,root,root) %ghost %{_libdir}/libavresample.so.3
676 %attr(755,root,root) %{_libdir}/libavutil.so.*.*.*
677 %attr(755,root,root) %ghost %{_libdir}/libavutil.so.55
678 %attr(755,root,root) %{_libdir}/libpostproc.so.*.*.*
679 %attr(755,root,root) %ghost %{_libdir}/libpostproc.so.54
680 %attr(755,root,root) %{_libdir}/libswresample.so.*.*.*
681 %attr(755,root,root) %ghost %{_libdir}/libswresample.so.2
682 %attr(755,root,root) %{_libdir}/libswscale.so.*.*.*
683 %attr(755,root,root) %ghost %{_libdir}/libswscale.so.4
686 %defattr(644,root,root,755)
687 %doc doc/optimization.txt
688 %attr(755,root,root) %{_bindir}/ffmpeg-avconfig
689 %attr(755,root,root) %{_libdir}/libavcodec.so
690 %attr(755,root,root) %{_libdir}/libavdevice.so
691 %attr(755,root,root) %{_libdir}/libavfilter.so
692 %attr(755,root,root) %{_libdir}/libavformat.so
693 %attr(755,root,root) %{_libdir}/libavresample.so
694 %attr(755,root,root) %{_libdir}/libavutil.so
695 %attr(755,root,root) %{_libdir}/libpostproc.so
696 %attr(755,root,root) %{_libdir}/libswresample.so
697 %attr(755,root,root) %{_libdir}/libswscale.so
698 %{_includedir}/ffmpeg
699 %{_includedir}/libavcodec
700 %{_includedir}/libavdevice
701 %{_includedir}/libavfilter
702 %{_includedir}/libavformat
703 %{_includedir}/libavresample
704 %{_includedir}/libavutil
705 %{_includedir}/libpostproc
706 %{_includedir}/libswresample
707 %{_includedir}/libswscale
708 %{_pkgconfigdir}/libavcodec.pc
709 %{_pkgconfigdir}/libavdevice.pc
710 %{_pkgconfigdir}/libavfilter.pc
711 %{_pkgconfigdir}/libavformat.pc
712 %{_pkgconfigdir}/libavresample.pc
713 %{_pkgconfigdir}/libavutil.pc
714 %{_pkgconfigdir}/libpostproc.pc
715 %{_pkgconfigdir}/libswresample.pc
716 %{_pkgconfigdir}/libswscale.pc
718 %{_mandir}/man3/libavcodec.3*
719 %{_mandir}/man3/libavdevice.3*
720 %{_mandir}/man3/libavfilter.3*
721 %{_mandir}/man3/libavformat.3*
722 %{_mandir}/man3/libavutil.3*
723 %{_mandir}/man3/libswresample.3*
724 %{_mandir}/man3/libswscale.3*
726 %{_examplesdir}/%{name}-%{version}
729 %defattr(644,root,root,755)
730 %{_libdir}/libavcodec.a
731 %{_libdir}/libavdevice.a
732 %{_libdir}/libavfilter.a
733 %{_libdir}/libavformat.a
734 %{_libdir}/libavresample.a
735 %{_libdir}/libavutil.a
736 %{_libdir}/libpostproc.a
737 %{_libdir}/libswresample.a
738 %{_libdir}/libswscale.a
741 %defattr(644,root,root,755)
742 %attr(755,root,root) %{_bindir}/ffplay
744 %{_mandir}/man1/ffplay.1*
745 %{_mandir}/man1/ffplay-all.1*
749 %defattr(644,root,root,755)
750 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ffserver.conf
751 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/ffserver
752 %attr(755,root,root) %{_sbindir}/ffserver
753 %attr(754,root,root) /etc/rc.d/init.d/ffserver
755 %{_mandir}/man1/ffserver.1*
756 %{_mandir}/man1/ffserver-all.1*
758 %dir %attr(770,root,ffserver) /var/cache/ffserver
759 %dir %attr(770,root,ffserver) /var/log/ffserver
763 %defattr(644,root,root,755)