]> git.pld-linux.org Git - packages/ffmpeg.git/blame - ffmpeg.spec
- up to 20090225
[packages/ffmpeg.git] / ffmpeg.spec
CommitLineData
94447fde 1# TODO
328d1431 2# - libnut enabled no (http://www.nut-container.org/)
197f4211 3#
2b3b2117 4# Conditional build:
48610c64 5%bcond_with amr # 3GPP Adaptive Multi Rate (AMR) codec support; makes package non-distributable
294c9b1e
JB
6%bcond_without autoreqdep # don't care about package name deps generated by rpm
7%bcond_without imlib2 # don't build imlib2 vhook module
874f67c9 8#
da99dcf2 9%define _snap 2009-02-25
2305d791 10%define snap %(echo %{_snap} | tr -d -)
da99dcf2 11%define rel 1
76243dbd 12Summary: Realtime audio/video encoder and streaming server
adcc0f76 13Summary(pl.UTF-8): Koder audio/wideo czasu rzeczywistego oraz serwer strumieni
9fc4ad22 14Name: ffmpeg
c32b589f 15Version: 0.4.9
38baa0f1 16Release: 4.%{snap}.%{rel}
9cf4d8a4 17# LGPL or GPL, chosen at configure time (GPL version is more featured)
48610c64 18# (postprocessing, ac3, xvid, x264, faad)
be868f35 19License: GPL v2+ with LGPL v2.1+ parts
fde29260 20Group: Applications/Multimedia
d7493de8 21#Source0: http://dl.sourceforge.net/ffmpeg/%{name}-%{version}-pre1.tar.gz
2305d791 22Source0: http://ffmpeg.mplayerhq.hu/%{name}-export-snapshot.tar.bz2
da99dcf2 23# Source0-md5: a7649aa1c597ba9bd0e92e42e1a56494
fde29260
ER
24Source1: ffserver.init
25Source2: ffserver.sysconfig
38cf6de3 26Source3: ffserver.conf
da99dcf2 27Patch0: %{name}-x264.patch
d2fa6a1d 28URL: http://ffmpeg.mplayerhq.hu/
2a60eebe 29BuildRequires: SDL-devel
fc8de229 30%if %{with amr}
7e9547bc
JB
31BuildRequires: amrnb-devel >= 6.1.0.4
32BuildRequires: amrwb-devel >= 7.0.0.1
fc8de229 33%endif
7ca51e4c 34BuildRequires: dirac-devel >= 1.0.0
e380e18a 35BuildRequires: faac-devel
b959c224 36BuildRequires: faad2-devel
2a60eebe 37BuildRequires: freetype-devel
4bee03f0
JB
38%ifarch ppc
39# require version with altivec support fixed
40BuildRequires: gcc >= 5:3.3.2-3
41%endif
15c15700 42%{?with_imlib2:BuildRequires: imlib2-devel >= 1.3.0}
e380e18a 43BuildRequires: lame-libs-devel
6382c99d 44BuildRequires: libdc1394-devel
f1669449 45BuildRequires: libgsm-devel
94447fde 46BuildRequires: libraw1394-devel
da99dcf2 47BuildRequires: speex-devel
9042663c 48BuildRequires: libtheora-devel >= 1.0-0.beta3
4814ac84 49BuildRequires: libtool >= 2:1.4d-3
e380e18a 50BuildRequires: libvorbis-devel
1be8f878 51BuildRequires: libx264-devel >= 0.1.2-1.20081023
e1fe03f7 52%ifarch %{ix86}
53%ifnarch i386 i486
76243dbd
JB
54BuildRequires: nasm
55%endif
e1fe03f7 56%endif
1463656a 57BuildRequires: perl-tools-pod
ef3c0513 58BuildRequires: pkgconfig
db8052c8 59BuildRequires: rpmbuild(macros) >= 1.470
126fb805 60BuildRequires: schroedinger-devel
1463656a 61BuildRequires: tetex
9cf4d8a4 62BuildRequires: texinfo
872de59d 63%{?with_amr:BuildRequires: unzip}
46f2a56b 64BuildRequires: xvid-devel >= 1:1.1.0
33a1c0f3 65BuildRequires: zlib-devel
57ebb8ad 66%{?with_autoreqdep:BuildConflicts: libpostproc}
54ec280e 67Requires: %{name}-libs = %{version}-%{release}
839e806f 68Requires: xvid >= 1:1.1.0
af49d6ab 69Obsoletes: libpostproc
539b540f 70BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
9fc4ad22 71
2a60eebe
JB
72%define _noautoreqdep libGL.so.1 libGLU.so.1
73
c01d7857
PS
74%define specflags -fno-strict-aliasing
75
76# -fomit-frame-pointer is always needed on x86 due to lack of registers (-fPIC takes one)
77%define specflags_ia32 -fomit-frame-pointer
78# -mmmx is needed to enable <mmintrin.h> code.
79%define specflags_i586 -mmmx
80%define specflags_i686 -mmmx
81
9fc4ad22
AM
82%description
83ffmpeg is a hyper fast realtime audio/video encoder and streaming
84server. It can grab from a standard Video4Linux video source and
85convert it into several file formats based on DCT/motion compensation
86encoding. Sound is compressed in MPEG audio layer 2 or using an AC3
fda3e16d 87compatible stream.
9fc4ad22 88
cdb7b42e 89%description -l pl.UTF-8
fda3e16d 90ffmpeg jest bardzo szybkim koderem audio/wideo w czasie rzeczywistym
cdb7b42e
JR
91oraz serwerem strumieni multimedialnych. ffmpeg potrafi zrzucać dane
92ze standardowego urządzenia Video4Linux i przekonwertować je w kilka
93formatów plików bazujących na kodowaniu DCT/kompensacji ruchu. Dźwięk
94jest kompresowany do strumienia MPEG audio layer 2 lub używając
fda3e16d 95strumienia kompatybilnego z AC3.
9fc4ad22 96
54ec280e
PG
97%package libs
98Summary: ffmpeg libraries
adcc0f76 99Summary(pl.UTF-8): Biblioteki ffmpeg
54ec280e
PG
100Group: Libraries
101
102%description libs
5e173375 103This package contains ffmpeg shared libraries.
54ec280e 104
cdb7b42e
JR
105%description libs -l pl.UTF-8
106Ten pakiet zawiera biblioteki współdzielone ffmpeg.
54ec280e 107
af49d6ab
JB
108%package devel
109Summary: ffmpeg header files
adcc0f76 110Summary(pl.UTF-8): Pliki nagłówkowe ffmpeg
af49d6ab 111Group: Development/Libraries
54ec280e 112Requires: %{name}-libs = %{version}-%{release}
33a1c0f3 113# for libavcodec:
fc8de229
JB
114%if %{with amr}
115Requires: amrnb-devel
116Requires: amrwb-devel >= 5.3.0
117%endif
926ffa9a 118Requires: dirac-devel
33a1c0f3 119Requires: faac-devel
96182eea 120Requires: faad2-devel
33a1c0f3 121Requires: lame-libs-devel
bf479bc6 122Requires: libgsm-devel
95e2cf29 123Requires: libraw1394-devel
3e95d354 124Requires: libtheora-devel >= 1.0-0.alpha7
33a1c0f3 125Requires: libvorbis-devel
7bf6921d 126Requires: libx264-devel >= 0.1.2-1.20060828_2245.1
46f2a56b 127Requires: xvid-devel >= 1:1.1.0
33a1c0f3 128Requires: zlib-devel
8152d6a2 129Obsoletes: libpostproc-devel
af49d6ab
JB
130
131%description devel
132ffmpeg header files.
133
cdb7b42e
JR
134%description devel -l pl.UTF-8
135Pliki nagłówkowe ffmpeg.
af49d6ab
JB
136
137%package static
138Summary: ffmpeg static libraries
adcc0f76 139Summary(pl.UTF-8): Statyczne biblioteki ffmpeg
af49d6ab
JB
140Group: Development/Libraries
141Requires: %{name}-devel = %{version}-%{release}
142
143%description static
144ffmpeg static libraries (libavcodec and libavformat).
145
cdb7b42e 146%description static -l pl.UTF-8
af49d6ab
JB
147Statyczne biblioteki ffmpeg (libavcodec i libavformat).
148
2a60eebe
JB
149%package ffplay
150Summary: FFplay - SDL-based media player
adcc0f76 151Summary(pl.UTF-8): FFplay - odtwarzacz mediów oparty na SDL
2a60eebe 152Group: Applications/Multimedia
54ec280e 153Requires: %{name}-libs = %{version}-%{release}
2a60eebe
JB
154
155%description ffplay
156FFplay is a very simple and portable media player using the FFmpeg
157libraries and the SDL library. It is mostly used as a test bench for
158the various APIs of FFmpeg.
159
cdb7b42e
JR
160%description ffplay -l pl.UTF-8
161FFplay to bardzo prosty i przenośny odtwarzacz mediów używający
162bibliotek FFmpeg oraz biblioteki SDL. Jest używany głównie do
163testowania różnych API FFmpeg.
2a60eebe 164
539b540f
JB
165%package vhook-imlib2
166Summary: imlib2 based hook
adcc0f76 167Summary(pl.UTF-8): Moduł przejściowy oparty o imlib2
539b540f 168Group: Libraries
54ec280e 169Requires: %{name}-libs = %{version}-%{release}
539b540f
JB
170
171%description vhook-imlib2
172This module implements a text overlay for a video image. Currently it
173supports a fixed overlay or reading the text from a file. The string
174is passed through strftime so that it is easy to imprint the date and
175time onto the image.
176
cdb7b42e
JR
177%description vhook-imlib2 -l pl.UTF-8
178Ten moduł implementuje tekstową nakładkę dla obrazu. Aktualnie
179obsługuje stałą nakładkę lub wczytywanie tekstu z pliku. Łańcuch jest
180przepuszczany przez strftime, więc łatwo umieścić datę i czas na
539b540f
JB
181obrazie.
182
fde29260
ER
183%package ffserver
184Summary: FFserver video server
adcc0f76 185Summary(pl.UTF-8): FFserver - serwer strumieni obrazu
fde29260 186Group: Daemons
593d3a64 187Requires(post,preun): /sbin/chkconfig
67103923 188Requires: %{name}-libs = %{version}-%{release}
2305d791 189Requires: rc-scripts >= 0.4.0.10
fde29260
ER
190
191%description ffserver
192FFserver is a streaming server for both audio and video. It supports
193several live feeds, streaming from files and time shifting on live
194feeds (you can seek to positions in the past on each live feed,
195provided you specify a big enough feed storage in ffserver.conf).
196
cdb7b42e
JR
197%description ffserver -l pl.UTF-8
198FFserver to serwer strumieni dla dźwięku i obrazu. Obsługuje kilka
199źródeł na żywo, przekazywanie strumieni z plików i przesuwanie w
200czasie dla źródeł na żywo (można przeskakiwać na położenia w
201przeszłości dla każdego źródła na żywo, pod warunkiem odpowiednio
202dużej przestrzeni na dane skonfigurowanej w ffserver.conf).
4e0bd1da 203
9fc4ad22 204%prep
2305d791 205%setup -q -n %{name}-export-%{_snap}
f1669449 206%patch0 -p1
9fc4ad22 207
9d4f8977
ER
208# package the grep result for mplayer, the result formatted as ./mplayer/configure
209cat <<EOF > ffmpeg-avconfig
2b2445b7
ER
210#! /bin/sh
211_libavdecoders_all="`sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`"
212_libavencoders_all="`sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`"
213_libavparsers_all="`sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`"
214_libavbsfs_all="`sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`"
215_libavdemuxers_all="`sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`"
216_libavmuxers_all="`sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`"
217_libavprotocols_all="`sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`"
218EOF
9d4f8977 219cat <<'EOF' >> ffmpeg-avconfig
2b2445b7
ER
220
221case "$1" in
222--decoders)
223 echo $_libavdecoders_all
224 ;;
225--encoders)
226 echo $_libavencoders_all
227 ;;
228--parsers)
229 echo $_libavparsers_all
230 ;;
231--bsfs)
232 echo $_libavbsfs_all
233 ;;
234--demuxers)
235 echo $_libavdemuxers_all
236 ;;
237--muxers)
238 echo $_libavmuxers_all
239 ;;
240--protocols)
241 echo $_libavprotocols_all
242 ;;
243*)
244 cat <<USAGE
245Usage: $0 [OPTION]
246Options:
247 --decoders
248 --encoders
249 --parsers
250 --bsfs
251 --demuxers
252 --muxers
253 --protocols
254USAGE
255 exit 1;;
256esac
257
258exit 0
259EOF
260
9fc4ad22 261%build
05e1eb2f
JB
262# notes:
263# - it's not autoconf configure
d0a0ec26 264# - --disable-debug, --disable-optimizations, tune=generic causes not to override our optflags
2080d1d3 265./configure \
b4680d0b 266 --arch=%{_target_base_arch} \
539b540f 267 --prefix=%{_prefix} \
9cf4d8a4 268 --libdir=%{_libdir} \
d81dfa95 269 --shlibdir=%{_libdir} \
2a60eebe 270 --mandir=%{_mandir} \
126fb805 271 --cc="%{__cc}" \
db67a545 272 --extra-cflags="-D_GNU_SOURCE=1 %{rpmcppflags} %{rpmcflags} -I/usr/include/libavcodec -I/usr/include/libswscale" \
126fb805
JB
273 --extra-ldflags="%{rpmldflags}" \
274 --disable-debug \
275 --disable-optimizations \
6382c99d 276 --disable-stripping \
126fb805 277 --enable-gpl \
15c15700
ER
278 --enable-libfaac \
279 --enable-libfaad \
280 --enable-libfaadbin \
6382c99d
AM
281 --enable-libdc1394 \
282 --enable-libdirac \
f3692243 283 --enable-libgsm \
15c15700 284 --enable-libmp3lame \
126fb805 285 --enable-libschroedinger \
da99dcf2 286 --enable-libspeex \
126fb805
JB
287 --enable-libtheora \
288 --enable-libvorbis \
289 --enable-libx264 \
290 --enable-libxvid \
6382c99d 291 --enable-postproc \
d7493de8 292 --enable-pthreads \
9cf4d8a4 293 --enable-shared \
6382c99d 294 --enable-swscale \
7a286645 295%ifnarch %{ix86} %{x8664}
e1fe03f7 296 --disable-mmx \
297%endif
298%ifarch i386 i486
05e1eb2f 299 --disable-mmx \
b524cd99 300%endif
301%if %{with amr}
48610c64 302 --enable-nonfree \
2c00d607 303 --enable-libamr-nb \
126fb805 304 --enable-libamr-wb
76243dbd 305%endif
2305d791 306
da99dcf2
AM
307# force oldscaler build
308sed -i -e 's|#define.*CONFIG_OLDSCALER.*0|#define CONFIG_OLDSCALER 1|g' config.h
309
873cd1c3 310%{__make}
9fc4ad22
AM
311
312%install
313rm -rf $RPM_BUILD_ROOT
38cf6de3 314install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_sbindir},/etc/{sysconfig,rc.d/init.d}} \
38baa0f1 315 $RPM_BUILD_ROOT%{_includedir}/ffmpeg \
38cf6de3 316 $RPM_BUILD_ROOT/var/{cache,log}/ffserver
9fc4ad22 317
539b540f 318%{__make} install \
9cf4d8a4 319 DESTDIR=$RPM_BUILD_ROOT
539b540f 320
544421b2
ER
321cp -a config.h $RPM_BUILD_ROOT%{_includedir}/ffmpeg
322cp -a libavutil/intreadwrite.h $RPM_BUILD_ROOT%{_includedir}/libavutil
323cp -a libavutil/bswap.h $RPM_BUILD_ROOT%{_includedir}/libavutil
324cp -a libavutil/common.h $RPM_BUILD_ROOT%{_includedir}/libavutil
325cp -a libavutil/mem.h $RPM_BUILD_ROOT%{_includedir}/libavutil
326for a in libavutil/*/bswap.h; do
327 install -D $a $RPM_BUILD_ROOT%{_includedir}/$a
328done
9d4f8977
ER
329cp -a libavformat/riff.h $RPM_BUILD_ROOT%{_includedir}/libavformat
330cp -a libavformat/avio.h $RPM_BUILD_ROOT%{_includedir}/libavformat
544421b2 331
fde29260
ER
332install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/ffserver
333install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/ffserver
38cf6de3 334install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/ffserver.conf
539b540f 335mv -f $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/ffserver
9fc4ad22 336
2b2445b7
ER
337# install as ffmpeg-avconfig to avoid with possible programs looking for
338# ffmpeg-config and expecting --libs output from it which is not implemented
339# simple to do (by querying pkgconfig), but why?
9d4f8977 340install ffmpeg-avconfig $RPM_BUILD_ROOT%{_bindir}/ffmpeg-avconfig
2b2445b7 341
9fc4ad22
AM
342%clean
343rm -rf $RPM_BUILD_ROOT
344
3146af55
KK
345%post libs -p /sbin/ldconfig
346%postun libs -p /sbin/ldconfig
539b540f 347
38cf6de3
ER
348%pre ffserver
349%groupadd -g 167 ffserver
350%useradd -g ffserver -u 167 ffserver
351
593d3a64
ER
352%post ffserver
353/sbin/chkconfig --add ffserver
354%service ffserver restart
355
38cf6de3 356%preun ffserver
593d3a64
ER
357if [ "$1" = 0 ]; then
358 %service ffserver stop
359 /sbin/chkconfig --del ffserver
360fi
361
38cf6de3
ER
362%postun ffserver
363if [ "$1" = 0 ]; then
364 %userremove ffserver
365 %groupremove ffserver
366fi
367
9fc4ad22
AM
368%files
369%defattr(644,root,root,755)
54ec280e 370%doc Changelog README doc/*.html doc/TODO
2a60eebe 371%attr(755,root,root) %{_bindir}/ffmpeg
da99dcf2
AM
372%dir %{_datadir}/ffmpeg
373%{_datadir}/ffmpeg/*.ffpreset
54ec280e 374%{_mandir}/man1/ffmpeg.1*
54ec280e
PG
375
376%files libs
377%defattr(644,root,root,755)
f50f7d7c 378%attr(755,root,root) %{_libdir}/libavcodec.so.*.*.*
d0a0ec26 379%attr(755,root,root) %{_libdir}/libavdevice.so.*.*.*
f50f7d7c
JB
380%attr(755,root,root) %{_libdir}/libavformat.so.*.*.*
381%attr(755,root,root) %{_libdir}/libavutil.so.*.*.*
d7493de8 382%attr(755,root,root) %{_libdir}/libpostproc.so.*.*.*
ee032235 383%attr(755,root,root) %{_libdir}/libswscale.so.*.*.*
9042663c
AM
384%attr(755,root,root) %ghost %{_libdir}/libavcodec.so.[0-9][0-9]
385%attr(755,root,root) %ghost %{_libdir}/libavdevice.so.[0-9][0-9]
386%attr(755,root,root) %ghost %{_libdir}/libavformat.so.[0-9][0-9]
387%attr(755,root,root) %ghost %{_libdir}/libavutil.so.[0-9][0-9]
388%attr(755,root,root) %ghost %{_libdir}/libpostproc.so.[0-9][0-9]
389%attr(755,root,root) %ghost %{_libdir}/libswscale.so.[0-9]
539b540f 390%dir %{_libdir}/vhook
2a60eebe 391%attr(755,root,root) %{_libdir}/vhook/drawtext.so
539b540f 392%attr(755,root,root) %{_libdir}/vhook/fish.so
2a60eebe 393%attr(755,root,root) %{_libdir}/vhook/null.so
d2af4612 394%attr(755,root,root) %{_libdir}/vhook/ppm.so
d7493de8 395%attr(755,root,root) %{_libdir}/vhook/watermark.so
2a60eebe 396
539b540f
JB
397%files devel
398%defattr(644,root,root,755)
54ec280e 399%doc doc/optimization.txt
539b540f 400%attr(755,root,root) %{_libdir}/libavcodec.so
d0a0ec26 401%attr(755,root,root) %{_libdir}/libavdevice.so
539b540f 402%attr(755,root,root) %{_libdir}/libavformat.so
d7493de8 403%attr(755,root,root) %{_libdir}/libavutil.so
d2af4612 404%attr(755,root,root) %{_libdir}/libpostproc.so
ee032235 405%attr(755,root,root) %{_libdir}/libswscale.so
2b2445b7 406%attr(755,root,root) %{_bindir}/ffmpeg-avconfig
539b540f 407%{_includedir}/ffmpeg
6382c99d
AM
408%{_includedir}/libavcodec
409%{_includedir}/libavdevice
410%{_includedir}/libavformat
411%{_includedir}/libavutil
412%{_includedir}/libpostproc
413%{_includedir}/libswscale
d7493de8 414%{_pkgconfigdir}/*.pc
539b540f 415
9cf4d8a4
JB
416%files static
417%defattr(644,root,root,755)
418%{_libdir}/lib*.a
af49d6ab
JB
419
420%files ffplay
421%defattr(644,root,root,755)
422%attr(755,root,root) %{_bindir}/ffplay
423%{_mandir}/man1/ffplay.1*
424
425%if %{with imlib2}
426%files vhook-imlib2
427%defattr(644,root,root,755)
428%attr(755,root,root) %{_libdir}/vhook/imlib2.so
429%endif
fde29260
ER
430
431%files ffserver
432%defattr(644,root,root,755)
433%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ffserver.conf
434%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/ffserver
435%attr(755,root,root) %{_sbindir}/ffserver
436%attr(754,root,root) /etc/rc.d/init.d/ffserver
437%{_mandir}/man1/ffserver.1*
38cf6de3
ER
438%dir %attr(770,root,ffserver) /var/cache/ffserver
439%dir %attr(770,root,ffserver) /var/log/ffserver
This page took 0.112232 seconds and 4 git commands to generate.