]>
Commit | Line | Data |
---|---|---|
1 | # TODO: libzmq ? | |
2 | # | |
3 | # How to deal with ffmpeg/opencv checken-egg problem: | |
4 | # 1. make-request -r --without opencv ffmpeg.spec | |
5 | # 2. make-request -r opencv.spec | |
6 | # 3. bump release of ffmpeg.spec | |
7 | # 4. make-request -r ffmpeg.spec | |
8 | # | |
9 | # Conditional build: | |
10 | %bcond_with nonfree # non free options of package (currently: faac) | |
11 | %bcond_with aacplus # AAC+ encoding via libaacplus (requires nonfree) | |
12 | %bcond_with fdk_aac # AAC de/encoding via libfdk_aac (requires nonfree) | |
13 | %bcond_without caca # textual display using libcaca | |
14 | %bcond_without flite # flite voice synthesis support | |
15 | %bcond_without frei0r # frei0r video filtering | |
16 | %bcond_without gme # Game Music Emu support | |
17 | %bcond_without ilbc # iLBC de/encoding via WebRTC libilbc | |
18 | %bcond_without ladspa # LADSPA audio filtering | |
19 | %bcond_without ssh # SFTP protocol support via libssh | |
20 | %bcond_without openal # OpenAL 1.1 capture support | |
21 | %bcond_with opencl # OpenCL code [OpenCL 1.2, but Mesa 9.1.x headers don't suffice] | |
22 | %bcond_without opencv # OpenCV video filtering | |
23 | %bcond_without pulseaudio # PulseAudio input support | |
24 | %bcond_without quvi # quvi input support | |
25 | %bcond_without shine # shine fixed-point MP3 encoder | |
26 | %bcond_without soxr # SoX Resampler support | |
27 | %bcond_without x264 # x264 encoder | |
28 | %bcond_without utvideo # Ut Video decoder | |
29 | %bcond_without va # VAAPI (Video Acceleration API) | |
30 | %bcond_without vidstab # vid.stab video stabilization support | |
31 | %bcond_without vpx # VP8, a high-quality video codec | |
32 | %bcond_without wavpack # wavpack encoding support | |
33 | %bcond_without zmq # 0MQ message passing | |
34 | %bcond_without zvbi # teletext via libzvbi | |
35 | %bcond_without doc # don't build docs | |
36 | ||
37 | Summary: FFmpeg - a very fast video and audio converter | |
38 | Summary(pl.UTF-8): FFmpeg - szybki konwerter audio/wideo | |
39 | Name: ffmpeg | |
40 | Version: 2.1.1 | |
41 | Release: 2.1 | |
42 | # LGPL or GPL, chosen at configure time (GPL version is more featured) | |
43 | # (postprocessing, some filters, x264, xavs, xvid, x11grab) | |
44 | # using v3 allows Apache-licensed libs (opencore-amr, libvo-*enc) | |
45 | License: GPL v3+ with LGPL v3+ parts | |
46 | Group: Applications/Multimedia | |
47 | Source0: http://ffmpeg.org/releases/%{name}-%{version}.tar.bz2 | |
48 | # Source0-md5: 2719ab2b3311ac3775b9cdeb66c54849 | |
49 | Source1: ffserver.init | |
50 | Source2: ffserver.sysconfig | |
51 | Source3: ffserver.conf | |
52 | Patch0: %{name}-opencv24.patch | |
53 | URL: http://www.ffmpeg.org/ | |
54 | %{?with_openal:BuildRequires: OpenAL-devel >= 1.1} | |
55 | %{?with_opencl:BuildRequires: OpenCL-devel >= 1.2} | |
56 | BuildRequires: SDL-devel >= 1.2.1 | |
57 | BuildRequires: alsa-lib-devel | |
58 | BuildRequires: bzip2-devel | |
59 | BuildRequires: celt-devel >= 0.11.0 | |
60 | %{?with_nonfree:BuildRequires: faac-devel} | |
61 | %{?with_fdk_aac:BuildRequires: fdk-aac-devel} | |
62 | %{?with_flite:BuildRequires: flite-devel >= 1.4} | |
63 | BuildRequires: fontconfig-devel | |
64 | BuildRequires: freetype-devel | |
65 | %{?with_frei0r:BuildRequires: frei0r-devel} | |
66 | %{?with_gme:BuildRequires: game-music-emu-devel} | |
67 | %ifarch ppc | |
68 | # require version with altivec support fixed | |
69 | BuildRequires: gcc >= 5:3.3.2-3 | |
70 | %endif | |
71 | BuildRequires: gnutls-devel | |
72 | BuildRequires: jack-audio-connection-kit-devel | |
73 | %{?with_ladspa:BuildRequires: ladspa-devel} | |
74 | BuildRequires: lame-libs-devel >= 3.98.3 | |
75 | %{?with_aacplus:BuildRequires: libaacplus-devel >= 2.0.0} | |
76 | BuildRequires: libass-devel | |
77 | BuildRequires: libavc1394-devel | |
78 | BuildRequires: libbluray-devel | |
79 | %{?with_caca:BuildRequires: libcaca-devel} | |
80 | BuildRequires: libcdio-paranoia-devel >= 0.90-2 | |
81 | BuildRequires: libdc1394-devel >= 2 | |
82 | BuildRequires: libgsm-devel | |
83 | BuildRequires: libiec61883-devel | |
84 | BuildRequires: libmodplug-devel | |
85 | BuildRequires: libnut-devel | |
86 | %{?with_quvi:BuildRequires: libquvi-devel} | |
87 | BuildRequires: libraw1394-devel >= 2 | |
88 | BuildRequires: librtmp-devel | |
89 | %{?with_ssh:BuildRequires: libssh-devel} | |
90 | BuildRequires: libtheora-devel >= 1.0-0.beta3 | |
91 | BuildRequires: libtool >= 2:1.4d-3 | |
92 | BuildRequires: libv4l-devel | |
93 | %{?with_va:BuildRequires: libva-devel >= 1.0.3} | |
94 | BuildRequires: libvdpau-devel >= 0.2 | |
95 | BuildRequires: libvorbis-devel | |
96 | %{?with_vpx:BuildRequires: libvpx-devel >= 0.9.7} | |
97 | # X264_BUILD >= 118 | |
98 | %{?with_x264:BuildRequires: libx264-devel >= 0.1.3-1.20111212_2245} | |
99 | %ifarch %{ix86} | |
100 | %ifnarch i386 i486 | |
101 | BuildRequires: nasm | |
102 | %endif | |
103 | %endif | |
104 | BuildRequires: opencore-amr-devel | |
105 | %{?with_opencv:BuildRequires: opencv-devel} | |
106 | BuildRequires: openjpeg-devel >= 1.5 | |
107 | BuildRequires: opus-devel | |
108 | BuildRequires: perl-Encode | |
109 | BuildRequires: perl-tools-pod | |
110 | BuildRequires: pkgconfig | |
111 | %{?with_pulseaudio:BuildRequires: pulseaudio-devel} | |
112 | BuildRequires: rpmbuild(macros) >= 1.470 | |
113 | BuildRequires: schroedinger-devel | |
114 | %{?with_shine:BuildRequires: shine-devel >= 3.0.0} | |
115 | %{?with_soxr:BuildRequires: soxr-devel} | |
116 | BuildRequires: speex-devel >= 1:1.2-rc1 | |
117 | %{?with_doc:BuildRequires: tetex} | |
118 | %{?with_doc:BuildRequires: texi2html} | |
119 | %{?with_doc:BuildRequires: texinfo} | |
120 | BuildRequires: twolame-devel | |
121 | %{?with_utvideo:BuildRequires: utvideo-devel >= 12} | |
122 | %{?with_vidstab:BuildRequires: vid.stab-devel} | |
123 | BuildRequires: vo-aacenc-devel | |
124 | BuildRequires: vo-amrwbenc-devel | |
125 | %{?with_wavpack:BuildRequires: wavpack-devel} | |
126 | %{?with_ilbc:BuildRequires: webrtc-libilbc-devel} | |
127 | BuildRequires: xavs-devel | |
128 | BuildRequires: xorg-lib-libX11-devel | |
129 | BuildRequires: xorg-lib-libXext-devel | |
130 | BuildRequires: xorg-lib-libXfixes-devel | |
131 | BuildRequires: xvid-devel >= 1:1.1.0 | |
132 | BuildRequires: yasm | |
133 | %{?with_zmq:BuildRequires: zeromq-devel} | |
134 | %{?with_zvbi:BuildRequires: zvbi-devel} | |
135 | BuildRequires: zlib-devel | |
136 | %{?with_autoreqdep:BuildConflicts: libpostproc} | |
137 | # overflows maximum hash table size | |
138 | BuildConflicts: pdksh < 5.2.14-57 | |
139 | Requires: %{name}-libs = %{version}-%{release} | |
140 | %{?with_utvideo:Requires: utvideo >= 12} | |
141 | %{?with_ilbc:Requires: webrtc-libilbc} | |
142 | Requires: xvid >= 1:1.1.0 | |
143 | Obsoletes: libpostproc | |
144 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) | |
145 | ||
146 | %define _noautoreqdep libGL.so.1 libGLU.so.1 | |
147 | ||
148 | %define specflags -fno-strict-aliasing | |
149 | ||
150 | # -fomit-frame-pointer is always needed on x86 due to lack of registers (-fPIC takes one) | |
151 | %define specflags_ia32 -fomit-frame-pointer | |
152 | # -mmmx is needed to enable <mmintrin.h> code. | |
153 | %define specflags_i586 -mmmx | |
154 | %define specflags_i686 -mmmx | |
155 | %define specflags_ppc -fPIC | |
156 | ||
157 | %description | |
158 | FFmpeg is a complete solution to record, convert and stream audio and | |
159 | video. It is a command line tool to convert one video file format to | |
160 | another. It also supports grabbing and encoding in real time from a TV | |
161 | card. | |
162 | ||
163 | %description -l pl.UTF-8 | |
164 | FFmpeg to kompletne rozwiązanie nagrywania, konwersji i transmisji | |
165 | strumieni dźwięku i obrazu. Jest to działające z linii poleceń | |
166 | narzędzie do konwersji obrazu z jednego formatu do innego. Obsługuje | |
167 | także przechwytywanie i kodowanie w czasie rzeczywistym z karty | |
168 | telewizyjnej. | |
169 | ||
170 | %package libs | |
171 | Summary: ffmpeg libraries | |
172 | Summary(pl.UTF-8): Biblioteki ffmpeg | |
173 | Group: Libraries | |
174 | ||
175 | %description libs | |
176 | This package contains the ffmpeg shared libraries: | |
177 | - the codec library (libavcodec). It supports most existing encoding | |
178 | formats (MPEG, DivX, MPEG4, AC3, DV...), | |
179 | - demuxer library (libavformat). It supports most existing file | |
180 | formats (AVI, MPEG, OGG, Matroska, ASF...), | |
181 | - video postprocessing library (libpostproc). | |
182 | ||
183 | %description libs -l pl.UTF-8 | |
184 | Ten pakiet zawiera biblioteki współdzielone ffmpeg: | |
185 | - bibliotekę kodeków (libavcodec); obsługuje większość istniejących | |
186 | formatów kodowania (MPEG, DivX, MPEG4, AC3, DV...), | |
187 | - bibliotekę demuksera (libavformat); obsługuje większość istniejących | |
188 | formatów plików (AVI, MPEG, OGG, Matroska, ASF...), | |
189 | - bibliotekę postprocessingu (libpostproc). | |
190 | ||
191 | %package devel | |
192 | Summary: ffmpeg header files | |
193 | Summary(pl.UTF-8): Pliki nagłówkowe ffmpeg | |
194 | Group: Development/Libraries | |
195 | Requires: %{name}-libs = %{version}-%{release} | |
196 | # Libs.private from *.pc (unreasonably they are all the same) | |
197 | %{?with_opencl:Requires: OpenCL-devel >= 1.2} | |
198 | Requires: SDL-devel >= 1.2.1 | |
199 | Requires: alsa-lib-devel | |
200 | Requires: bzip2-devel | |
201 | Requires: celt-devel >= 0.11.0 | |
202 | %{?with_nonfree:Requires: faac-devel} | |
203 | %{?with_fdk_aac:Requires: fdk-aac-devel} | |
204 | %{?with_flite:Requires: flite-devel >= 1.4} | |
205 | Requires: fontconfig-devel | |
206 | Requires: freetype-devel | |
207 | %{?with_gme:Requires: game-music-emu-devel} | |
208 | Requires: jack-audio-connection-kit-devel | |
209 | Requires: lame-libs-devel >= 3.98.3 | |
210 | %{?with_aacplus:Requires: libaacplus-devel >= 2.0.0} | |
211 | Requires: libass-devel | |
212 | Requires: libavc1394-devel | |
213 | Requires: libbluray-devel | |
214 | %{?with_caca:Requires: libcaca-devel} | |
215 | Requires: libcdio-paranoia-devel >= 0.90-2 | |
216 | Requires: libdc1394-devel >= 2 | |
217 | Requires: libgsm-devel | |
218 | Requires: libiec61883-devel | |
219 | Requires: libmodplug-devel | |
220 | Requires: libnut-devel | |
221 | %{?with_quvi:Requires: libquvi-devel} | |
222 | Requires: libraw1394-devel >= 2 | |
223 | Requires: librtmp-devel | |
224 | Requires: libtheora-devel >= 1.0-0.beta3 | |
225 | %{?with_va:Requires: libva-devel >= 1.0.3} | |
226 | Requires: libvorbis-devel | |
227 | %{?with_vpx:Requires: libvpx-devel >= 0.9.7} | |
228 | %{?with_x264:Requires: libx264-devel >= 0.1.3-1.20110625_2245} | |
229 | Requires: opencore-amr-devel | |
230 | %{?with_opencv:Requires: opencv-devel} | |
231 | Requires: openjpeg-devel >= 1.5 | |
232 | Requires: schroedinger-devel | |
233 | %{?with_shine:Requires: shine-devel >= 3.0.0} | |
234 | %{?with_soxr:Requires: soxr-devel} | |
235 | Requires: speex-devel >= 1:1.2-rc1 | |
236 | Requires: twolame-devel | |
237 | %{?with_utvideo:Requires: utvideo-devel >= 12} | |
238 | %{?with_vidstab:Requires: vid.stab-devel} | |
239 | Requires: vo-aacenc-devel | |
240 | Requires: vo-amrwbenc-devel | |
241 | %{?with_wavpack:Requires: wavpack-devel} | |
242 | %{?with_ilbc:Requires: webrtc-libilbc-devel} | |
243 | Requires: xavs-devel | |
244 | Requires: xorg-lib-libXext-devel | |
245 | Requires: xorg-lib-libXfixes-devel | |
246 | Requires: xvid-devel >= 1:1.1.0 | |
247 | %{?with_zmq:Requires: zeromq-devel} | |
248 | Requires: zlib-devel | |
249 | Obsoletes: libpostproc-devel | |
250 | ||
251 | %description devel | |
252 | ffmpeg header files. | |
253 | ||
254 | %description devel -l pl.UTF-8 | |
255 | Pliki nagłówkowe ffmpeg. | |
256 | ||
257 | %package static | |
258 | Summary: ffmpeg static libraries | |
259 | Summary(pl.UTF-8): Statyczne biblioteki ffmpeg | |
260 | Group: Development/Libraries | |
261 | Requires: %{name}-devel = %{version}-%{release} | |
262 | ||
263 | %description static | |
264 | ffmpeg static libraries (libavcodec and libavformat). | |
265 | ||
266 | %description static -l pl.UTF-8 | |
267 | Statyczne biblioteki ffmpeg (libavcodec i libavformat). | |
268 | ||
269 | %package ffplay | |
270 | Summary: FFplay - SDL-based media player | |
271 | Summary(pl.UTF-8): FFplay - odtwarzacz mediów oparty na SDL | |
272 | Group: Applications/Multimedia | |
273 | Requires: %{name}-libs = %{version}-%{release} | |
274 | ||
275 | %description ffplay | |
276 | FFplay is a very simple and portable media player using the FFmpeg | |
277 | libraries and the SDL library. It is mostly used as a test bench for | |
278 | the various APIs of FFmpeg. | |
279 | ||
280 | %description ffplay -l pl.UTF-8 | |
281 | FFplay to bardzo prosty i przenośny odtwarzacz mediów używający | |
282 | bibliotek FFmpeg oraz biblioteki SDL. Jest używany głównie do | |
283 | testowania różnych API FFmpeg. | |
284 | ||
285 | %package ffserver | |
286 | Summary: FFserver video server | |
287 | Summary(pl.UTF-8): FFserver - serwer strumieni obrazu | |
288 | Group: Daemons | |
289 | Requires(post,preun): /sbin/chkconfig | |
290 | Requires: %{name}-libs = %{version}-%{release} | |
291 | Requires: rc-scripts >= 0.4.0.10 | |
292 | ||
293 | %description ffserver | |
294 | FFserver is a streaming server for both audio and video. It supports | |
295 | several live feeds, streaming from files and time shifting on live | |
296 | feeds (you can seek to positions in the past on each live feed, | |
297 | provided you specify a big enough feed storage in ffserver.conf). | |
298 | ||
299 | %description ffserver -l pl.UTF-8 | |
300 | FFserver to serwer strumieni dla dźwięku i obrazu. Obsługuje kilka | |
301 | źródeł na żywo, przekazywanie strumieni z plików i przesuwanie w | |
302 | czasie dla źródeł na żywo (można przeskakiwać na położenia w | |
303 | przeszłości dla każdego źródła na żywo, pod warunkiem odpowiednio | |
304 | dużej przestrzeni na dane skonfigurowanej w ffserver.conf). | |
305 | ||
306 | %package doc | |
307 | Summary: Manual for ffmpeg | |
308 | Summary(fr.UTF-8): Documentation pour ffmpeg | |
309 | Summary(it.UTF-8): Documentazione di ffmpeg | |
310 | Summary(pl.UTF-8): Podręcznik dla ffmpeg | |
311 | Group: Documentation | |
312 | %if "%{_rpmversion}" >= "5" | |
313 | BuildArch: noarch | |
314 | %endif | |
315 | ||
316 | %description doc | |
317 | Documentation for ffmpeg. | |
318 | ||
319 | %description doc -l fr.UTF-8 | |
320 | Documentation pour ffmpeg. | |
321 | ||
322 | %description doc -l it.UTF-8 | |
323 | Documentazione di ffmpeg. | |
324 | ||
325 | %description doc -l pl.UTF-8 | |
326 | Dokumentacja do ffmpeg. | |
327 | ||
328 | %prep | |
329 | %setup -q | |
330 | %patch0 -p1 | |
331 | ||
332 | # package the grep result for mplayer, the result formatted as ./mplayer/configure | |
333 | cat <<EOF > ffmpeg-avconfig | |
334 | #! /bin/sh | |
335 | libavdecoders_all="$(sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')" | |
336 | libavencoders_all="$(sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')" | |
337 | libavparsers_all="$(sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')" | |
338 | libavbsfs_all="$(sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')" | |
339 | libavdemuxers_all="$(sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')" | |
340 | libavmuxers_all="$(sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')" | |
341 | libavprotocols_all="$(sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')" | |
342 | libavhwaccels_all="$(sed -n 's/^[^#]*HWACCEL.*(.*, *\(.*\)).*/\1_hwaccel/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')" | |
343 | libavfilters_all="$(sed -n 's/^[^#]*FILTER.*(.*, *\(.*\),.*).*/\1_filter/p' libavfilter/allfilters.c | tr '[a-z]' '[A-Z]')" | |
344 | EOF | |
345 | cat <<'EOF' >> ffmpeg-avconfig | |
346 | ||
347 | case "$1" in | |
348 | --decoders) | |
349 | echo $libavdecoders_all | |
350 | ;; | |
351 | --encoders) | |
352 | echo $libavencoders_all | |
353 | ;; | |
354 | --parsers) | |
355 | echo $libavparsers_all | |
356 | ;; | |
357 | --bsfs) | |
358 | echo $libavbsfs_all | |
359 | ;; | |
360 | --demuxers) | |
361 | echo $libavdemuxers_all | |
362 | ;; | |
363 | --muxers) | |
364 | echo $libavmuxers_all | |
365 | ;; | |
366 | --protocols) | |
367 | echo $libavprotocols_all | |
368 | ;; | |
369 | --hwaccels) | |
370 | echo $libavhwaccels_all | |
371 | ;; | |
372 | --filters) | |
373 | echo $libavfilters_all | |
374 | ;; | |
375 | *) | |
376 | cat <<USAGE | |
377 | Usage: $0 [OPTION] | |
378 | Options: | |
379 | --decoders | |
380 | --encoders | |
381 | --parsers | |
382 | --bsfs | |
383 | --demuxers | |
384 | --muxers | |
385 | --protocols | |
386 | --hwaccels | |
387 | --filters | |
388 | USAGE | |
389 | exit 1;; | |
390 | esac | |
391 | ||
392 | exit 0 | |
393 | EOF | |
394 | ||
395 | %build | |
396 | # notes: | |
397 | # - it's not autoconf configure | |
398 | # - --disable-debug, --disable-optimizations, tune=generic causes not to override our optflags | |
399 | ./configure \ | |
400 | --arch=%{_target_base_arch} \ | |
401 | --prefix=%{_prefix} \ | |
402 | --libdir=%{_libdir} \ | |
403 | --shlibdir=%{_libdir} \ | |
404 | --mandir=%{_mandir} \ | |
405 | --extra-cflags="-D_GNU_SOURCE=1 %{rpmcppflags} %{rpmcflags}" \ | |
406 | --extra-ldflags="%{rpmcflags} %{rpmldflags}" \ | |
407 | --cc="%{__cc}" \ | |
408 | --disable-debug \ | |
409 | --disable-optimizations \ | |
410 | --disable-stripping \ | |
411 | --enable-avfilter \ | |
412 | --enable-avresample \ | |
413 | --enable-gnutls \ | |
414 | --enable-gpl \ | |
415 | --enable-version3 \ | |
416 | --enable-fontconfig \ | |
417 | %{?with_frei0r:--enable-frei0r} \ | |
418 | %{?with_ladspa:--enable-ladspa} \ | |
419 | %{?with_aacplus:--enable-libaacplus} \ | |
420 | --enable-libass \ | |
421 | --enable-libbluray \ | |
422 | %{?with_caca:--enable-libcaca} \ | |
423 | --enable-libcelt \ | |
424 | --enable-libcdio \ | |
425 | --enable-libdc1394 \ | |
426 | %{?with_fdk_aac:--enable-libfdk-aac} \ | |
427 | %{?with_flite:--enable-libflite} \ | |
428 | --enable-libfreetype \ | |
429 | %{?with_gme:--enable-libgme} \ | |
430 | --enable-libgsm \ | |
431 | --enable-libiec61883 \ | |
432 | %{?with_ilbc:--enable-libilbc} \ | |
433 | --enable-libmodplug \ | |
434 | --enable-libmp3lame \ | |
435 | --enable-libnut \ | |
436 | --enable-libopencore-amrnb \ | |
437 | --enable-libopencore-amrwb \ | |
438 | %{?with_opencv:--enable-libopencv} \ | |
439 | --enable-libopenjpeg \ | |
440 | --enable-libopus \ | |
441 | %{?with_pulseaudio:--enable-libpulse} \ | |
442 | %{?with_quvi:--enable-libquvi} \ | |
443 | --enable-librtmp \ | |
444 | --enable-libschroedinger \ | |
445 | %{?with_shine:--enable-libshine} \ | |
446 | %{?with_soxr:--enable-libsoxr} \ | |
447 | --enable-libspeex \ | |
448 | %{?with_ssh:--enable-libssh} \ | |
449 | --enable-libtheora \ | |
450 | --enable-libtwolame \ | |
451 | %{?with_utvideo:--enable-libutvideo} \ | |
452 | --enable-libv4l2 \ | |
453 | %{?with_vidstab:--enable-libvidstab} \ | |
454 | --enable-libvo-aacenc \ | |
455 | --enable-libvo-amrwbenc \ | |
456 | --enable-libvorbis \ | |
457 | %{?with_vpx:--enable-libvpx} \ | |
458 | %{?with_wavpack:--enable-libwavpack} \ | |
459 | %{?with_x264:--enable-libx264} \ | |
460 | --enable-libxavs \ | |
461 | --enable-libxvid \ | |
462 | %{?with_zmq:--enable-libzmq} \ | |
463 | %{?with_zvbi:--enable-libzvbi} \ | |
464 | %{?with_openal:--enable-openal} \ | |
465 | %{?with_opencl:--enable-opencl} \ | |
466 | --enable-postproc \ | |
467 | --enable-pthreads \ | |
468 | --enable-shared \ | |
469 | --enable-swscale \ | |
470 | %{!?with_va:--disable-vaapi} \ | |
471 | --enable-x11grab \ | |
472 | %ifnarch %{ix86} %{x8664} | |
473 | --disable-mmx \ | |
474 | %endif | |
475 | %ifarch i386 i486 | |
476 | --disable-mmx \ | |
477 | %endif | |
478 | %if %{with nonfree} | |
479 | --enable-nonfree \ | |
480 | --enable-libfaac \ | |
481 | %endif | |
482 | --enable-runtime-cpudetect | |
483 | ||
484 | %{__make} \ | |
485 | V=1 | |
486 | ||
487 | # CC_O to add -c to commandline. makefile should be patched | |
488 | %{__make} tools/qt-faststart V=1 CC_O='-c -o $@' | |
489 | ||
490 | %install | |
491 | rm -rf $RPM_BUILD_ROOT | |
492 | install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_sbindir},/etc/{sysconfig,rc.d/init.d}} \ | |
493 | $RPM_BUILD_ROOT%{_includedir}/ffmpeg \ | |
494 | $RPM_BUILD_ROOT/var/{cache,log}/ffserver | |
495 | ||
496 | %{__make} install install-headers \ | |
497 | DESTDIR=$RPM_BUILD_ROOT \ | |
498 | V=1 | |
499 | ||
500 | # install nonstandard, non-public headers manually | |
501 | cp -a config.h $RPM_BUILD_ROOT%{_includedir}/ffmpeg | |
502 | for a in libavutil/*/bswap.h; do | |
503 | install -Dp $a $RPM_BUILD_ROOT%{_includedir}/$a | |
504 | done | |
505 | cp -a libavformat/riff.h $RPM_BUILD_ROOT%{_includedir}/libavformat | |
506 | # for lim-omx ffmpeg components | |
507 | cp -a libavcodec/audioconvert.h $RPM_BUILD_ROOT%{_includedir}/libavcodec | |
508 | ||
509 | install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/ffserver | |
510 | cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/ffserver | |
511 | cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/ffserver.conf | |
512 | mv -f $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/ffserver | |
513 | install -p tools/qt-faststart $RPM_BUILD_ROOT%{_bindir} | |
514 | ||
515 | # install as ffmpeg-avconfig to avoid with possible programs looking for | |
516 | # ffmpeg-config and expecting --libs output from it which is not implemented | |
517 | # simple to do (by querying pkgconfig), but why? | |
518 | install -p ffmpeg-avconfig $RPM_BUILD_ROOT%{_bindir}/ffmpeg-avconfig | |
519 | ||
520 | %clean | |
521 | rm -rf $RPM_BUILD_ROOT | |
522 | ||
523 | %post libs -p /sbin/ldconfig | |
524 | %postun libs -p /sbin/ldconfig | |
525 | ||
526 | %pre ffserver | |
527 | %groupadd -g 167 ffserver | |
528 | %useradd -g ffserver -u 167 ffserver | |
529 | ||
530 | %post ffserver | |
531 | /sbin/chkconfig --add ffserver | |
532 | %service ffserver restart | |
533 | ||
534 | %preun ffserver | |
535 | if [ "$1" = 0 ]; then | |
536 | %service ffserver stop | |
537 | /sbin/chkconfig --del ffserver | |
538 | fi | |
539 | ||
540 | %postun ffserver | |
541 | if [ "$1" = 0 ]; then | |
542 | %userremove ffserver | |
543 | %groupremove ffserver | |
544 | fi | |
545 | ||
546 | %files | |
547 | %defattr(644,root,root,755) | |
548 | %doc CREDITS LICENSE MAINTAINERS README doc/{APIchanges,RELEASE_NOTES} | |
549 | %attr(755,root,root) %{_bindir}/ffmpeg | |
550 | %attr(755,root,root) %{_bindir}/ffprobe | |
551 | %attr(755,root,root) %{_bindir}/qt-faststart | |
552 | %dir %{_datadir}/ffmpeg | |
553 | %{_datadir}/ffmpeg/*.ffpreset | |
554 | %{_datadir}/ffmpeg/ffprobe.xsd | |
555 | %if %{with doc} | |
556 | %{_mandir}/man1/ffmpeg.1* | |
557 | %{_mandir}/man1/ffmpeg-all.1* | |
558 | %{_mandir}/man1/ffmpeg-bitstream-filters.1* | |
559 | %{_mandir}/man1/ffmpeg-codecs.1* | |
560 | %{_mandir}/man1/ffmpeg-devices.1* | |
561 | %{_mandir}/man1/ffmpeg-filters.1* | |
562 | %{_mandir}/man1/ffmpeg-formats.1* | |
563 | %{_mandir}/man1/ffmpeg-protocols.1* | |
564 | %{_mandir}/man1/ffmpeg-resampler.1* | |
565 | %{_mandir}/man1/ffmpeg-scaler.1* | |
566 | %{_mandir}/man1/ffmpeg-utils.1* | |
567 | %{_mandir}/man1/ffprobe.1* | |
568 | %{_mandir}/man1/ffprobe-all.1* | |
569 | %endif | |
570 | ||
571 | %files libs | |
572 | %defattr(644,root,root,755) | |
573 | %attr(755,root,root) %{_libdir}/libavcodec.so.*.*.* | |
574 | %attr(755,root,root) %ghost %{_libdir}/libavcodec.so.55 | |
575 | %attr(755,root,root) %{_libdir}/libavdevice.so.*.*.* | |
576 | %attr(755,root,root) %ghost %{_libdir}/libavdevice.so.55 | |
577 | %attr(755,root,root) %{_libdir}/libavfilter.so.*.*.* | |
578 | %attr(755,root,root) %ghost %{_libdir}/libavfilter.so.3 | |
579 | %attr(755,root,root) %{_libdir}/libavformat.so.*.*.* | |
580 | %attr(755,root,root) %ghost %{_libdir}/libavformat.so.55 | |
581 | %attr(755,root,root) %{_libdir}/libavresample.so.*.*.* | |
582 | %attr(755,root,root) %ghost %{_libdir}/libavresample.so.1 | |
583 | %attr(755,root,root) %{_libdir}/libavutil.so.*.*.* | |
584 | %attr(755,root,root) %ghost %{_libdir}/libavutil.so.52 | |
585 | %attr(755,root,root) %{_libdir}/libpostproc.so.*.*.* | |
586 | %attr(755,root,root) %ghost %{_libdir}/libpostproc.so.52 | |
587 | %attr(755,root,root) %{_libdir}/libswresample.so.*.*.* | |
588 | %attr(755,root,root) %ghost %{_libdir}/libswresample.so.0 | |
589 | %attr(755,root,root) %{_libdir}/libswscale.so.*.*.* | |
590 | %attr(755,root,root) %ghost %{_libdir}/libswscale.so.2 | |
591 | ||
592 | %files devel | |
593 | %defattr(644,root,root,755) | |
594 | %doc doc/optimization.txt | |
595 | %attr(755,root,root) %{_bindir}/ffmpeg-avconfig | |
596 | %attr(755,root,root) %{_libdir}/libavcodec.so | |
597 | %attr(755,root,root) %{_libdir}/libavdevice.so | |
598 | %attr(755,root,root) %{_libdir}/libavfilter.so | |
599 | %attr(755,root,root) %{_libdir}/libavformat.so | |
600 | %attr(755,root,root) %{_libdir}/libavresample.so | |
601 | %attr(755,root,root) %{_libdir}/libavutil.so | |
602 | %attr(755,root,root) %{_libdir}/libpostproc.so | |
603 | %attr(755,root,root) %{_libdir}/libswresample.so | |
604 | %attr(755,root,root) %{_libdir}/libswscale.so | |
605 | %{_includedir}/ffmpeg | |
606 | %{_includedir}/libavcodec | |
607 | %{_includedir}/libavdevice | |
608 | %{_includedir}/libavfilter | |
609 | %{_includedir}/libavformat | |
610 | %{_includedir}/libavresample | |
611 | %{_includedir}/libavutil | |
612 | %{_includedir}/libpostproc | |
613 | %{_includedir}/libswresample | |
614 | %{_includedir}/libswscale | |
615 | %{_pkgconfigdir}/libavcodec.pc | |
616 | %{_pkgconfigdir}/libavdevice.pc | |
617 | %{_pkgconfigdir}/libavfilter.pc | |
618 | %{_pkgconfigdir}/libavformat.pc | |
619 | %{_pkgconfigdir}/libavresample.pc | |
620 | %{_pkgconfigdir}/libavutil.pc | |
621 | %{_pkgconfigdir}/libpostproc.pc | |
622 | %{_pkgconfigdir}/libswresample.pc | |
623 | %{_pkgconfigdir}/libswscale.pc | |
624 | %if %{with doc} | |
625 | %{_mandir}/man3/libavcodec.3* | |
626 | %{_mandir}/man3/libavdevice.3* | |
627 | %{_mandir}/man3/libavfilter.3* | |
628 | %{_mandir}/man3/libavformat.3* | |
629 | %{_mandir}/man3/libavutil.3* | |
630 | %{_mandir}/man3/libswresample.3* | |
631 | %{_mandir}/man3/libswscale.3* | |
632 | %endif | |
633 | ||
634 | %files static | |
635 | %defattr(644,root,root,755) | |
636 | %{_libdir}/libavcodec.a | |
637 | %{_libdir}/libavdevice.a | |
638 | %{_libdir}/libavfilter.a | |
639 | %{_libdir}/libavformat.a | |
640 | %{_libdir}/libavresample.a | |
641 | %{_libdir}/libavutil.a | |
642 | %{_libdir}/libpostproc.a | |
643 | %{_libdir}/libswresample.a | |
644 | %{_libdir}/libswscale.a | |
645 | ||
646 | %files ffplay | |
647 | %defattr(644,root,root,755) | |
648 | %attr(755,root,root) %{_bindir}/ffplay | |
649 | %if %{with doc} | |
650 | %{_mandir}/man1/ffplay.1* | |
651 | %{_mandir}/man1/ffplay-all.1* | |
652 | %endif | |
653 | ||
654 | %files ffserver | |
655 | %defattr(644,root,root,755) | |
656 | %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ffserver.conf | |
657 | %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/ffserver | |
658 | %attr(755,root,root) %{_sbindir}/ffserver | |
659 | %attr(754,root,root) /etc/rc.d/init.d/ffserver | |
660 | %if %{with doc} | |
661 | %{_mandir}/man1/ffserver.1* | |
662 | %{_mandir}/man1/ffserver-all.1* | |
663 | %endif | |
664 | %dir %attr(770,root,ffserver) /var/cache/ffserver | |
665 | %dir %attr(770,root,ffserver) /var/log/ffserver | |
666 | ||
667 | %if %{with doc} | |
668 | %files doc | |
669 | %defattr(644,root,root,755) | |
670 | %doc doc/*.html | |
671 | %endif |