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