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