]> git.pld-linux.org Git - packages/ffmpeg.git/blame - ffmpeg.spec
- up to 2.8.5; fixes CVE-2016-1897,CVE-2016-1898
[packages/ffmpeg.git] / ffmpeg.spec
CommitLineData
197f4211 1#
5663f846 2# How to deal with ffmpeg/opencv checken-egg problem:
29c7bf5c 3# 1. make-request -r --with bootstrap ffmpeg.spec
192f9f57 4# 2. make-request -r opencv.spec
5# 3. bump release of ffmpeg.spec
6# 4. make-request -r ffmpeg.spec
7#
2b3b2117 8# Conditional build:
29c7bf5c 9%bcond_with bootstrap # disable features to able to build without installed ffmpeg
c8f42fb1 10%bcond_with nonfree # non free options of package (currently: aacplus, faac, fdk_aac, nvenc)
2e585b44 11%bcond_with aacplus # AAC+ encoding via libaacplus (requires nonfree)
5f3dc7d9 12%bcond_with fdk_aac # AAC de/encoding via libfdk_aac (requires nonfree)
c8f42fb1 13%bcond_with faac # faac (requires nonfree)
4474c07d 14%bcond_without bs2b # BS2B audio filter support
1c1d1368 15%bcond_without caca # textual display using libcaca
fecf9f23 16%bcond_without dcadec # DCA decoding via libdcadec
f6f5022a 17%bcond_without decklink # Blackmagic DeskLink output support
a584ded4
JB
18%bcond_without flite # flite voice synthesis support
19%bcond_without frei0r # frei0r video filtering
4474c07d 20%bcond_without fribidi # fribidi support
22745365 21%bcond_without gme # Game Music Emu support
cbeed0a5 22%bcond_without ilbc # iLBC de/encoding via WebRTC libilbc
7160e157 23%bcond_without kvazaar # Kvazaar HEVC encoder support
5f3dc7d9 24%bcond_without ladspa # LADSPA audio filtering
0258feb8
JB
25%bcond_with mfx # MFX hardware acceleration support
26%bcond_with nvenc # NVIDIA NVENC support (requires nonfree)
a584ded4 27%bcond_without openal # OpenAL 1.1 capture support
6513d7e3 28%bcond_without opencl # OpenCL 1.2 code
a584ded4 29%bcond_without opencv # OpenCV video filtering
0258feb8
JB
30%bcond_without opengl # OpenGL rendering support
31%bcond_with openh264 # OpenH264 H.264 encoder
a584ded4 32%bcond_without pulseaudio # PulseAudio input support
22745365 33%bcond_without quvi # quvi input support
f56b6dce 34%bcond_without shine # shine fixed-point MP3 encoder
7160e157 35%bcond_without snappy # Snappy compression support (needed for hap encoding)
0258feb8 36%bcond_without ssh # SFTP protocol support via libssh
4474c07d 37%bcond_with smb # SMB support via libsmbclient
05408820 38%bcond_without soxr # SoX Resampler support
8b9d2787 39%bcond_without x264 # H.264 x264 encoder
90ab353a 40%bcond_without x265 # H.265/HEVC x265 encoder
a584ded4 41%bcond_without utvideo # Ut Video decoder
1ef27ea1 42%bcond_without va # VAAPI (Video Acceleration API)
f56b6dce 43%bcond_without vidstab # vid.stab video stabilization support
1ef27ea1 44%bcond_without vpx # VP8, a high-quality video codec
22745365 45%bcond_without wavpack # wavpack encoding support
8b9d2787 46%bcond_without webp # WebP encoding support
6a6b11be 47%bcond_without zmq # 0MQ message passing
5f3dc7d9 48%bcond_without zvbi # teletext via libzvbi
1ef27ea1 49%bcond_without doc # don't build docs
560d82ce 50%bcond_with tests # "make check" (some tests fail as of 2.5)
314ef0df 51
29c7bf5c
ER
52%if %{with bootstrap}
53%undefine with_opencv
54%endif
55
a6755e78
JB
56%ifnarch %{ix86} %{x8664} arm
57%undefine with_x265
58%endif
59%ifarch i386 i486
60%undefine with_x265
61%endif
cbdd2688
JB
62Summary: FFmpeg - a very fast video and audio converter
63Summary(pl.UTF-8): FFmpeg - szybki konwerter audio/wideo
9fc4ad22 64Name: ffmpeg
9f6d2a74
AM
65Version: 2.8.5
66Release: 1
9cf4d8a4 67# LGPL or GPL, chosen at configure time (GPL version is more featured)
8b9d2787 68# (postprocessing, some filters, x264, x265, xavs, xvid, x11grab)
38cefaee 69# using v3 allows Apache-licensed libs (opencore-amr, libvo-*enc)
0b43f655 70License: GPL v3+ with LGPL v3+ parts
fde29260 71Group: Applications/Multimedia
ad057c0a 72Source0: http://ffmpeg.org/releases/%{name}-%{version}.tar.xz
9f6d2a74 73# Source0-md5: b34164bd181f4f81c21da3dd131d919d
fde29260
ER
74Source1: ffserver.init
75Source2: ffserver.sysconfig
38cf6de3 76Source3: ffserver.conf
7160e157 77Patch0: %{name}-kvazaar.patch
16a4fb4a 78Patch1: %{name}-utvideo.patch
85f7cea1 79URL: http://www.ffmpeg.org/
f6f5022a 80%{?with_decklink:BuildRequires: Blackmagic_DeckLink_SDK}
28673856 81%{?with_openal:BuildRequires: OpenAL-devel >= 1.1}
6a6b11be 82%{?with_opencl:BuildRequires: OpenCL-devel >= 1.2}
8b9d2787 83%{?with_opengl:BuildRequires: OpenGL-GLX-devel}
3dcb8642 84BuildRequires: SDL-devel >= 1.2.1
cbdd2688 85BuildRequires: alsa-lib-devel
38cefaee 86BuildRequires: bzip2-devel
9f9ba8ac 87BuildRequires: celt-devel >= 0.11.0
fecf9f23 88%{?with_dcadec:BuildRequires: dcadec-devel}
c8f42fb1 89%{?with_faac:BuildRequires: faac-devel}
004e5628 90%{?with_fdk_aac:BuildRequires: fdk-aac-devel}
a584ded4 91%{?with_flite:BuildRequires: flite-devel >= 1.4}
3dcb8642 92BuildRequires: fontconfig-devel
0aad4bf2 93BuildRequires: freetype-devel
d7a39558 94%{?with_frei0r:BuildRequires: frei0r-devel}
4474c07d 95%{?with_fribidi:BuildRequires: fribidi-devel}
22745365 96%{?with_gme:BuildRequires: game-music-emu-devel}
4bee03f0
JB
97%ifarch ppc
98# require version with altivec support fixed
99BuildRequires: gcc >= 5:3.3.2-3
100%endif
fecf9f23 101BuildRequires: gmp-devel
d5aef92e 102BuildRequires: gnutls-devel
cbdd2688 103BuildRequires: jack-audio-connection-kit-devel
7160e157 104%{?with_kvazaar:BuildRequires: kvazaar-devel >= 0.7}
5f3dc7d9 105%{?with_ladspa:BuildRequires: ladspa-devel}
cbdd2688 106BuildRequires: lame-libs-devel >= 3.98.3
2e585b44 107%{?with_aacplus:BuildRequires: libaacplus-devel >= 2.0.0}
d5aef92e 108BuildRequires: libass-devel
1c1d1368 109BuildRequires: libavc1394-devel
4474c07d 110%{?with_bs2b:BuildRequires: libbs2b-devel}
3dcb8642 111BuildRequires: libbluray-devel
1c1d1368 112%{?with_caca:BuildRequires: libcaca-devel}
a09e741c 113BuildRequires: libcdio-paranoia-devel >= 0.90-2
9c4296c2 114BuildRequires: libdc1394-devel >= 2
f1669449 115BuildRequires: libgsm-devel
1c1d1368 116BuildRequires: libiec61883-devel
d5aef92e 117BuildRequires: libmodplug-devel
4a927f9d 118BuildRequires: libnut-devel
16a4fb4a 119%{?with_quvi:BuildRequires: libquvi-0.4-devel}
7571bfa0 120BuildRequires: libraw1394-devel >= 2
cbdd2688 121BuildRequires: librtmp-devel
5f3dc7d9 122%{?with_ssh:BuildRequires: libssh-devel}
4474c07d 123%{?with_smb:BuildRequires: libsmbclient-devel}
9042663c 124BuildRequires: libtheora-devel >= 1.0-0.beta3
4814ac84 125BuildRequires: libtool >= 2:1.4d-3
daf9a670 126BuildRequires: libv4l-devel
64f8f109 127%{?with_va:BuildRequires: libva-devel >= 1.0.3}
9c4296c2 128BuildRequires: libvdpau-devel >= 0.2
e380e18a 129BuildRequires: libvorbis-devel
1be5865c 130%{?with_vpx:BuildRequires: libvpx-devel >= 1.3.0}
fecf9f23 131%{?with_webp:BuildRequires: libwebp-devel >= 0.4.0}
660918c5
AM
132# X264_BUILD >= 118
133%{?with_x264:BuildRequires: libx264-devel >= 0.1.3-1.20111212_2245}
fecf9f23 134# X265_BUILD >= 57
7d10e69e 135%{?with_x265:BuildRequires: libx265-devel >= 1.3-0.20150610.1}
560d82ce 136# libxcb xcb-shm xcb-xfixes xcb-shape
0258feb8
JB
137BuildRequires: libxcb-devel >= 1.4
138%{?with_mfx:BuildRequires: mfx_dispatch-devel}
e1fe03f7 139%ifarch %{ix86}
140%ifnarch i386 i486
76243dbd
JB
141BuildRequires: nasm
142%endif
e1fe03f7 143%endif
0258feb8
JB
144# which package?
145#%{?with_nvenc:BuildRequires: NVIDIA-NVENC-API}
1c1d1368
JB
146BuildRequires: opencore-amr-devel
147%{?with_opencv:BuildRequires: opencv-devel}
62da4e00 148%{?with_openh264:BuildRequires: openh264-devel >= 1.3}
1c1d1368
JB
149BuildRequires: openjpeg-devel >= 1.5
150BuildRequires: opus-devel
136f0f45 151BuildRequires: perl-Encode
1463656a 152BuildRequires: perl-tools-pod
ef3c0513 153BuildRequires: pkgconfig
1c1d1368 154%{?with_pulseaudio:BuildRequires: pulseaudio-devel}
db8052c8 155BuildRequires: rpmbuild(macros) >= 1.470
126fb805 156BuildRequires: schroedinger-devel
4a11c99e 157%{?with_shine:BuildRequires: shine-devel >= 3.0.0}
7160e157 158%{?with_snappy:BuildRequires: snappy-devel}
05408820 159%{?with_soxr:BuildRequires: soxr-devel}
1c1d1368 160BuildRequires: speex-devel >= 1:1.2-rc1
64f8f109
ER
161%{?with_doc:BuildRequires: tetex}
162%{?with_doc:BuildRequires: texi2html}
163%{?with_doc:BuildRequires: texinfo}
1c1d1368 164BuildRequires: twolame-devel
ad057c0a 165%{?with_utvideo:BuildRequires: utvideo-devel >= 15.3}
9befe454 166%{?with_vidstab:BuildRequires: vid.stab-devel >= 0.98}
5dc039cb
JB
167BuildRequires: vo-aacenc-devel
168BuildRequires: vo-amrwbenc-devel
22745365 169%{?with_wavpack:BuildRequires: wavpack-devel}
cbeed0a5 170%{?with_ilbc:BuildRequires: webrtc-libilbc-devel}
5dc039cb 171BuildRequires: xavs-devel
28673856 172BuildRequires: xorg-lib-libX11-devel
cbdd2688
JB
173BuildRequires: xorg-lib-libXext-devel
174BuildRequires: xorg-lib-libXfixes-devel
46f2a56b 175BuildRequires: xvid-devel >= 1:1.1.0
cbeed0a5 176BuildRequires: yasm
6a6b11be 177%{?with_zmq:BuildRequires: zeromq-devel}
5f3dc7d9 178%{?with_zvbi:BuildRequires: zvbi-devel}
33a1c0f3 179BuildRequires: zlib-devel
57ebb8ad 180%{?with_autoreqdep:BuildConflicts: libpostproc}
9c4296c2
JB
181# overflows maximum hash table size
182BuildConflicts: pdksh < 5.2.14-57
54ec280e 183Requires: %{name}-libs = %{version}-%{release}
ad057c0a 184%{?with_utvideo:Requires: utvideo >= 15.3}
92a3edff 185%{?with_ilbc:Requires: webrtc-libilbc}
839e806f 186Requires: xvid >= 1:1.1.0
af49d6ab 187Obsoletes: libpostproc
539b540f 188BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
9fc4ad22 189
2a60eebe
JB
190%define _noautoreqdep libGL.so.1 libGLU.so.1
191
c01d7857
PS
192%define specflags -fno-strict-aliasing
193
194# -fomit-frame-pointer is always needed on x86 due to lack of registers (-fPIC takes one)
195%define specflags_ia32 -fomit-frame-pointer
196# -mmmx is needed to enable <mmintrin.h> code.
197%define specflags_i586 -mmmx
198%define specflags_i686 -mmmx
1162803a 199%define specflags_ppc -fPIC
c01d7857 200
9fc4ad22 201%description
85f7cea1
ER
202FFmpeg is a complete solution to record, convert and stream audio and
203video. It is a command line tool to convert one video file format to
204another. It also supports grabbing and encoding in real time from a TV
205card.
9fc4ad22 206
cdb7b42e 207%description -l pl.UTF-8
cbdd2688
JB
208FFmpeg to kompletne rozwiązanie nagrywania, konwersji i transmisji
209strumieni dźwięku i obrazu. Jest to działające z linii poleceń
210narzędzie do konwersji obrazu z jednego formatu do innego. Obsługuje
211także przechwytywanie i kodowanie w czasie rzeczywistym z karty
212telewizyjnej.
9fc4ad22 213
54ec280e
PG
214%package libs
215Summary: ffmpeg libraries
adcc0f76 216Summary(pl.UTF-8): Biblioteki ffmpeg
1be5865c 217Group: Libraries
143c6eec
JB
218%if "%(rpm -q --qf '%{V}' gnutls-devel)" >= "3.0.20"
219# uses gnutls_certificate_set_x509_system_trust if >= 3.0.20
f9cce0c9 220Requires: gnutls-libs >= 3.0.20
143c6eec 221%endif
1be5865c 222%{?with_vpx:Requires: libvpx >= 1.3.0}
54ec280e
PG
223
224%description libs
cbdd2688
JB
225This package contains the ffmpeg shared libraries:
226- the codec library (libavcodec). It supports most existing encoding
227 formats (MPEG, DivX, MPEG4, AC3, DV...),
228- demuxer library (libavformat). It supports most existing file
229 formats (AVI, MPEG, OGG, Matroska, ASF...),
230- video postprocessing library (libpostproc).
54ec280e 231
cdb7b42e 232%description libs -l pl.UTF-8
cbdd2688
JB
233Ten pakiet zawiera biblioteki współdzielone ffmpeg:
234- bibliotekę kodeków (libavcodec); obsługuje większość istniejących
235 formatów kodowania (MPEG, DivX, MPEG4, AC3, DV...),
236- bibliotekę demuksera (libavformat); obsługuje większość istniejących
237 formatów plików (AVI, MPEG, OGG, Matroska, ASF...),
238- bibliotekę postprocessingu (libpostproc).
54ec280e 239
af49d6ab
JB
240%package devel
241Summary: ffmpeg header files
adcc0f76 242Summary(pl.UTF-8): Pliki nagłówkowe ffmpeg
af49d6ab 243Group: Development/Libraries
54ec280e 244Requires: %{name}-libs = %{version}-%{release}
38cefaee 245# Libs.private from *.pc (unreasonably they are all the same)
6a6b11be 246%{?with_opencl:Requires: OpenCL-devel >= 1.2}
f6f5022a 247%{?with_opengl:Requires: OpenGL-devel}
3dcb8642 248Requires: SDL-devel >= 1.2.1
38cefaee
JB
249Requires: alsa-lib-devel
250Requires: bzip2-devel
9c4296c2 251Requires: celt-devel >= 0.11.0
fecf9f23 252%{?with_dcadec:Requires: dcadec-devel}
c8f42fb1 253%{?with_faac:Requires: faac-devel}
004e5628 254%{?with_fdk_aac:Requires: fdk-aac-devel}
4b05ede1 255%{?with_flite:Requires: flite-devel >= 1.4}
3dcb8642 256Requires: fontconfig-devel
0aad4bf2 257Requires: freetype-devel
4474c07d 258%{?with_fribidi:Requires: fribidi-devel}
22745365 259%{?with_gme:Requires: game-music-emu-devel}
38cefaee 260Requires: jack-audio-connection-kit-devel
7160e157 261%{?with_kvazaar:Requires: kvazaar-devel >= 0.7}
38cefaee 262Requires: lame-libs-devel >= 3.98.3
1c1d1368
JB
263%{?with_aacplus:Requires: libaacplus-devel >= 2.0.0}
264Requires: libass-devel
265Requires: libavc1394-devel
3dcb8642 266Requires: libbluray-devel
4474c07d 267%{?with_bs2b:Requires: libbs2b-devel}
28673856 268%{?with_caca:Requires: libcaca-devel}
a09e741c 269Requires: libcdio-paranoia-devel >= 0.90-2
9c4296c2 270Requires: libdc1394-devel >= 2
bf479bc6 271Requires: libgsm-devel
1c1d1368
JB
272Requires: libiec61883-devel
273Requires: libmodplug-devel
4a927f9d 274Requires: libnut-devel
16a4fb4a 275%{?with_quvi:Requires: libquvi-0.4-devel}
7571bfa0 276Requires: libraw1394-devel >= 2
38cefaee 277Requires: librtmp-devel
4474c07d 278%{?with_smb:Requires: libsmbclient-devel}
38cefaee
JB
279Requires: libtheora-devel >= 1.0-0.beta3
280%{?with_va:Requires: libva-devel >= 1.0.3}
33a1c0f3 281Requires: libvorbis-devel
1be5865c 282%{?with_vpx:Requires: libvpx-devel >= 1.3.0}
fecf9f23 283%{?with_webp:Requires: libwebp-devel >= 0.4.0}
ea09f25d 284%{?with_x264:Requires: libx264-devel >= 0.1.3-1.20110625_2245}
7d10e69e 285%{?with_x265:Requires: libx265-devel >= 1.3-0.20150610.1}
0258feb8 286%{?with_mfx:Requires: mfx_dispatch-devel}
38cefaee 287Requires: opencore-amr-devel
fc1d9619 288%{?with_opencv:Requires: opencv-devel}
62da4e00 289%{?with_openh264:Requires: openh264-devel >= 1.3}
ae5be86b 290Requires: openjpeg-devel >= 1.5
38cefaee 291Requires: schroedinger-devel
4a11c99e 292%{?with_shine:Requires: shine-devel >= 3.0.0}
7160e157 293%{?with_snappy:Requires: snappy-devel}
05408820 294%{?with_soxr:Requires: soxr-devel}
38cefaee 295Requires: speex-devel >= 1:1.2-rc1
1c1d1368 296Requires: twolame-devel
ad057c0a 297%{?with_utvideo:Requires: utvideo-devel >= 15.3}
9befe454 298%{?with_vidstab:Requires: vid.stab-devel >= 0.98}
38cefaee
JB
299Requires: vo-aacenc-devel
300Requires: vo-amrwbenc-devel
22745365 301%{?with_wavpack:Requires: wavpack-devel}
cbeed0a5 302%{?with_ilbc:Requires: webrtc-libilbc-devel}
38cefaee
JB
303Requires: xavs-devel
304Requires: xorg-lib-libXext-devel
305Requires: xorg-lib-libXfixes-devel
46f2a56b 306Requires: xvid-devel >= 1:1.1.0
6a6b11be 307%{?with_zmq:Requires: zeromq-devel}
33a1c0f3 308Requires: zlib-devel
8152d6a2 309Obsoletes: libpostproc-devel
af49d6ab
JB
310
311%description devel
312ffmpeg header files.
313
cdb7b42e
JR
314%description devel -l pl.UTF-8
315Pliki nagłówkowe ffmpeg.
af49d6ab
JB
316
317%package static
318Summary: ffmpeg static libraries
adcc0f76 319Summary(pl.UTF-8): Statyczne biblioteki ffmpeg
af49d6ab
JB
320Group: Development/Libraries
321Requires: %{name}-devel = %{version}-%{release}
322
323%description static
324ffmpeg static libraries (libavcodec and libavformat).
325
cdb7b42e 326%description static -l pl.UTF-8
af49d6ab
JB
327Statyczne biblioteki ffmpeg (libavcodec i libavformat).
328
2a60eebe
JB
329%package ffplay
330Summary: FFplay - SDL-based media player
adcc0f76 331Summary(pl.UTF-8): FFplay - odtwarzacz mediów oparty na SDL
2a60eebe 332Group: Applications/Multimedia
54ec280e 333Requires: %{name}-libs = %{version}-%{release}
2a60eebe
JB
334
335%description ffplay
336FFplay is a very simple and portable media player using the FFmpeg
337libraries and the SDL library. It is mostly used as a test bench for
338the various APIs of FFmpeg.
339
cdb7b42e
JR
340%description ffplay -l pl.UTF-8
341FFplay to bardzo prosty i przenośny odtwarzacz mediów używający
342bibliotek FFmpeg oraz biblioteki SDL. Jest używany głównie do
343testowania różnych API FFmpeg.
2a60eebe 344
fde29260
ER
345%package ffserver
346Summary: FFserver video server
adcc0f76 347Summary(pl.UTF-8): FFserver - serwer strumieni obrazu
fde29260 348Group: Daemons
593d3a64 349Requires(post,preun): /sbin/chkconfig
67103923 350Requires: %{name}-libs = %{version}-%{release}
2305d791 351Requires: rc-scripts >= 0.4.0.10
fde29260
ER
352
353%description ffserver
354FFserver is a streaming server for both audio and video. It supports
355several live feeds, streaming from files and time shifting on live
356feeds (you can seek to positions in the past on each live feed,
357provided you specify a big enough feed storage in ffserver.conf).
358
cdb7b42e
JR
359%description ffserver -l pl.UTF-8
360FFserver to serwer strumieni dla dźwięku i obrazu. Obsługuje kilka
361źródeł na żywo, przekazywanie strumieni z plików i przesuwanie w
362czasie dla źródeł na żywo (można przeskakiwać na położenia w
363przeszłości dla każdego źródła na żywo, pod warunkiem odpowiednio
364dużej przestrzeni na dane skonfigurowanej w ffserver.conf).
4e0bd1da 365
4b05ede1 366%package doc
143c6eec
JB
367Summary: FFmpeg documentation in HTML format
368Summary(pl.UTF-8): Dokumentacja pakietu FFmpeg w formacie HTML
4b05ede1
ER
369Group: Documentation
370%if "%{_rpmversion}" >= "5"
371BuildArch: noarch
372%endif
373
374%description doc
143c6eec 375FFmpeg documentation in HTML format.
4b05ede1
ER
376
377%description doc -l pl.UTF-8
143c6eec 378Dokumentacja pakietu FFmpeg w formacie HTML.
4b05ede1 379
9fc4ad22 380%prep
aed8e8c9 381%setup -q
7160e157 382%patch0 -p1
d0561b54 383%patch1 -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 \
f6f5022a 467 %{?with_decklink:--enable-decklink} \
d5aef92e 468 --enable-gnutls \
126fb805 469 --enable-gpl \
0b43f655 470 --enable-version3 \
3dcb8642 471 --enable-fontconfig \
d7a39558 472 %{?with_frei0r:--enable-frei0r} \
5f3dc7d9 473 %{?with_ladspa:--enable-ladspa} \
d5aef92e 474 --enable-libass \
3dcb8642 475 --enable-libbluray \
4474c07d 476 %{?with_bs2b:--enable-libbs2b} \
2362253d 477 %{?with_caca:--enable-libcaca} \
cbdd2688 478 --enable-libcelt \
d5aef92e
JB
479 --enable-libcdio \
480 --enable-libdc1394 \
fecf9f23 481 %{?with_dcadec:--enable-libdcadec} \
1c1d1368 482 %{?with_flite:--enable-libflite} \
3dcb8642 483 --enable-libfreetype \
4474c07d 484 %{?with_fribidi:--enable-libfribidi} \
22745365 485 %{?with_gme:--enable-libgme} \
f3692243 486 --enable-libgsm \
1c1d1368 487 --enable-libiec61883 \
004e5628 488 %{?with_ilbc:--enable-libilbc} \
7160e157 489 %{?with_kvazaar:--enable-libkvazaar} \
0258feb8 490 %{?with_mfx:--enable-libmfx} \
d5aef92e 491 --enable-libmodplug \
15c15700 492 --enable-libmp3lame \
4a927f9d 493 --enable-libnut \
cbdd2688
JB
494 --enable-libopencore-amrnb \
495 --enable-libopencore-amrwb \
192f9f57 496 %{?with_opencv:--enable-libopencv} \
0258feb8 497 %{?with_openh264:--enable-libopenh264} \
cbdd2688 498 --enable-libopenjpeg \
1c1d1368 499 --enable-libopus \
d5aef92e 500 %{?with_pulseaudio:--enable-libpulse} \
22745365 501 %{?with_quvi:--enable-libquvi} \
cbdd2688 502 --enable-librtmp \
126fb805 503 --enable-libschroedinger \
f56b6dce 504 %{?with_shine:--enable-libshine} \
4474c07d 505 %{?with_smb:--enable-libsmbclient} \
7160e157 506 %{?with_snappy:--enable-libsnappy} \
05408820 507 %{?with_soxr:--enable-libsoxr} \
da99dcf2 508 --enable-libspeex \
5f3dc7d9 509 %{?with_ssh:--enable-libssh} \
126fb805 510 --enable-libtheora \
1c1d1368 511 --enable-libtwolame \
daf9a670 512 %{?with_utvideo:--enable-libutvideo} \
d5aef92e 513 --enable-libv4l2 \
f56b6dce 514 %{?with_vidstab:--enable-libvidstab} \
5dc039cb
JB
515 --enable-libvo-aacenc \
516 --enable-libvo-amrwbenc \
126fb805 517 --enable-libvorbis \
64f8f109 518 %{?with_vpx:--enable-libvpx} \
22745365 519 %{?with_wavpack:--enable-libwavpack} \
8b9d2787 520 %{?with_webp:--enable-libwebp} \
ea09f25d 521 %{?with_x264:--enable-libx264} \
90ab353a 522 %{?with_x265:--enable-libx265} \
5dc039cb 523 --enable-libxavs \
126fb805 524 --enable-libxvid \
6a6b11be 525 %{?with_zmq:--enable-libzmq} \
5f3dc7d9 526 %{?with_zvbi:--enable-libzvbi} \
d5aef92e 527 %{?with_openal:--enable-openal} \
f56b6dce 528 %{?with_opencl:--enable-opencl} \
8b9d2787 529 %{?with_opengl:--enable-opengl} \
6382c99d 530 --enable-postproc \
d7493de8 531 --enable-pthreads \
9cf4d8a4 532 --enable-shared \
6382c99d 533 --enable-swscale \
22745365 534 %{!?with_va:--disable-vaapi} \
75231f25 535 --enable-x11grab \
7a286645 536%ifnarch %{ix86} %{x8664}
e1fe03f7 537 --disable-mmx \
538%endif
539%ifarch i386 i486
05e1eb2f 540 --disable-mmx \
b524cd99 541%endif
61f81a23
JR
542%ifarch x32
543 --disable-asm \
544%endif
0b43f655 545%if %{with nonfree}
48610c64 546 --enable-nonfree \
c8f42fb1
ER
547 %{?with_aacplus:--enable-libaacplus} \
548 %{?with_faac:--enable-libfaac} \
549 %{?with_fdk_aac:--enable-libfdk-aac} \
550 %{?with_nvenc:--enable-nvenc} \
76243dbd 551%endif
75231f25 552 --enable-runtime-cpudetect
2305d791 553
1ef27ea1
JB
554%{__make} \
555 V=1
9fc4ad22 556
b8c60172
ER
557# CC_O to add -c to commandline. makefile should be patched
558%{__make} tools/qt-faststart V=1 CC_O='-c -o $@'
559
39711f7c
AM
560%{?with_tests:%{__make} check V=1}
561
9fc4ad22
AM
562%install
563rm -rf $RPM_BUILD_ROOT
38cf6de3 564install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_sbindir},/etc/{sysconfig,rc.d/init.d}} \
38baa0f1 565 $RPM_BUILD_ROOT%{_includedir}/ffmpeg \
38cf6de3 566 $RPM_BUILD_ROOT/var/{cache,log}/ffserver
9fc4ad22 567
a831ce58 568%{__make} install install-headers \
1ef27ea1
JB
569 DESTDIR=$RPM_BUILD_ROOT \
570 V=1
539b540f 571
a831ce58 572# install nonstandard, non-public headers manually
544421b2 573cp -a config.h $RPM_BUILD_ROOT%{_includedir}/ffmpeg
80428ade 574for a in libavutil/*/{asm,bswap}.h; do
a831ce58 575 install -Dp $a $RPM_BUILD_ROOT%{_includedir}/$a
544421b2 576done
9d4f8977 577cp -a libavformat/riff.h $RPM_BUILD_ROOT%{_includedir}/libavformat
980e7aa8
JB
578# for lim-omx ffmpeg components
579cp -a libavcodec/audioconvert.h $RPM_BUILD_ROOT%{_includedir}/libavcodec
544421b2 580
b8c60172
ER
581install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/ffserver
582cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/ffserver
583cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/ffserver.conf
539b540f 584mv -f $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/ffserver
b8c60172 585install -p tools/qt-faststart $RPM_BUILD_ROOT%{_bindir}
9fc4ad22 586
2b2445b7
ER
587# install as ffmpeg-avconfig to avoid with possible programs looking for
588# ffmpeg-config and expecting --libs output from it which is not implemented
589# simple to do (by querying pkgconfig), but why?
b8c60172 590install -p ffmpeg-avconfig $RPM_BUILD_ROOT%{_bindir}/ffmpeg-avconfig
2b2445b7 591
a6755e78 592# packaged as %doc in -doc
eaa9ad7b 593%if %{with doc}
a6755e78 594%{__rm} $RPM_BUILD_ROOT%{_docdir}/ffmpeg/*.html
eaa9ad7b 595%endif
a6755e78
JB
596
597install -d $RPM_BUILD_ROOT%{_examplesdir}
598%{__mv} $RPM_BUILD_ROOT%{_datadir}/ffmpeg/examples $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
599
9fc4ad22
AM
600%clean
601rm -rf $RPM_BUILD_ROOT
602
1ef27ea1
JB
603%post libs -p /sbin/ldconfig
604%postun libs -p /sbin/ldconfig
539b540f 605
38cf6de3
ER
606%pre ffserver
607%groupadd -g 167 ffserver
608%useradd -g ffserver -u 167 ffserver
609
593d3a64
ER
610%post ffserver
611/sbin/chkconfig --add ffserver
612%service ffserver restart
613
38cf6de3 614%preun ffserver
593d3a64
ER
615if [ "$1" = 0 ]; then
616 %service ffserver stop
617 /sbin/chkconfig --del ffserver
618fi
619
38cf6de3
ER
620%postun ffserver
621if [ "$1" = 0 ]; then
622 %userremove ffserver
623 %groupremove ffserver
624fi
625
9fc4ad22
AM
626%files
627%defattr(644,root,root,755)
479e9af6 628%doc CREDITS LICENSE.md MAINTAINERS README.md RELEASE_NOTES doc/APIchanges
2a60eebe 629%attr(755,root,root) %{_bindir}/ffmpeg
3a7b84be 630%attr(755,root,root) %{_bindir}/ffprobe
b7313442 631%attr(755,root,root) %{_bindir}/qt-faststart
da99dcf2
AM
632%dir %{_datadir}/ffmpeg
633%{_datadir}/ffmpeg/*.ffpreset
714dcf83 634%{_datadir}/ffmpeg/ffprobe.xsd
28673856
JB
635%if %{with doc}
636%{_mandir}/man1/ffmpeg.1*
22745365 637%{_mandir}/man1/ffmpeg-all.1*
28673856
JB
638%{_mandir}/man1/ffmpeg-bitstream-filters.1*
639%{_mandir}/man1/ffmpeg-codecs.1*
640%{_mandir}/man1/ffmpeg-devices.1*
641%{_mandir}/man1/ffmpeg-filters.1*
642%{_mandir}/man1/ffmpeg-formats.1*
643%{_mandir}/man1/ffmpeg-protocols.1*
644%{_mandir}/man1/ffmpeg-resampler.1*
645%{_mandir}/man1/ffmpeg-scaler.1*
646%{_mandir}/man1/ffmpeg-utils.1*
647%{_mandir}/man1/ffprobe.1*
22745365 648%{_mandir}/man1/ffprobe-all.1*
28673856 649%endif
54ec280e
PG
650
651%files libs
652%defattr(644,root,root,755)
f50f7d7c 653%attr(755,root,root) %{_libdir}/libavcodec.so.*.*.*
c16de9f4 654%attr(755,root,root) %ghost %{_libdir}/libavcodec.so.56
d0a0ec26 655%attr(755,root,root) %{_libdir}/libavdevice.so.*.*.*
c16de9f4 656%attr(755,root,root) %ghost %{_libdir}/libavdevice.so.56
314ef0df 657%attr(755,root,root) %{_libdir}/libavfilter.so.*.*.*
c16de9f4 658%attr(755,root,root) %ghost %{_libdir}/libavfilter.so.5
f50f7d7c 659%attr(755,root,root) %{_libdir}/libavformat.so.*.*.*
c16de9f4 660%attr(755,root,root) %ghost %{_libdir}/libavformat.so.56
5663f846 661%attr(755,root,root) %{_libdir}/libavresample.so.*.*.*
c16de9f4 662%attr(755,root,root) %ghost %{_libdir}/libavresample.so.2
f50f7d7c 663%attr(755,root,root) %{_libdir}/libavutil.so.*.*.*
c16de9f4 664%attr(755,root,root) %ghost %{_libdir}/libavutil.so.54
d7493de8 665%attr(755,root,root) %{_libdir}/libpostproc.so.*.*.*
c16de9f4 666%attr(755,root,root) %ghost %{_libdir}/libpostproc.so.53
660918c5 667%attr(755,root,root) %{_libdir}/libswresample.so.*.*.*
c16de9f4 668%attr(755,root,root) %ghost %{_libdir}/libswresample.so.1
ee032235 669%attr(755,root,root) %{_libdir}/libswscale.so.*.*.*
c16de9f4 670%attr(755,root,root) %ghost %{_libdir}/libswscale.so.3
314ef0df 671
539b540f
JB
672%files devel
673%defattr(644,root,root,755)
54ec280e 674%doc doc/optimization.txt
1ef27ea1 675%attr(755,root,root) %{_bindir}/ffmpeg-avconfig
539b540f 676%attr(755,root,root) %{_libdir}/libavcodec.so
d0a0ec26 677%attr(755,root,root) %{_libdir}/libavdevice.so
314ef0df 678%attr(755,root,root) %{_libdir}/libavfilter.so
539b540f 679%attr(755,root,root) %{_libdir}/libavformat.so
5663f846 680%attr(755,root,root) %{_libdir}/libavresample.so
d7493de8 681%attr(755,root,root) %{_libdir}/libavutil.so
d2af4612 682%attr(755,root,root) %{_libdir}/libpostproc.so
660918c5 683%attr(755,root,root) %{_libdir}/libswresample.so
ee032235 684%attr(755,root,root) %{_libdir}/libswscale.so
539b540f 685%{_includedir}/ffmpeg
6382c99d
AM
686%{_includedir}/libavcodec
687%{_includedir}/libavdevice
314ef0df 688%{_includedir}/libavfilter
6382c99d 689%{_includedir}/libavformat
5663f846 690%{_includedir}/libavresample
6382c99d
AM
691%{_includedir}/libavutil
692%{_includedir}/libpostproc
660918c5 693%{_includedir}/libswresample
6382c99d 694%{_includedir}/libswscale
1ef27ea1
JB
695%{_pkgconfigdir}/libavcodec.pc
696%{_pkgconfigdir}/libavdevice.pc
697%{_pkgconfigdir}/libavfilter.pc
698%{_pkgconfigdir}/libavformat.pc
5663f846 699%{_pkgconfigdir}/libavresample.pc
1ef27ea1
JB
700%{_pkgconfigdir}/libavutil.pc
701%{_pkgconfigdir}/libpostproc.pc
660918c5 702%{_pkgconfigdir}/libswresample.pc
1ef27ea1 703%{_pkgconfigdir}/libswscale.pc
28673856
JB
704%if %{with doc}
705%{_mandir}/man3/libavcodec.3*
706%{_mandir}/man3/libavdevice.3*
707%{_mandir}/man3/libavfilter.3*
708%{_mandir}/man3/libavformat.3*
709%{_mandir}/man3/libavutil.3*
710%{_mandir}/man3/libswresample.3*
711%{_mandir}/man3/libswscale.3*
712%endif
a6755e78 713%{_examplesdir}/%{name}-%{version}
539b540f 714
9cf4d8a4
JB
715%files static
716%defattr(644,root,root,755)
1ef27ea1
JB
717%{_libdir}/libavcodec.a
718%{_libdir}/libavdevice.a
719%{_libdir}/libavfilter.a
720%{_libdir}/libavformat.a
5663f846 721%{_libdir}/libavresample.a
1ef27ea1
JB
722%{_libdir}/libavutil.a
723%{_libdir}/libpostproc.a
660918c5 724%{_libdir}/libswresample.a
1ef27ea1 725%{_libdir}/libswscale.a
af49d6ab
JB
726
727%files ffplay
728%defattr(644,root,root,755)
729%attr(755,root,root) %{_bindir}/ffplay
22745365
JB
730%if %{with doc}
731%{_mandir}/man1/ffplay.1*
732%{_mandir}/man1/ffplay-all.1*
733%endif
af49d6ab 734
fde29260
ER
735%files ffserver
736%defattr(644,root,root,755)
737%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ffserver.conf
738%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/ffserver
739%attr(755,root,root) %{_sbindir}/ffserver
740%attr(754,root,root) /etc/rc.d/init.d/ffserver
22745365
JB
741%if %{with doc}
742%{_mandir}/man1/ffserver.1*
743%{_mandir}/man1/ffserver-all.1*
744%endif
38cf6de3
ER
745%dir %attr(770,root,ffserver) /var/cache/ffserver
746%dir %attr(770,root,ffserver) /var/log/ffserver
4b05ede1
ER
747
748%if %{with doc}
749%files doc
750%defattr(644,root,root,755)
751%doc doc/*.html
752%endif
This page took 0.368896 seconds and 4 git commands to generate.