]> git.pld-linux.org Git - packages/ffmpeg.git/blame - ffmpeg.spec
add patch to fix build with libvpx 1.5.0
[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
1565fd2f 65Version: 2.8.1
7d250ea3 66Release: 2
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
1ef27ea1 72Source0: http://ffmpeg.org/releases/%{name}-%{version}.tar.bz2
1565fd2f 73# Source0-md5: 63b2cfeea930e942ff7579fd0064c5be
fde29260
ER
74Source1: ffserver.init
75Source2: ffserver.sysconfig
38cf6de3 76Source3: ffserver.conf
7160e157 77Patch0: %{name}-kvazaar.patch
d0561b54 78Patch1: libvpx-1.5.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
22745365 119%{?with_quvi:BuildRequires: libquvi-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
05408820 165%{?with_utvideo:BuildRequires: utvideo-devel >= 12}
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}
05408820 184%{?with_utvideo:Requires: utvideo >= 12}
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
22745365 275%{?with_quvi:Requires: libquvi-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
05408820 297%{?with_utvideo:Requires: utvideo-devel >= 12}
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 \
314ef0df 464 --enable-avfilter \
0797daec 465 --enable-avresample \
f6f5022a 466 %{?with_decklink:--enable-decklink} \
d5aef92e 467 --enable-gnutls \
126fb805 468 --enable-gpl \
0b43f655 469 --enable-version3 \
3dcb8642 470 --enable-fontconfig \
d7a39558 471 %{?with_frei0r:--enable-frei0r} \
5f3dc7d9 472 %{?with_ladspa:--enable-ladspa} \
d5aef92e 473 --enable-libass \
3dcb8642 474 --enable-libbluray \
4474c07d 475 %{?with_bs2b:--enable-libbs2b} \
2362253d 476 %{?with_caca:--enable-libcaca} \
cbdd2688 477 --enable-libcelt \
d5aef92e
JB
478 --enable-libcdio \
479 --enable-libdc1394 \
fecf9f23 480 %{?with_dcadec:--enable-libdcadec} \
1c1d1368 481 %{?with_flite:--enable-libflite} \
3dcb8642 482 --enable-libfreetype \
4474c07d 483 %{?with_fribidi:--enable-libfribidi} \
22745365 484 %{?with_gme:--enable-libgme} \
f3692243 485 --enable-libgsm \
1c1d1368 486 --enable-libiec61883 \
004e5628 487 %{?with_ilbc:--enable-libilbc} \
7160e157 488 %{?with_kvazaar:--enable-libkvazaar} \
0258feb8 489 %{?with_mfx:--enable-libmfx} \
d5aef92e 490 --enable-libmodplug \
15c15700 491 --enable-libmp3lame \
4a927f9d 492 --enable-libnut \
cbdd2688
JB
493 --enable-libopencore-amrnb \
494 --enable-libopencore-amrwb \
192f9f57 495 %{?with_opencv:--enable-libopencv} \
0258feb8 496 %{?with_openh264:--enable-libopenh264} \
cbdd2688 497 --enable-libopenjpeg \
1c1d1368 498 --enable-libopus \
d5aef92e 499 %{?with_pulseaudio:--enable-libpulse} \
22745365 500 %{?with_quvi:--enable-libquvi} \
cbdd2688 501 --enable-librtmp \
126fb805 502 --enable-libschroedinger \
f56b6dce 503 %{?with_shine:--enable-libshine} \
4474c07d 504 %{?with_smb:--enable-libsmbclient} \
7160e157 505 %{?with_snappy:--enable-libsnappy} \
05408820 506 %{?with_soxr:--enable-libsoxr} \
da99dcf2 507 --enable-libspeex \
5f3dc7d9 508 %{?with_ssh:--enable-libssh} \
126fb805 509 --enable-libtheora \
1c1d1368 510 --enable-libtwolame \
daf9a670 511 %{?with_utvideo:--enable-libutvideo} \
d5aef92e 512 --enable-libv4l2 \
f56b6dce 513 %{?with_vidstab:--enable-libvidstab} \
5dc039cb
JB
514 --enable-libvo-aacenc \
515 --enable-libvo-amrwbenc \
126fb805 516 --enable-libvorbis \
64f8f109 517 %{?with_vpx:--enable-libvpx} \
22745365 518 %{?with_wavpack:--enable-libwavpack} \
8b9d2787 519 %{?with_webp:--enable-libwebp} \
ea09f25d 520 %{?with_x264:--enable-libx264} \
90ab353a 521 %{?with_x265:--enable-libx265} \
5dc039cb 522 --enable-libxavs \
126fb805 523 --enable-libxvid \
6a6b11be 524 %{?with_zmq:--enable-libzmq} \
5f3dc7d9 525 %{?with_zvbi:--enable-libzvbi} \
d5aef92e 526 %{?with_openal:--enable-openal} \
f56b6dce 527 %{?with_opencl:--enable-opencl} \
8b9d2787 528 %{?with_opengl:--enable-opengl} \
6382c99d 529 --enable-postproc \
d7493de8 530 --enable-pthreads \
9cf4d8a4 531 --enable-shared \
6382c99d 532 --enable-swscale \
22745365 533 %{!?with_va:--disable-vaapi} \
75231f25 534 --enable-x11grab \
7a286645 535%ifnarch %{ix86} %{x8664}
e1fe03f7 536 --disable-mmx \
537%endif
538%ifarch i386 i486
05e1eb2f 539 --disable-mmx \
b524cd99 540%endif
61f81a23
JR
541%ifarch x32
542 --disable-asm \
543%endif
0b43f655 544%if %{with nonfree}
48610c64 545 --enable-nonfree \
c8f42fb1
ER
546 %{?with_aacplus:--enable-libaacplus} \
547 %{?with_faac:--enable-libfaac} \
548 %{?with_fdk_aac:--enable-libfdk-aac} \
549 %{?with_nvenc:--enable-nvenc} \
76243dbd 550%endif
75231f25 551 --enable-runtime-cpudetect
2305d791 552
1ef27ea1
JB
553%{__make} \
554 V=1
9fc4ad22 555
b8c60172
ER
556# CC_O to add -c to commandline. makefile should be patched
557%{__make} tools/qt-faststart V=1 CC_O='-c -o $@'
558
39711f7c
AM
559%{?with_tests:%{__make} check V=1}
560
9fc4ad22
AM
561%install
562rm -rf $RPM_BUILD_ROOT
38cf6de3 563install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_sbindir},/etc/{sysconfig,rc.d/init.d}} \
38baa0f1 564 $RPM_BUILD_ROOT%{_includedir}/ffmpeg \
38cf6de3 565 $RPM_BUILD_ROOT/var/{cache,log}/ffserver
9fc4ad22 566
a831ce58 567%{__make} install install-headers \
1ef27ea1
JB
568 DESTDIR=$RPM_BUILD_ROOT \
569 V=1
539b540f 570
a831ce58 571# install nonstandard, non-public headers manually
544421b2 572cp -a config.h $RPM_BUILD_ROOT%{_includedir}/ffmpeg
80428ade 573for a in libavutil/*/{asm,bswap}.h; do
a831ce58 574 install -Dp $a $RPM_BUILD_ROOT%{_includedir}/$a
544421b2 575done
9d4f8977 576cp -a libavformat/riff.h $RPM_BUILD_ROOT%{_includedir}/libavformat
980e7aa8
JB
577# for lim-omx ffmpeg components
578cp -a libavcodec/audioconvert.h $RPM_BUILD_ROOT%{_includedir}/libavcodec
544421b2 579
b8c60172
ER
580install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/ffserver
581cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/ffserver
582cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/ffserver.conf
539b540f 583mv -f $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/ffserver
b8c60172 584install -p tools/qt-faststart $RPM_BUILD_ROOT%{_bindir}
9fc4ad22 585
2b2445b7
ER
586# install as ffmpeg-avconfig to avoid with possible programs looking for
587# ffmpeg-config and expecting --libs output from it which is not implemented
588# simple to do (by querying pkgconfig), but why?
b8c60172 589install -p ffmpeg-avconfig $RPM_BUILD_ROOT%{_bindir}/ffmpeg-avconfig
2b2445b7 590
a6755e78
JB
591# packaged as %doc in -doc
592%{__rm} $RPM_BUILD_ROOT%{_docdir}/ffmpeg/*.html
593
594install -d $RPM_BUILD_ROOT%{_examplesdir}
595%{__mv} $RPM_BUILD_ROOT%{_datadir}/ffmpeg/examples $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
596
9fc4ad22
AM
597%clean
598rm -rf $RPM_BUILD_ROOT
599
1ef27ea1
JB
600%post libs -p /sbin/ldconfig
601%postun libs -p /sbin/ldconfig
539b540f 602
38cf6de3
ER
603%pre ffserver
604%groupadd -g 167 ffserver
605%useradd -g ffserver -u 167 ffserver
606
593d3a64
ER
607%post ffserver
608/sbin/chkconfig --add ffserver
609%service ffserver restart
610
38cf6de3 611%preun ffserver
593d3a64
ER
612if [ "$1" = 0 ]; then
613 %service ffserver stop
614 /sbin/chkconfig --del ffserver
615fi
616
38cf6de3
ER
617%postun ffserver
618if [ "$1" = 0 ]; then
619 %userremove ffserver
620 %groupremove ffserver
621fi
622
9fc4ad22
AM
623%files
624%defattr(644,root,root,755)
479e9af6 625%doc CREDITS LICENSE.md MAINTAINERS README.md RELEASE_NOTES doc/APIchanges
2a60eebe 626%attr(755,root,root) %{_bindir}/ffmpeg
3a7b84be 627%attr(755,root,root) %{_bindir}/ffprobe
b7313442 628%attr(755,root,root) %{_bindir}/qt-faststart
da99dcf2
AM
629%dir %{_datadir}/ffmpeg
630%{_datadir}/ffmpeg/*.ffpreset
714dcf83 631%{_datadir}/ffmpeg/ffprobe.xsd
28673856
JB
632%if %{with doc}
633%{_mandir}/man1/ffmpeg.1*
22745365 634%{_mandir}/man1/ffmpeg-all.1*
28673856
JB
635%{_mandir}/man1/ffmpeg-bitstream-filters.1*
636%{_mandir}/man1/ffmpeg-codecs.1*
637%{_mandir}/man1/ffmpeg-devices.1*
638%{_mandir}/man1/ffmpeg-filters.1*
639%{_mandir}/man1/ffmpeg-formats.1*
640%{_mandir}/man1/ffmpeg-protocols.1*
641%{_mandir}/man1/ffmpeg-resampler.1*
642%{_mandir}/man1/ffmpeg-scaler.1*
643%{_mandir}/man1/ffmpeg-utils.1*
644%{_mandir}/man1/ffprobe.1*
22745365 645%{_mandir}/man1/ffprobe-all.1*
28673856 646%endif
54ec280e
PG
647
648%files libs
649%defattr(644,root,root,755)
f50f7d7c 650%attr(755,root,root) %{_libdir}/libavcodec.so.*.*.*
c16de9f4 651%attr(755,root,root) %ghost %{_libdir}/libavcodec.so.56
d0a0ec26 652%attr(755,root,root) %{_libdir}/libavdevice.so.*.*.*
c16de9f4 653%attr(755,root,root) %ghost %{_libdir}/libavdevice.so.56
314ef0df 654%attr(755,root,root) %{_libdir}/libavfilter.so.*.*.*
c16de9f4 655%attr(755,root,root) %ghost %{_libdir}/libavfilter.so.5
f50f7d7c 656%attr(755,root,root) %{_libdir}/libavformat.so.*.*.*
c16de9f4 657%attr(755,root,root) %ghost %{_libdir}/libavformat.so.56
5663f846 658%attr(755,root,root) %{_libdir}/libavresample.so.*.*.*
c16de9f4 659%attr(755,root,root) %ghost %{_libdir}/libavresample.so.2
f50f7d7c 660%attr(755,root,root) %{_libdir}/libavutil.so.*.*.*
c16de9f4 661%attr(755,root,root) %ghost %{_libdir}/libavutil.so.54
d7493de8 662%attr(755,root,root) %{_libdir}/libpostproc.so.*.*.*
c16de9f4 663%attr(755,root,root) %ghost %{_libdir}/libpostproc.so.53
660918c5 664%attr(755,root,root) %{_libdir}/libswresample.so.*.*.*
c16de9f4 665%attr(755,root,root) %ghost %{_libdir}/libswresample.so.1
ee032235 666%attr(755,root,root) %{_libdir}/libswscale.so.*.*.*
c16de9f4 667%attr(755,root,root) %ghost %{_libdir}/libswscale.so.3
314ef0df 668
539b540f
JB
669%files devel
670%defattr(644,root,root,755)
54ec280e 671%doc doc/optimization.txt
1ef27ea1 672%attr(755,root,root) %{_bindir}/ffmpeg-avconfig
539b540f 673%attr(755,root,root) %{_libdir}/libavcodec.so
d0a0ec26 674%attr(755,root,root) %{_libdir}/libavdevice.so
314ef0df 675%attr(755,root,root) %{_libdir}/libavfilter.so
539b540f 676%attr(755,root,root) %{_libdir}/libavformat.so
5663f846 677%attr(755,root,root) %{_libdir}/libavresample.so
d7493de8 678%attr(755,root,root) %{_libdir}/libavutil.so
d2af4612 679%attr(755,root,root) %{_libdir}/libpostproc.so
660918c5 680%attr(755,root,root) %{_libdir}/libswresample.so
ee032235 681%attr(755,root,root) %{_libdir}/libswscale.so
539b540f 682%{_includedir}/ffmpeg
6382c99d
AM
683%{_includedir}/libavcodec
684%{_includedir}/libavdevice
314ef0df 685%{_includedir}/libavfilter
6382c99d 686%{_includedir}/libavformat
5663f846 687%{_includedir}/libavresample
6382c99d
AM
688%{_includedir}/libavutil
689%{_includedir}/libpostproc
660918c5 690%{_includedir}/libswresample
6382c99d 691%{_includedir}/libswscale
1ef27ea1
JB
692%{_pkgconfigdir}/libavcodec.pc
693%{_pkgconfigdir}/libavdevice.pc
694%{_pkgconfigdir}/libavfilter.pc
695%{_pkgconfigdir}/libavformat.pc
5663f846 696%{_pkgconfigdir}/libavresample.pc
1ef27ea1
JB
697%{_pkgconfigdir}/libavutil.pc
698%{_pkgconfigdir}/libpostproc.pc
660918c5 699%{_pkgconfigdir}/libswresample.pc
1ef27ea1 700%{_pkgconfigdir}/libswscale.pc
28673856
JB
701%if %{with doc}
702%{_mandir}/man3/libavcodec.3*
703%{_mandir}/man3/libavdevice.3*
704%{_mandir}/man3/libavfilter.3*
705%{_mandir}/man3/libavformat.3*
706%{_mandir}/man3/libavutil.3*
707%{_mandir}/man3/libswresample.3*
708%{_mandir}/man3/libswscale.3*
709%endif
a6755e78 710%{_examplesdir}/%{name}-%{version}
539b540f 711
9cf4d8a4
JB
712%files static
713%defattr(644,root,root,755)
1ef27ea1
JB
714%{_libdir}/libavcodec.a
715%{_libdir}/libavdevice.a
716%{_libdir}/libavfilter.a
717%{_libdir}/libavformat.a
5663f846 718%{_libdir}/libavresample.a
1ef27ea1
JB
719%{_libdir}/libavutil.a
720%{_libdir}/libpostproc.a
660918c5 721%{_libdir}/libswresample.a
1ef27ea1 722%{_libdir}/libswscale.a
af49d6ab
JB
723
724%files ffplay
725%defattr(644,root,root,755)
726%attr(755,root,root) %{_bindir}/ffplay
22745365
JB
727%if %{with doc}
728%{_mandir}/man1/ffplay.1*
729%{_mandir}/man1/ffplay-all.1*
730%endif
af49d6ab 731
fde29260
ER
732%files ffserver
733%defattr(644,root,root,755)
734%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ffserver.conf
735%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/ffserver
736%attr(755,root,root) %{_sbindir}/ffserver
737%attr(754,root,root) /etc/rc.d/init.d/ffserver
22745365
JB
738%if %{with doc}
739%{_mandir}/man1/ffserver.1*
740%{_mandir}/man1/ffserver-all.1*
741%endif
38cf6de3
ER
742%dir %attr(770,root,ffserver) /var/cache/ffserver
743%dir %attr(770,root,ffserver) /var/log/ffserver
4b05ede1
ER
744
745%if %{with doc}
746%files doc
747%defattr(644,root,root,755)
748%doc doc/*.html
749%endif
This page took 0.222768 seconds and 4 git commands to generate.