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