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