]> git.pld-linux.org Git - packages/ffmpeg.git/blame - ffmpeg.spec
zimg runtime dep moved to -libs with bcond condition
[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
1913be3c
JP
67Version: 3.3.2
68Release: 1
9cf4d8a4 69# LGPL or GPL, chosen at configure time (GPL version is more featured)
1913be3c 70# (postprocessing, some filters, x264, x265, xavs, xvid, xcbgrab)
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
1913be3c 75# Source0-md5: d6c09c84e3d0d9ca8a51f481da660603
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}
1913be3c 176%{?with_zimg:BuildRequires: zimg-devel >= 2.3.0}
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}
a0f2ba02 222%{?with_zimg:Requires: zimg >= 2.3.0}
54ec280e
PG
223
224%description libs
cbdd2688
JB
225This package contains the ffmpeg shared libraries:
226- the codec library (libavcodec). It supports most existing encoding
227 formats (MPEG, DivX, MPEG4, AC3, DV...),
228- demuxer library (libavformat). It supports most existing file
229 formats (AVI, MPEG, OGG, Matroska, ASF...),
230- video postprocessing library (libpostproc).
54ec280e 231
cdb7b42e 232%description libs -l pl.UTF-8
cbdd2688
JB
233Ten pakiet zawiera biblioteki współdzielone ffmpeg:
234- bibliotekę kodeków (libavcodec); obsługuje większość istniejących
235 formatów kodowania (MPEG, DivX, MPEG4, AC3, DV...),
236- bibliotekę demuksera (libavformat); obsługuje większość istniejących
237 formatów plików (AVI, MPEG, OGG, Matroska, ASF...),
238- bibliotekę postprocessingu (libpostproc).
54ec280e 239
af49d6ab
JB
240%package devel
241Summary: ffmpeg header files
adcc0f76 242Summary(pl.UTF-8): Pliki nagłówkowe ffmpeg
af49d6ab 243Group: Development/Libraries
54ec280e 244Requires: %{name}-libs = %{version}-%{release}
38cefaee 245# Libs.private from *.pc (unreasonably they are all the same)
6a6b11be 246%{?with_opencl:Requires: OpenCL-devel >= 1.2}
f6f5022a 247%{?with_opengl:Requires: OpenGL-devel}
3dcb8642 248Requires: SDL-devel >= 1.2.1
38cefaee
JB
249Requires: alsa-lib-devel
250Requires: bzip2-devel
9c4296c2 251Requires: celt-devel >= 0.11.0
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}
1913be3c 306%{?with_zimg:Requires: zimg-devel >= 2.3.0}
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
9fc4ad22 381
9d4f8977
ER
382# package the grep result for mplayer, the result formatted as ./mplayer/configure
383cat <<EOF > ffmpeg-avconfig
2b2445b7 384#! /bin/sh
16803cdb
ER
385libavdecoders_all="$(sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
386libavencoders_all="$(sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
387libavparsers_all="$(sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
388libavbsfs_all="$(sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
389libavdemuxers_all="$(sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')"
390libavmuxers_all="$(sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')"
391libavprotocols_all="$(sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')"
392libavhwaccels_all="$(sed -n 's/^[^#]*HWACCEL.*(.*, *\(.*\)).*/\1_hwaccel/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
393libavfilters_all="$(sed -n 's/^[^#]*FILTER.*(.*, *\(.*\),.*).*/\1_filter/p' libavfilter/allfilters.c | tr '[a-z]' '[A-Z]')"
2b2445b7 394EOF
9d4f8977 395cat <<'EOF' >> ffmpeg-avconfig
2b2445b7
ER
396
397case "$1" in
398--decoders)
16803cdb 399 echo $libavdecoders_all
2b2445b7
ER
400 ;;
401--encoders)
16803cdb 402 echo $libavencoders_all
2b2445b7
ER
403 ;;
404--parsers)
16803cdb 405 echo $libavparsers_all
2b2445b7
ER
406 ;;
407--bsfs)
16803cdb 408 echo $libavbsfs_all
2b2445b7
ER
409 ;;
410--demuxers)
16803cdb 411 echo $libavdemuxers_all
2b2445b7
ER
412 ;;
413--muxers)
16803cdb 414 echo $libavmuxers_all
2b2445b7
ER
415 ;;
416--protocols)
16803cdb
ER
417 echo $libavprotocols_all
418 ;;
419--hwaccels)
420 echo $libavhwaccels_all
421 ;;
422--filters)
423 echo $libavfilters_all
2b2445b7
ER
424 ;;
425*)
426 cat <<USAGE
427Usage: $0 [OPTION]
428Options:
429 --decoders
430 --encoders
431 --parsers
432 --bsfs
433 --demuxers
434 --muxers
435 --protocols
16803cdb
ER
436 --hwaccels
437 --filters
2b2445b7
ER
438USAGE
439 exit 1;;
440esac
441
442exit 0
443EOF
444
9fc4ad22 445%build
05e1eb2f
JB
446# notes:
447# - it's not autoconf configure
d0a0ec26 448# - --disable-debug, --disable-optimizations, tune=generic causes not to override our optflags
2080d1d3 449./configure \
b4680d0b 450 --arch=%{_target_base_arch} \
539b540f 451 --prefix=%{_prefix} \
9cf4d8a4 452 --libdir=%{_libdir} \
d81dfa95 453 --shlibdir=%{_libdir} \
2a60eebe 454 --mandir=%{_mandir} \
f6f5022a 455 --extra-cflags="-D_GNU_SOURCE=1 %{rpmcppflags} %{rpmcflags}%{?with_decklink: -I/usr/include/decklink}" \
1162803a 456 --extra-ldflags="%{rpmcflags} %{rpmldflags}" \
3eef5ddf 457 --cc="%{__cc}" \
126fb805
JB
458 --disable-debug \
459 --disable-optimizations \
6382c99d 460 --disable-stripping \
eaa9ad7b 461 %{!?with_doc:--disable-doc} \
314ef0df 462 --enable-avfilter \
0797daec 463 --enable-avresample \
0fdde3cc 464 %{?with_chromaprint:--enable-chromaprint} \
f6f5022a 465 %{?with_decklink:--enable-decklink} \
d5aef92e 466 --enable-gnutls \
126fb805 467 --enable-gpl \
0b43f655 468 --enable-version3 \
3dcb8642 469 --enable-fontconfig \
d7a39558 470 %{?with_frei0r:--enable-frei0r} \
5f3dc7d9 471 %{?with_ladspa:--enable-ladspa} \
d5aef92e 472 --enable-libass \
3dcb8642 473 --enable-libbluray \
4474c07d 474 %{?with_bs2b:--enable-libbs2b} \
2362253d 475 %{?with_caca:--enable-libcaca} \
cbdd2688 476 --enable-libcelt \
d5aef92e
JB
477 --enable-libcdio \
478 --enable-libdc1394 \
1c1d1368 479 %{?with_flite:--enable-libflite} \
3dcb8642 480 --enable-libfreetype \
4474c07d 481 %{?with_fribidi:--enable-libfribidi} \
22745365 482 %{?with_gme:--enable-libgme} \
f3692243 483 --enable-libgsm \
1c1d1368 484 --enable-libiec61883 \
004e5628 485 %{?with_ilbc:--enable-libilbc} \
7160e157 486 %{?with_kvazaar:--enable-libkvazaar} \
0258feb8 487 %{?with_mfx:--enable-libmfx} \
d5aef92e 488 --enable-libmodplug \
15c15700 489 --enable-libmp3lame \
4a927f9d 490 --enable-libnut \
cbdd2688
JB
491 --enable-libopencore-amrnb \
492 --enable-libopencore-amrwb \
192f9f57 493 %{?with_opencv:--enable-libopencv} \
0258feb8 494 %{?with_openh264:--enable-libopenh264} \
cbdd2688 495 --enable-libopenjpeg \
1c1d1368 496 --enable-libopus \
d5aef92e 497 %{?with_pulseaudio:--enable-libpulse} \
cbdd2688 498 --enable-librtmp \
0fdde3cc 499 %{?with_rubberband:--enable-librubberband} \
126fb805 500 --enable-libschroedinger \
f56b6dce 501 %{?with_shine:--enable-libshine} \
4474c07d 502 %{?with_smb:--enable-libsmbclient} \
7160e157 503 %{?with_snappy:--enable-libsnappy} \
05408820 504 %{?with_soxr:--enable-libsoxr} \
da99dcf2 505 --enable-libspeex \
5f3dc7d9 506 %{?with_ssh:--enable-libssh} \
e5c1d36e 507 %{?with_tesseract:--enable-libtesseract} \
126fb805 508 --enable-libtheora \
1c1d1368 509 --enable-libtwolame \
d5aef92e 510 --enable-libv4l2 \
f56b6dce 511 %{?with_vidstab:--enable-libvidstab} \
5dc039cb 512 --enable-libvo-amrwbenc \
126fb805 513 --enable-libvorbis \
64f8f109 514 %{?with_vpx:--enable-libvpx} \
22745365 515 %{?with_wavpack:--enable-libwavpack} \
8b9d2787 516 %{?with_webp:--enable-libwebp} \
ea09f25d 517 %{?with_x264:--enable-libx264} \
90ab353a 518 %{?with_x265:--enable-libx265} \
5dc039cb 519 --enable-libxavs \
126fb805 520 --enable-libxvid \
e5c1d36e 521 %{?with_zimg:--enable-libzimg} \
6a6b11be 522 %{?with_zmq:--enable-libzmq} \
5f3dc7d9 523 %{?with_zvbi:--enable-libzvbi} \
d5aef92e 524 %{?with_openal:--enable-openal} \
f56b6dce 525 %{?with_opencl:--enable-opencl} \
8b9d2787 526 %{?with_opengl:--enable-opengl} \
6382c99d 527 --enable-postproc \
d7493de8 528 --enable-pthreads \
9cf4d8a4 529 --enable-shared \
6382c99d 530 --enable-swscale \
22745365 531 %{!?with_va:--disable-vaapi} \
1913be3c 532 --enable-libxcb \
7a286645 533%ifnarch %{ix86} %{x8664}
e1fe03f7 534 --disable-mmx \
535%endif
536%ifarch i386 i486
05e1eb2f 537 --disable-mmx \
b524cd99 538%endif
61f81a23
JR
539%ifarch x32
540 --disable-asm \
541%endif
0b43f655 542%if %{with nonfree}
48610c64 543 --enable-nonfree \
c8f42fb1
ER
544 %{?with_faac:--enable-libfaac} \
545 %{?with_fdk_aac:--enable-libfdk-aac} \
546 %{?with_nvenc:--enable-nvenc} \
76243dbd 547%endif
75231f25 548 --enable-runtime-cpudetect
2305d791 549
1ef27ea1
JB
550%{__make} \
551 V=1
9fc4ad22 552
b8c60172
ER
553# CC_O to add -c to commandline. makefile should be patched
554%{__make} tools/qt-faststart V=1 CC_O='-c -o $@'
555
39711f7c
AM
556%{?with_tests:%{__make} check V=1}
557
9fc4ad22
AM
558%install
559rm -rf $RPM_BUILD_ROOT
38cf6de3 560install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_sbindir},/etc/{sysconfig,rc.d/init.d}} \
38baa0f1 561 $RPM_BUILD_ROOT%{_includedir}/ffmpeg \
38cf6de3 562 $RPM_BUILD_ROOT/var/{cache,log}/ffserver
9fc4ad22 563
a831ce58 564%{__make} install install-headers \
1ef27ea1
JB
565 DESTDIR=$RPM_BUILD_ROOT \
566 V=1
539b540f 567
a831ce58 568# install nonstandard, non-public headers manually
544421b2 569cp -a config.h $RPM_BUILD_ROOT%{_includedir}/ffmpeg
80428ade 570for a in libavutil/*/{asm,bswap}.h; do
a831ce58 571 install -Dp $a $RPM_BUILD_ROOT%{_includedir}/$a
544421b2 572done
9d4f8977 573cp -a libavformat/riff.h $RPM_BUILD_ROOT%{_includedir}/libavformat
980e7aa8
JB
574# for lim-omx ffmpeg components
575cp -a libavcodec/audioconvert.h $RPM_BUILD_ROOT%{_includedir}/libavcodec
544421b2 576
b8c60172
ER
577install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/ffserver
578cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/ffserver
579cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/ffserver.conf
539b540f 580mv -f $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/ffserver
b8c60172 581install -p tools/qt-faststart $RPM_BUILD_ROOT%{_bindir}
9fc4ad22 582
2b2445b7
ER
583# install as ffmpeg-avconfig to avoid with possible programs looking for
584# ffmpeg-config and expecting --libs output from it which is not implemented
585# simple to do (by querying pkgconfig), but why?
b8c60172 586install -p ffmpeg-avconfig $RPM_BUILD_ROOT%{_bindir}/ffmpeg-avconfig
2b2445b7 587
a6755e78 588# packaged as %doc in -doc
eaa9ad7b 589%if %{with doc}
a6755e78 590%{__rm} $RPM_BUILD_ROOT%{_docdir}/ffmpeg/*.html
eaa9ad7b 591%endif
a6755e78
JB
592
593install -d $RPM_BUILD_ROOT%{_examplesdir}
594%{__mv} $RPM_BUILD_ROOT%{_datadir}/ffmpeg/examples $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
595
9fc4ad22
AM
596%clean
597rm -rf $RPM_BUILD_ROOT
598
1ef27ea1
JB
599%post libs -p /sbin/ldconfig
600%postun libs -p /sbin/ldconfig
539b540f 601
38cf6de3
ER
602%pre ffserver
603%groupadd -g 167 ffserver
604%useradd -g ffserver -u 167 ffserver
605
593d3a64
ER
606%post ffserver
607/sbin/chkconfig --add ffserver
608%service ffserver restart
609
38cf6de3 610%preun ffserver
593d3a64
ER
611if [ "$1" = 0 ]; then
612 %service ffserver stop
613 /sbin/chkconfig --del ffserver
614fi
615
38cf6de3
ER
616%postun ffserver
617if [ "$1" = 0 ]; then
618 %userremove ffserver
619 %groupremove ffserver
620fi
621
9fc4ad22
AM
622%files
623%defattr(644,root,root,755)
479e9af6 624%doc CREDITS LICENSE.md MAINTAINERS README.md RELEASE_NOTES doc/APIchanges
2a60eebe 625%attr(755,root,root) %{_bindir}/ffmpeg
3a7b84be 626%attr(755,root,root) %{_bindir}/ffprobe
b7313442 627%attr(755,root,root) %{_bindir}/qt-faststart
da99dcf2
AM
628%dir %{_datadir}/ffmpeg
629%{_datadir}/ffmpeg/*.ffpreset
714dcf83 630%{_datadir}/ffmpeg/ffprobe.xsd
28673856
JB
631%if %{with doc}
632%{_mandir}/man1/ffmpeg.1*
22745365 633%{_mandir}/man1/ffmpeg-all.1*
28673856
JB
634%{_mandir}/man1/ffmpeg-bitstream-filters.1*
635%{_mandir}/man1/ffmpeg-codecs.1*
636%{_mandir}/man1/ffmpeg-devices.1*
637%{_mandir}/man1/ffmpeg-filters.1*
638%{_mandir}/man1/ffmpeg-formats.1*
639%{_mandir}/man1/ffmpeg-protocols.1*
640%{_mandir}/man1/ffmpeg-resampler.1*
641%{_mandir}/man1/ffmpeg-scaler.1*
642%{_mandir}/man1/ffmpeg-utils.1*
643%{_mandir}/man1/ffprobe.1*
22745365 644%{_mandir}/man1/ffprobe-all.1*
28673856 645%endif
54ec280e
PG
646
647%files libs
648%defattr(644,root,root,755)
f50f7d7c 649%attr(755,root,root) %{_libdir}/libavcodec.so.*.*.*
bd64dc4c 650%attr(755,root,root) %ghost %{_libdir}/libavcodec.so.57
d0a0ec26 651%attr(755,root,root) %{_libdir}/libavdevice.so.*.*.*
bd64dc4c 652%attr(755,root,root) %ghost %{_libdir}/libavdevice.so.57
314ef0df 653%attr(755,root,root) %{_libdir}/libavfilter.so.*.*.*
bd64dc4c 654%attr(755,root,root) %ghost %{_libdir}/libavfilter.so.6
f50f7d7c 655%attr(755,root,root) %{_libdir}/libavformat.so.*.*.*
bd64dc4c 656%attr(755,root,root) %ghost %{_libdir}/libavformat.so.57
5663f846 657%attr(755,root,root) %{_libdir}/libavresample.so.*.*.*
bd64dc4c 658%attr(755,root,root) %ghost %{_libdir}/libavresample.so.3
f50f7d7c 659%attr(755,root,root) %{_libdir}/libavutil.so.*.*.*
bd64dc4c 660%attr(755,root,root) %ghost %{_libdir}/libavutil.so.55
d7493de8 661%attr(755,root,root) %{_libdir}/libpostproc.so.*.*.*
bd64dc4c 662%attr(755,root,root) %ghost %{_libdir}/libpostproc.so.54
660918c5 663%attr(755,root,root) %{_libdir}/libswresample.so.*.*.*
bd64dc4c 664%attr(755,root,root) %ghost %{_libdir}/libswresample.so.2
ee032235 665%attr(755,root,root) %{_libdir}/libswscale.so.*.*.*
bd64dc4c 666%attr(755,root,root) %ghost %{_libdir}/libswscale.so.4
314ef0df 667
539b540f
JB
668%files devel
669%defattr(644,root,root,755)
54ec280e 670%doc doc/optimization.txt
1ef27ea1 671%attr(755,root,root) %{_bindir}/ffmpeg-avconfig
539b540f 672%attr(755,root,root) %{_libdir}/libavcodec.so
d0a0ec26 673%attr(755,root,root) %{_libdir}/libavdevice.so
314ef0df 674%attr(755,root,root) %{_libdir}/libavfilter.so
539b540f 675%attr(755,root,root) %{_libdir}/libavformat.so
5663f846 676%attr(755,root,root) %{_libdir}/libavresample.so
d7493de8 677%attr(755,root,root) %{_libdir}/libavutil.so
d2af4612 678%attr(755,root,root) %{_libdir}/libpostproc.so
660918c5 679%attr(755,root,root) %{_libdir}/libswresample.so
ee032235 680%attr(755,root,root) %{_libdir}/libswscale.so
539b540f 681%{_includedir}/ffmpeg
6382c99d
AM
682%{_includedir}/libavcodec
683%{_includedir}/libavdevice
314ef0df 684%{_includedir}/libavfilter
6382c99d 685%{_includedir}/libavformat
5663f846 686%{_includedir}/libavresample
6382c99d
AM
687%{_includedir}/libavutil
688%{_includedir}/libpostproc
660918c5 689%{_includedir}/libswresample
6382c99d 690%{_includedir}/libswscale
1ef27ea1
JB
691%{_pkgconfigdir}/libavcodec.pc
692%{_pkgconfigdir}/libavdevice.pc
693%{_pkgconfigdir}/libavfilter.pc
694%{_pkgconfigdir}/libavformat.pc
5663f846 695%{_pkgconfigdir}/libavresample.pc
1ef27ea1
JB
696%{_pkgconfigdir}/libavutil.pc
697%{_pkgconfigdir}/libpostproc.pc
660918c5 698%{_pkgconfigdir}/libswresample.pc
1ef27ea1 699%{_pkgconfigdir}/libswscale.pc
28673856
JB
700%if %{with doc}
701%{_mandir}/man3/libavcodec.3*
702%{_mandir}/man3/libavdevice.3*
703%{_mandir}/man3/libavfilter.3*
704%{_mandir}/man3/libavformat.3*
705%{_mandir}/man3/libavutil.3*
706%{_mandir}/man3/libswresample.3*
707%{_mandir}/man3/libswscale.3*
708%endif
a6755e78 709%{_examplesdir}/%{name}-%{version}
539b540f 710
9cf4d8a4
JB
711%files static
712%defattr(644,root,root,755)
1ef27ea1
JB
713%{_libdir}/libavcodec.a
714%{_libdir}/libavdevice.a
715%{_libdir}/libavfilter.a
716%{_libdir}/libavformat.a
5663f846 717%{_libdir}/libavresample.a
1ef27ea1
JB
718%{_libdir}/libavutil.a
719%{_libdir}/libpostproc.a
660918c5 720%{_libdir}/libswresample.a
1ef27ea1 721%{_libdir}/libswscale.a
af49d6ab
JB
722
723%files ffplay
724%defattr(644,root,root,755)
725%attr(755,root,root) %{_bindir}/ffplay
22745365
JB
726%if %{with doc}
727%{_mandir}/man1/ffplay.1*
728%{_mandir}/man1/ffplay-all.1*
729%endif
af49d6ab 730
fde29260
ER
731%files ffserver
732%defattr(644,root,root,755)
733%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ffserver.conf
734%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/ffserver
735%attr(755,root,root) %{_sbindir}/ffserver
736%attr(754,root,root) /etc/rc.d/init.d/ffserver
22745365
JB
737%if %{with doc}
738%{_mandir}/man1/ffserver.1*
739%{_mandir}/man1/ffserver-all.1*
740%endif
38cf6de3
ER
741%dir %attr(770,root,ffserver) /var/cache/ffserver
742%dir %attr(770,root,ffserver) /var/log/ffserver
4b05ede1
ER
743
744%if %{with doc}
745%files doc
746%defattr(644,root,root,755)
747%doc doc/*.html
748%endif
This page took 0.238684 seconds and 4 git commands to generate.