]> git.pld-linux.org Git - packages/ffmpeg.git/blame - ffmpeg.spec
- rel 4
[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
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
0fdde3cc 33%bcond_without rubberband # rubberband filter
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
e5c1d36e 39%bcond_with tesseract # OCR filter based on Tesseract
8b9d2787 40%bcond_without x264 # H.264 x264 encoder
90ab353a 41%bcond_without x265 # H.265/HEVC x265 encoder
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
e5c1d36e 47%bcond_without zimg # zscale filter based on z.lib
6a6b11be 48%bcond_without zmq # 0MQ message passing
5f3dc7d9 49%bcond_without zvbi # teletext via libzvbi
1ef27ea1 50%bcond_without doc # don't build docs
560d82ce 51%bcond_with tests # "make check" (some tests fail as of 2.5)
314ef0df 52
29c7bf5c
ER
53%if %{with bootstrap}
54%undefine with_opencv
d0745ce6 55%undefine with_chromaprint
29c7bf5c
ER
56%endif
57
a6755e78
JB
58%ifnarch %{ix86} %{x8664} arm
59%undefine with_x265
60%endif
61%ifarch i386 i486
62%undefine with_x265
63%endif
cbdd2688
JB
64Summary: FFmpeg - a very fast video and audio converter
65Summary(pl.UTF-8): FFmpeg - szybki konwerter audio/wideo
9fc4ad22 66Name: ffmpeg
b066b808 67Version: 3.1
b2ec0142 68Release: 4
9cf4d8a4 69# LGPL or GPL, chosen at configure time (GPL version is more featured)
8b9d2787 70# (postprocessing, some filters, x264, x265, xavs, xvid, x11grab)
38cefaee 71# using v3 allows Apache-licensed libs (opencore-amr, libvo-*enc)
0b43f655 72License: GPL v3+ with LGPL v3+ parts
fde29260 73Group: Applications/Multimedia
ad057c0a 74Source0: http://ffmpeg.org/releases/%{name}-%{version}.tar.xz
b066b808 75# Source0-md5: 24ef0c0d541c857c8bc39215619b126f
fde29260
ER
76Source1: ffserver.init
77Source2: ffserver.sysconfig
38cf6de3 78Source3: ffserver.conf
92ced02f 79Patch0: %{name}-openjpeg-build.patch
85f7cea1 80URL: http://www.ffmpeg.org/
f6f5022a 81%{?with_decklink:BuildRequires: Blackmagic_DeckLink_SDK}
28673856 82%{?with_openal:BuildRequires: OpenAL-devel >= 1.1}
6a6b11be 83%{?with_opencl:BuildRequires: OpenCL-devel >= 1.2}
8b9d2787 84%{?with_opengl:BuildRequires: OpenGL-GLX-devel}
3dcb8642 85BuildRequires: SDL-devel >= 1.2.1
cbdd2688 86BuildRequires: alsa-lib-devel
38cefaee 87BuildRequires: bzip2-devel
9f9ba8ac 88BuildRequires: celt-devel >= 0.11.0
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
bd64dc4c 104%{?with_kvazaar:BuildRequires: kvazaar-devel >= 0.8.1}
5f3dc7d9 105%{?with_ladspa:BuildRequires: ladspa-devel}
cbdd2688 106BuildRequires: lame-libs-devel >= 3.98.3
d5aef92e 107BuildRequires: libass-devel
1c1d1368 108BuildRequires: libavc1394-devel
4474c07d 109%{?with_bs2b:BuildRequires: libbs2b-devel}
3dcb8642 110BuildRequires: libbluray-devel
1c1d1368 111%{?with_caca:BuildRequires: libcaca-devel}
a09e741c 112BuildRequires: libcdio-paranoia-devel >= 0.90-2
0fdde3cc 113%{?with_chromaprint:BuildRequires: libchromaprint-devel}
9c4296c2 114BuildRequires: libdc1394-devel >= 2
f1669449 115BuildRequires: libgsm-devel
1c1d1368 116BuildRequires: libiec61883-devel
d5aef92e 117BuildRequires: libmodplug-devel
4a927f9d 118BuildRequires: libnut-devel
7571bfa0 119BuildRequires: libraw1394-devel >= 2
cbdd2688 120BuildRequires: librtmp-devel
5f3dc7d9 121%{?with_ssh:BuildRequires: libssh-devel}
4474c07d 122%{?with_smb:BuildRequires: libsmbclient-devel}
9042663c 123BuildRequires: libtheora-devel >= 1.0-0.beta3
4814ac84 124BuildRequires: libtool >= 2:1.4d-3
daf9a670 125BuildRequires: libv4l-devel
64f8f109 126%{?with_va:BuildRequires: libva-devel >= 1.0.3}
9c4296c2 127BuildRequires: libvdpau-devel >= 0.2
e380e18a 128BuildRequires: libvorbis-devel
1be5865c 129%{?with_vpx:BuildRequires: libvpx-devel >= 1.3.0}
fecf9f23 130%{?with_webp:BuildRequires: libwebp-devel >= 0.4.0}
660918c5
AM
131# X264_BUILD >= 118
132%{?with_x264:BuildRequires: libx264-devel >= 0.1.3-1.20111212_2245}
fecf9f23 133# X265_BUILD >= 57
7d10e69e 134%{?with_x265:BuildRequires: libx265-devel >= 1.3-0.20150610.1}
560d82ce 135# libxcb xcb-shm xcb-xfixes xcb-shape
0258feb8
JB
136BuildRequires: libxcb-devel >= 1.4
137%{?with_mfx:BuildRequires: mfx_dispatch-devel}
e1fe03f7 138%ifarch %{ix86}
139%ifnarch i386 i486
76243dbd
JB
140BuildRequires: nasm
141%endif
e1fe03f7 142%endif
0258feb8
JB
143# which package?
144#%{?with_nvenc:BuildRequires: NVIDIA-NVENC-API}
1c1d1368
JB
145BuildRequires: opencore-amr-devel
146%{?with_opencv:BuildRequires: opencv-devel}
62da4e00 147%{?with_openh264:BuildRequires: openh264-devel >= 1.3}
1c1d1368
JB
148BuildRequires: openjpeg-devel >= 1.5
149BuildRequires: opus-devel
136f0f45 150BuildRequires: perl-Encode
1463656a 151BuildRequires: perl-tools-pod
ef3c0513 152BuildRequires: pkgconfig
1c1d1368 153%{?with_pulseaudio:BuildRequires: pulseaudio-devel}
db8052c8 154BuildRequires: rpmbuild(macros) >= 1.470
0fdde3cc 155%{?with_rubberband:BuildRequires: rubberband-devel >= 1.8.1}
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
e5c1d36e 161%{?with_tesseract:BuildRequires: tesseract-devel}
64f8f109
ER
162%{?with_doc:BuildRequires: tetex}
163%{?with_doc:BuildRequires: texi2html}
164%{?with_doc:BuildRequires: texinfo}
1c1d1368 165BuildRequires: twolame-devel
9befe454 166%{?with_vidstab:BuildRequires: vid.stab-devel >= 0.98}
5dc039cb 167BuildRequires: vo-amrwbenc-devel
22745365 168%{?with_wavpack:BuildRequires: wavpack-devel}
cbeed0a5 169%{?with_ilbc:BuildRequires: webrtc-libilbc-devel}
5dc039cb 170BuildRequires: xavs-devel
28673856 171BuildRequires: xorg-lib-libX11-devel
cbdd2688
JB
172BuildRequires: xorg-lib-libXext-devel
173BuildRequires: xorg-lib-libXfixes-devel
46f2a56b 174BuildRequires: xvid-devel >= 1:1.1.0
cbeed0a5 175BuildRequires: yasm
6a6b11be 176%{?with_zmq:BuildRequires: zeromq-devel}
e5c1d36e 177%{?with_zimg:BuildRequires: zimg-devel}
33a1c0f3 178BuildRequires: zlib-devel
e5c1d36e 179%{?with_zvbi:BuildRequires: zvbi-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}
92a3edff 184%{?with_ilbc:Requires: webrtc-libilbc}
839e806f 185Requires: xvid >= 1:1.1.0
af49d6ab 186Obsoletes: libpostproc
539b540f 187BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
9fc4ad22 188
2a60eebe
JB
189%define _noautoreqdep libGL.so.1 libGLU.so.1
190
c01d7857
PS
191%define specflags -fno-strict-aliasing
192
193# -fomit-frame-pointer is always needed on x86 due to lack of registers (-fPIC takes one)
194%define specflags_ia32 -fomit-frame-pointer
195# -mmmx is needed to enable <mmintrin.h> code.
196%define specflags_i586 -mmmx
197%define specflags_i686 -mmmx
1162803a 198%define specflags_ppc -fPIC
c01d7857 199
9fc4ad22 200%description
85f7cea1
ER
201FFmpeg is a complete solution to record, convert and stream audio and
202video. It is a command line tool to convert one video file format to
203another. It also supports grabbing and encoding in real time from a TV
204card.
9fc4ad22 205
cdb7b42e 206%description -l pl.UTF-8
cbdd2688
JB
207FFmpeg to kompletne rozwiązanie nagrywania, konwersji i transmisji
208strumieni dźwięku i obrazu. Jest to działające z linii poleceń
209narzędzie do konwersji obrazu z jednego formatu do innego. Obsługuje
210także przechwytywanie i kodowanie w czasie rzeczywistym z karty
211telewizyjnej.
9fc4ad22 212
54ec280e
PG
213%package libs
214Summary: ffmpeg libraries
adcc0f76 215Summary(pl.UTF-8): Biblioteki ffmpeg
1be5865c 216Group: Libraries
143c6eec
JB
217%if "%(rpm -q --qf '%{V}' gnutls-devel)" >= "3.0.20"
218# uses gnutls_certificate_set_x509_system_trust if >= 3.0.20
f9cce0c9 219Requires: gnutls-libs >= 3.0.20
143c6eec 220%endif
1be5865c 221%{?with_vpx:Requires: libvpx >= 1.3.0}
0fdde3cc 222%{?with_rubberband:Requires: rubberband-libs >= 1.8.1}
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
c8f42fb1 252%{?with_faac:Requires: faac-devel}
004e5628 253%{?with_fdk_aac:Requires: fdk-aac-devel}
4b05ede1 254%{?with_flite:Requires: flite-devel >= 1.4}
3dcb8642 255Requires: fontconfig-devel
0aad4bf2 256Requires: freetype-devel
4474c07d 257%{?with_fribidi:Requires: fribidi-devel}
22745365 258%{?with_gme:Requires: game-music-emu-devel}
38cefaee 259Requires: jack-audio-connection-kit-devel
7160e157 260%{?with_kvazaar:Requires: kvazaar-devel >= 0.7}
38cefaee 261Requires: lame-libs-devel >= 3.98.3
1c1d1368
JB
262Requires: libass-devel
263Requires: libavc1394-devel
3dcb8642 264Requires: libbluray-devel
4474c07d 265%{?with_bs2b:Requires: libbs2b-devel}
28673856 266%{?with_caca:Requires: libcaca-devel}
a09e741c 267Requires: libcdio-paranoia-devel >= 0.90-2
0fdde3cc 268%{?with_chromaprint:Requires: libchromaprint-devel}
9c4296c2 269Requires: libdc1394-devel >= 2
bf479bc6 270Requires: libgsm-devel
1c1d1368
JB
271Requires: libiec61883-devel
272Requires: libmodplug-devel
4a927f9d 273Requires: libnut-devel
7571bfa0 274Requires: libraw1394-devel >= 2
38cefaee 275Requires: librtmp-devel
4474c07d 276%{?with_smb:Requires: libsmbclient-devel}
38cefaee
JB
277Requires: libtheora-devel >= 1.0-0.beta3
278%{?with_va:Requires: libva-devel >= 1.0.3}
33a1c0f3 279Requires: libvorbis-devel
1be5865c 280%{?with_vpx:Requires: libvpx-devel >= 1.3.0}
fecf9f23 281%{?with_webp:Requires: libwebp-devel >= 0.4.0}
ea09f25d 282%{?with_x264:Requires: libx264-devel >= 0.1.3-1.20110625_2245}
7d10e69e 283%{?with_x265:Requires: libx265-devel >= 1.3-0.20150610.1}
0258feb8 284%{?with_mfx:Requires: mfx_dispatch-devel}
38cefaee 285Requires: opencore-amr-devel
fc1d9619 286%{?with_opencv:Requires: opencv-devel}
62da4e00 287%{?with_openh264:Requires: openh264-devel >= 1.3}
ae5be86b 288Requires: openjpeg-devel >= 1.5
0fdde3cc 289%{?with_rubberband:Requires: rubberband-devel >= 1.8.1}
38cefaee 290Requires: schroedinger-devel
4a11c99e 291%{?with_shine:Requires: shine-devel >= 3.0.0}
7160e157 292%{?with_snappy:Requires: snappy-devel}
05408820 293%{?with_soxr:Requires: soxr-devel}
38cefaee 294Requires: speex-devel >= 1:1.2-rc1
e5c1d36e 295%{?with_tesseract:Requires: tesseract-devel}
1c1d1368 296Requires: twolame-devel
9befe454 297%{?with_vidstab:Requires: vid.stab-devel >= 0.98}
38cefaee 298Requires: vo-amrwbenc-devel
22745365 299%{?with_wavpack:Requires: wavpack-devel}
cbeed0a5 300%{?with_ilbc:Requires: webrtc-libilbc-devel}
38cefaee
JB
301Requires: xavs-devel
302Requires: xorg-lib-libXext-devel
303Requires: xorg-lib-libXfixes-devel
46f2a56b 304Requires: xvid-devel >= 1:1.1.0
6a6b11be 305%{?with_zmq:Requires: zeromq-devel}
e5c1d36e 306%{?with_zimg:Requires: zimg-devel}
33a1c0f3 307Requires: zlib-devel
8152d6a2 308Obsoletes: libpostproc-devel
af49d6ab
JB
309
310%description devel
311ffmpeg header files.
312
cdb7b42e
JR
313%description devel -l pl.UTF-8
314Pliki nagłówkowe ffmpeg.
af49d6ab
JB
315
316%package static
317Summary: ffmpeg static libraries
adcc0f76 318Summary(pl.UTF-8): Statyczne biblioteki ffmpeg
af49d6ab
JB
319Group: Development/Libraries
320Requires: %{name}-devel = %{version}-%{release}
321
322%description static
323ffmpeg static libraries (libavcodec and libavformat).
324
cdb7b42e 325%description static -l pl.UTF-8
af49d6ab
JB
326Statyczne biblioteki ffmpeg (libavcodec i libavformat).
327
2a60eebe
JB
328%package ffplay
329Summary: FFplay - SDL-based media player
adcc0f76 330Summary(pl.UTF-8): FFplay - odtwarzacz mediów oparty na SDL
2a60eebe 331Group: Applications/Multimedia
54ec280e 332Requires: %{name}-libs = %{version}-%{release}
2a60eebe
JB
333
334%description ffplay
335FFplay is a very simple and portable media player using the FFmpeg
336libraries and the SDL library. It is mostly used as a test bench for
337the various APIs of FFmpeg.
338
cdb7b42e
JR
339%description ffplay -l pl.UTF-8
340FFplay to bardzo prosty i przenośny odtwarzacz mediów używający
341bibliotek FFmpeg oraz biblioteki SDL. Jest używany głównie do
342testowania różnych API FFmpeg.
2a60eebe 343
fde29260
ER
344%package ffserver
345Summary: FFserver video server
adcc0f76 346Summary(pl.UTF-8): FFserver - serwer strumieni obrazu
fde29260 347Group: Daemons
593d3a64 348Requires(post,preun): /sbin/chkconfig
67103923 349Requires: %{name}-libs = %{version}-%{release}
2305d791 350Requires: rc-scripts >= 0.4.0.10
fde29260
ER
351
352%description ffserver
353FFserver is a streaming server for both audio and video. It supports
354several live feeds, streaming from files and time shifting on live
355feeds (you can seek to positions in the past on each live feed,
356provided you specify a big enough feed storage in ffserver.conf).
357
cdb7b42e
JR
358%description ffserver -l pl.UTF-8
359FFserver to serwer strumieni dla dźwięku i obrazu. Obsługuje kilka
360źródeł na żywo, przekazywanie strumieni z plików i przesuwanie w
361czasie dla źródeł na żywo (można przeskakiwać na położenia w
362przeszłości dla każdego źródła na żywo, pod warunkiem odpowiednio
363dużej przestrzeni na dane skonfigurowanej w ffserver.conf).
4e0bd1da 364
4b05ede1 365%package doc
143c6eec
JB
366Summary: FFmpeg documentation in HTML format
367Summary(pl.UTF-8): Dokumentacja pakietu FFmpeg w formacie HTML
4b05ede1
ER
368Group: Documentation
369%if "%{_rpmversion}" >= "5"
370BuildArch: noarch
371%endif
372
373%description doc
143c6eec 374FFmpeg documentation in HTML format.
4b05ede1
ER
375
376%description doc -l pl.UTF-8
143c6eec 377Dokumentacja pakietu FFmpeg w formacie HTML.
4b05ede1 378
9fc4ad22 379%prep
aed8e8c9 380%setup -q
92ced02f 381%patch0 -p1
9fc4ad22 382
9d4f8977
ER
383# package the grep result for mplayer, the result formatted as ./mplayer/configure
384cat <<EOF > ffmpeg-avconfig
2b2445b7 385#! /bin/sh
16803cdb
ER
386libavdecoders_all="$(sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
387libavencoders_all="$(sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
388libavparsers_all="$(sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
389libavbsfs_all="$(sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
390libavdemuxers_all="$(sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')"
391libavmuxers_all="$(sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')"
392libavprotocols_all="$(sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')"
393libavhwaccels_all="$(sed -n 's/^[^#]*HWACCEL.*(.*, *\(.*\)).*/\1_hwaccel/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
394libavfilters_all="$(sed -n 's/^[^#]*FILTER.*(.*, *\(.*\),.*).*/\1_filter/p' libavfilter/allfilters.c | tr '[a-z]' '[A-Z]')"
2b2445b7 395EOF
9d4f8977 396cat <<'EOF' >> ffmpeg-avconfig
2b2445b7
ER
397
398case "$1" in
399--decoders)
16803cdb 400 echo $libavdecoders_all
2b2445b7
ER
401 ;;
402--encoders)
16803cdb 403 echo $libavencoders_all
2b2445b7
ER
404 ;;
405--parsers)
16803cdb 406 echo $libavparsers_all
2b2445b7
ER
407 ;;
408--bsfs)
16803cdb 409 echo $libavbsfs_all
2b2445b7
ER
410 ;;
411--demuxers)
16803cdb 412 echo $libavdemuxers_all
2b2445b7
ER
413 ;;
414--muxers)
16803cdb 415 echo $libavmuxers_all
2b2445b7
ER
416 ;;
417--protocols)
16803cdb
ER
418 echo $libavprotocols_all
419 ;;
420--hwaccels)
421 echo $libavhwaccels_all
422 ;;
423--filters)
424 echo $libavfilters_all
2b2445b7
ER
425 ;;
426*)
427 cat <<USAGE
428Usage: $0 [OPTION]
429Options:
430 --decoders
431 --encoders
432 --parsers
433 --bsfs
434 --demuxers
435 --muxers
436 --protocols
16803cdb
ER
437 --hwaccels
438 --filters
2b2445b7
ER
439USAGE
440 exit 1;;
441esac
442
443exit 0
444EOF
445
9fc4ad22 446%build
05e1eb2f
JB
447# notes:
448# - it's not autoconf configure
d0a0ec26 449# - --disable-debug, --disable-optimizations, tune=generic causes not to override our optflags
2080d1d3 450./configure \
b4680d0b 451 --arch=%{_target_base_arch} \
539b540f 452 --prefix=%{_prefix} \
9cf4d8a4 453 --libdir=%{_libdir} \
d81dfa95 454 --shlibdir=%{_libdir} \
2a60eebe 455 --mandir=%{_mandir} \
f6f5022a 456 --extra-cflags="-D_GNU_SOURCE=1 %{rpmcppflags} %{rpmcflags}%{?with_decklink: -I/usr/include/decklink}" \
1162803a 457 --extra-ldflags="%{rpmcflags} %{rpmldflags}" \
3eef5ddf 458 --cc="%{__cc}" \
126fb805
JB
459 --disable-debug \
460 --disable-optimizations \
6382c99d 461 --disable-stripping \
eaa9ad7b 462 %{!?with_doc:--disable-doc} \
314ef0df 463 --enable-avfilter \
0797daec 464 --enable-avresample \
0fdde3cc 465 %{?with_chromaprint:--enable-chromaprint} \
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 \
1c1d1368 480 %{?with_flite:--enable-libflite} \
3dcb8642 481 --enable-libfreetype \
4474c07d 482 %{?with_fribidi:--enable-libfribidi} \
22745365 483 %{?with_gme:--enable-libgme} \
f3692243 484 --enable-libgsm \
1c1d1368 485 --enable-libiec61883 \
004e5628 486 %{?with_ilbc:--enable-libilbc} \
7160e157 487 %{?with_kvazaar:--enable-libkvazaar} \
0258feb8 488 %{?with_mfx:--enable-libmfx} \
d5aef92e 489 --enable-libmodplug \
15c15700 490 --enable-libmp3lame \
4a927f9d 491 --enable-libnut \
cbdd2688
JB
492 --enable-libopencore-amrnb \
493 --enable-libopencore-amrwb \
192f9f57 494 %{?with_opencv:--enable-libopencv} \
0258feb8 495 %{?with_openh264:--enable-libopenh264} \
cbdd2688 496 --enable-libopenjpeg \
1c1d1368 497 --enable-libopus \
d5aef92e 498 %{?with_pulseaudio:--enable-libpulse} \
cbdd2688 499 --enable-librtmp \
0fdde3cc 500 %{?with_rubberband:--enable-librubberband} \
126fb805 501 --enable-libschroedinger \
f56b6dce 502 %{?with_shine:--enable-libshine} \
4474c07d 503 %{?with_smb:--enable-libsmbclient} \
7160e157 504 %{?with_snappy:--enable-libsnappy} \
05408820 505 %{?with_soxr:--enable-libsoxr} \
da99dcf2 506 --enable-libspeex \
5f3dc7d9 507 %{?with_ssh:--enable-libssh} \
e5c1d36e 508 %{?with_tesseract:--enable-libtesseract} \
126fb805 509 --enable-libtheora \
1c1d1368 510 --enable-libtwolame \
d5aef92e 511 --enable-libv4l2 \
f56b6dce 512 %{?with_vidstab:--enable-libvidstab} \
5dc039cb 513 --enable-libvo-amrwbenc \
126fb805 514 --enable-libvorbis \
64f8f109 515 %{?with_vpx:--enable-libvpx} \
22745365 516 %{?with_wavpack:--enable-libwavpack} \
8b9d2787 517 %{?with_webp:--enable-libwebp} \
ea09f25d 518 %{?with_x264:--enable-libx264} \
90ab353a 519 %{?with_x265:--enable-libx265} \
5dc039cb 520 --enable-libxavs \
126fb805 521 --enable-libxvid \
e5c1d36e 522 %{?with_zimg:--enable-libzimg} \
6a6b11be 523 %{?with_zmq:--enable-libzmq} \
5f3dc7d9 524 %{?with_zvbi:--enable-libzvbi} \
d5aef92e 525 %{?with_openal:--enable-openal} \
f56b6dce 526 %{?with_opencl:--enable-opencl} \
8b9d2787 527 %{?with_opengl:--enable-opengl} \
6382c99d 528 --enable-postproc \
d7493de8 529 --enable-pthreads \
9cf4d8a4 530 --enable-shared \
6382c99d 531 --enable-swscale \
22745365 532 %{!?with_va:--disable-vaapi} \
75231f25 533 --enable-x11grab \
7a286645 534%ifnarch %{ix86} %{x8664}
e1fe03f7 535 --disable-mmx \
536%endif
537%ifarch i386 i486
05e1eb2f 538 --disable-mmx \
b524cd99 539%endif
61f81a23
JR
540%ifarch x32
541 --disable-asm \
542%endif
0b43f655 543%if %{with nonfree}
48610c64 544 --enable-nonfree \
c8f42fb1
ER
545 %{?with_faac:--enable-libfaac} \
546 %{?with_fdk_aac:--enable-libfdk-aac} \
547 %{?with_nvenc:--enable-nvenc} \
76243dbd 548%endif
75231f25 549 --enable-runtime-cpudetect
2305d791 550
1ef27ea1
JB
551%{__make} \
552 V=1
9fc4ad22 553
b8c60172
ER
554# CC_O to add -c to commandline. makefile should be patched
555%{__make} tools/qt-faststart V=1 CC_O='-c -o $@'
556
39711f7c
AM
557%{?with_tests:%{__make} check V=1}
558
9fc4ad22
AM
559%install
560rm -rf $RPM_BUILD_ROOT
38cf6de3 561install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_sbindir},/etc/{sysconfig,rc.d/init.d}} \
38baa0f1 562 $RPM_BUILD_ROOT%{_includedir}/ffmpeg \
38cf6de3 563 $RPM_BUILD_ROOT/var/{cache,log}/ffserver
9fc4ad22 564
a831ce58 565%{__make} install install-headers \
1ef27ea1
JB
566 DESTDIR=$RPM_BUILD_ROOT \
567 V=1
539b540f 568
a831ce58 569# install nonstandard, non-public headers manually
544421b2 570cp -a config.h $RPM_BUILD_ROOT%{_includedir}/ffmpeg
80428ade 571for a in libavutil/*/{asm,bswap}.h; do
a831ce58 572 install -Dp $a $RPM_BUILD_ROOT%{_includedir}/$a
544421b2 573done
9d4f8977 574cp -a libavformat/riff.h $RPM_BUILD_ROOT%{_includedir}/libavformat
980e7aa8
JB
575# for lim-omx ffmpeg components
576cp -a libavcodec/audioconvert.h $RPM_BUILD_ROOT%{_includedir}/libavcodec
544421b2 577
b8c60172
ER
578install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/ffserver
579cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/ffserver
580cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/ffserver.conf
539b540f 581mv -f $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/ffserver
b8c60172 582install -p tools/qt-faststart $RPM_BUILD_ROOT%{_bindir}
9fc4ad22 583
2b2445b7
ER
584# install as ffmpeg-avconfig to avoid with possible programs looking for
585# ffmpeg-config and expecting --libs output from it which is not implemented
586# simple to do (by querying pkgconfig), but why?
b8c60172 587install -p ffmpeg-avconfig $RPM_BUILD_ROOT%{_bindir}/ffmpeg-avconfig
2b2445b7 588
a6755e78 589# packaged as %doc in -doc
eaa9ad7b 590%if %{with doc}
a6755e78 591%{__rm} $RPM_BUILD_ROOT%{_docdir}/ffmpeg/*.html
eaa9ad7b 592%endif
a6755e78
JB
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.*.*.*
bd64dc4c 651%attr(755,root,root) %ghost %{_libdir}/libavcodec.so.57
d0a0ec26 652%attr(755,root,root) %{_libdir}/libavdevice.so.*.*.*
bd64dc4c 653%attr(755,root,root) %ghost %{_libdir}/libavdevice.so.57
314ef0df 654%attr(755,root,root) %{_libdir}/libavfilter.so.*.*.*
bd64dc4c 655%attr(755,root,root) %ghost %{_libdir}/libavfilter.so.6
f50f7d7c 656%attr(755,root,root) %{_libdir}/libavformat.so.*.*.*
bd64dc4c 657%attr(755,root,root) %ghost %{_libdir}/libavformat.so.57
5663f846 658%attr(755,root,root) %{_libdir}/libavresample.so.*.*.*
bd64dc4c 659%attr(755,root,root) %ghost %{_libdir}/libavresample.so.3
f50f7d7c 660%attr(755,root,root) %{_libdir}/libavutil.so.*.*.*
bd64dc4c 661%attr(755,root,root) %ghost %{_libdir}/libavutil.so.55
d7493de8 662%attr(755,root,root) %{_libdir}/libpostproc.so.*.*.*
bd64dc4c 663%attr(755,root,root) %ghost %{_libdir}/libpostproc.so.54
660918c5 664%attr(755,root,root) %{_libdir}/libswresample.so.*.*.*
bd64dc4c 665%attr(755,root,root) %ghost %{_libdir}/libswresample.so.2
ee032235 666%attr(755,root,root) %{_libdir}/libswscale.so.*.*.*
bd64dc4c 667%attr(755,root,root) %ghost %{_libdir}/libswscale.so.4
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.281402 seconds and 4 git commands to generate.