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