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