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