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