]> git.pld-linux.org Git - packages/ffmpeg.git/blame - ffmpeg.spec
- up to 20080930
[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#
9042663c 9%define _snap 2008-09-30
2305d791 10%define snap %(echo %{_snap} | tr -d -)
bab45e3b 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
9042663c 23# Source0-md5: d85a173fa0843706e4f943b84046db84
fde29260
ER
24Source1: ffserver.init
25Source2: ffserver.sysconfig
38cf6de3 26Source3: ffserver.conf
f1669449 27Patch0: %{name}-img_convert_symbol.patch
9042663c 28Patch1: %{name}-x264.patch
d2fa6a1d 29URL: http://ffmpeg.mplayerhq.hu/
2a60eebe 30BuildRequires: SDL-devel
fc8de229 31%if %{with amr}
7e9547bc
JB
32BuildRequires: amrnb-devel >= 6.1.0.4
33BuildRequires: amrwb-devel >= 7.0.0.1
fc8de229 34%endif
6382c99d 35BuildRequires: dirac-devel
e380e18a 36BuildRequires: faac-devel
b959c224 37BuildRequires: faad2-devel
2a60eebe 38BuildRequires: freetype-devel
4bee03f0
JB
39%ifarch ppc
40# require version with altivec support fixed
41BuildRequires: gcc >= 5:3.3.2-3
42%endif
f1669449 43BuildRequires: a52dec-libs-devel
15c15700 44%{?with_imlib2:BuildRequires: imlib2-devel >= 1.3.0}
e380e18a 45BuildRequires: lame-libs-devel
6382c99d 46BuildRequires: libdc1394-devel
f1669449 47BuildRequires: libgsm-devel
94447fde 48BuildRequires: libraw1394-devel
9042663c 49BuildRequires: libtheora-devel >= 1.0-0.beta3
4814ac84 50BuildRequires: libtool >= 2:1.4d-3
e380e18a 51BuildRequires: libvorbis-devel
6382c99d 52BuildRequires: libx264-devel >= 0.1.2-1.20080801
e1fe03f7 53%ifarch %{ix86}
54%ifnarch i386 i486
76243dbd
JB
55BuildRequires: nasm
56%endif
e1fe03f7 57%endif
1463656a 58BuildRequires: perl-tools-pod
ef3c0513 59BuildRequires: pkgconfig
db8052c8 60BuildRequires: rpmbuild(macros) >= 1.470
126fb805 61BuildRequires: schroedinger-devel
1463656a 62BuildRequires: tetex
9cf4d8a4 63BuildRequires: texinfo
872de59d 64%{?with_amr:BuildRequires: unzip}
46f2a56b 65BuildRequires: xvid-devel >= 1:1.1.0
33a1c0f3 66BuildRequires: zlib-devel
57ebb8ad 67%{?with_autoreqdep:BuildConflicts: libpostproc}
54ec280e 68Requires: %{name}-libs = %{version}-%{release}
839e806f 69Requires: xvid >= 1:1.1.0
af49d6ab 70Obsoletes: libpostproc
539b540f 71BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
9fc4ad22 72
2a60eebe
JB
73%define _noautoreqdep libGL.so.1 libGLU.so.1
74
c01d7857
PS
75%define specflags -fno-strict-aliasing
76
77# -fomit-frame-pointer is always needed on x86 due to lack of registers (-fPIC takes one)
78%define specflags_ia32 -fomit-frame-pointer
79# -mmmx is needed to enable <mmintrin.h> code.
80%define specflags_i586 -mmmx
81%define specflags_i686 -mmmx
82
9fc4ad22
AM
83%description
84ffmpeg is a hyper fast realtime audio/video encoder and streaming
85server. It can grab from a standard Video4Linux video source and
86convert it into several file formats based on DCT/motion compensation
87encoding. Sound is compressed in MPEG audio layer 2 or using an AC3
fda3e16d 88compatible stream.
9fc4ad22 89
cdb7b42e 90%description -l pl.UTF-8
fda3e16d 91ffmpeg jest bardzo szybkim koderem audio/wideo w czasie rzeczywistym
cdb7b42e
JR
92oraz serwerem strumieni multimedialnych. ffmpeg potrafi zrzucać dane
93ze standardowego urządzenia Video4Linux i przekonwertować je w kilka
94formatów plików bazujących na kodowaniu DCT/kompensacji ruchu. Dźwięk
95jest kompresowany do strumienia MPEG audio layer 2 lub używając
fda3e16d 96strumienia kompatybilnego z AC3.
9fc4ad22 97
54ec280e
PG
98%package libs
99Summary: ffmpeg libraries
adcc0f76 100Summary(pl.UTF-8): Biblioteki ffmpeg
54ec280e
PG
101Group: Libraries
102
103%description libs
5e173375 104This package contains ffmpeg shared libraries.
54ec280e 105
cdb7b42e
JR
106%description libs -l pl.UTF-8
107Ten pakiet zawiera biblioteki współdzielone ffmpeg.
54ec280e 108
af49d6ab
JB
109%package devel
110Summary: ffmpeg header files
adcc0f76 111Summary(pl.UTF-8): Pliki nagłówkowe ffmpeg
af49d6ab 112Group: Development/Libraries
54ec280e 113Requires: %{name}-libs = %{version}-%{release}
33a1c0f3 114# for libavcodec:
fc8de229
JB
115%if %{with amr}
116Requires: amrnb-devel
117Requires: amrwb-devel >= 5.3.0
118%endif
926ffa9a 119Requires: dirac-devel
33a1c0f3 120Requires: faac-devel
96182eea 121Requires: faad2-devel
33a1c0f3 122Requires: lame-libs-devel
bf479bc6 123Requires: libgsm-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
9042663c 207%patch1 -p1
9fc4ad22 208
2b2445b7
ER
209# package the grep result for mplayer, the result formatted as mplayer/configure
210cat <<EOF > ffmpeg-config
211#! /bin/sh
212_libavdecoders_all="`sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`"
213_libavencoders_all="`sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`"
214_libavparsers_all="`sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`"
215_libavbsfs_all="`sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`"
216_libavdemuxers_all="`sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`"
217_libavmuxers_all="`sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`"
218_libavprotocols_all="`sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`"
219EOF
220cat <<'EOF' >> ffmpeg-config
221
222case "$1" in
223--decoders)
224 echo $_libavdecoders_all
225 ;;
226--encoders)
227 echo $_libavencoders_all
228 ;;
229--parsers)
230 echo $_libavparsers_all
231 ;;
232--bsfs)
233 echo $_libavbsfs_all
234 ;;
235--demuxers)
236 echo $_libavdemuxers_all
237 ;;
238--muxers)
239 echo $_libavmuxers_all
240 ;;
241--protocols)
242 echo $_libavprotocols_all
243 ;;
244*)
245 cat <<USAGE
246Usage: $0 [OPTION]
247Options:
248 --decoders
249 --encoders
250 --parsers
251 --bsfs
252 --demuxers
253 --muxers
254 --protocols
255USAGE
256 exit 1;;
257esac
258
259exit 0
260EOF
261
9fc4ad22 262%build
05e1eb2f
JB
263# notes:
264# - it's not autoconf configure
d0a0ec26 265# - --disable-debug, --disable-optimizations, tune=generic causes not to override our optflags
2080d1d3 266./configure \
b4680d0b 267 --arch=%{_target_base_arch} \
539b540f 268 --prefix=%{_prefix} \
9cf4d8a4 269 --libdir=%{_libdir} \
d81dfa95 270 --shlibdir=%{_libdir} \
2a60eebe 271 --mandir=%{_mandir} \
126fb805
JB
272 --cc="%{__cc}" \
273 --extra-cflags="-D_GNU_SOURCE=1 %{rpmcppflags} %{rpmcflags}" \
274 --extra-ldflags="%{rpmldflags}" \
275 --disable-debug \
276 --disable-optimizations \
6382c99d 277 --disable-stripping \
126fb805 278 --enable-gpl \
6382c99d
AM
279 --enable-liba52 \
280 --enable-liba52bin \
15c15700
ER
281 --enable-libfaac \
282 --enable-libfaad \
283 --enable-libfaadbin \
6382c99d
AM
284 --enable-libdc1394 \
285 --enable-libdirac \
f3692243 286 --enable-libgsm \
15c15700 287 --enable-libmp3lame \
126fb805
JB
288 --enable-libschroedinger \
289 --enable-libtheora \
290 --enable-libvorbis \
291 --enable-libx264 \
292 --enable-libxvid \
6382c99d 293 --enable-postproc \
d7493de8 294 --enable-pthreads \
9cf4d8a4 295 --enable-shared \
6382c99d 296 --enable-swscale \
7a286645 297%ifnarch %{ix86} %{x8664}
e1fe03f7 298 --disable-mmx \
299%endif
300%ifarch i386 i486
05e1eb2f 301 --disable-mmx \
b524cd99 302%endif
303%if %{with amr}
48610c64 304 --enable-nonfree \
2c00d607 305 --enable-libamr-nb \
126fb805 306 --enable-libamr-wb
76243dbd 307%endif
2305d791 308
873cd1c3 309%{__make}
9fc4ad22
AM
310
311%install
312rm -rf $RPM_BUILD_ROOT
38cf6de3 313install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_sbindir},/etc/{sysconfig,rc.d/init.d}} \
38baa0f1 314 $RPM_BUILD_ROOT%{_includedir}/ffmpeg \
38cf6de3 315 $RPM_BUILD_ROOT/var/{cache,log}/ffserver
9fc4ad22 316
539b540f 317%{__make} install \
9cf4d8a4 318 DESTDIR=$RPM_BUILD_ROOT
539b540f 319
ece24152 320install config.h $RPM_BUILD_ROOT%{_includedir}/ffmpeg
09313900 321install libavutil/intreadwrite.h $RPM_BUILD_ROOT%{_includedir}/libavutil
fde29260
ER
322install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/ffserver
323install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/ffserver
38cf6de3 324install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/ffserver.conf
539b540f 325mv -f $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/ffserver
9fc4ad22 326
2b2445b7
ER
327# install as ffmpeg-avconfig to avoid with possible programs looking for
328# ffmpeg-config and expecting --libs output from it which is not implemented
329# simple to do (by querying pkgconfig), but why?
330install ffmpeg-config $RPM_BUILD_ROOT%{_bindir}/ffmpeg-avconfig
331
9fc4ad22
AM
332%clean
333rm -rf $RPM_BUILD_ROOT
334
3146af55
KK
335%post libs -p /sbin/ldconfig
336%postun libs -p /sbin/ldconfig
539b540f 337
38cf6de3
ER
338%pre ffserver
339%groupadd -g 167 ffserver
340%useradd -g ffserver -u 167 ffserver
341
593d3a64
ER
342%post ffserver
343/sbin/chkconfig --add ffserver
344%service ffserver restart
345
38cf6de3 346%preun ffserver
593d3a64
ER
347if [ "$1" = 0 ]; then
348 %service ffserver stop
349 /sbin/chkconfig --del ffserver
350fi
351
38cf6de3
ER
352%postun ffserver
353if [ "$1" = 0 ]; then
354 %userremove ffserver
355 %groupremove ffserver
356fi
357
9fc4ad22
AM
358%files
359%defattr(644,root,root,755)
54ec280e 360%doc Changelog README doc/*.html doc/TODO
2a60eebe 361%attr(755,root,root) %{_bindir}/ffmpeg
54ec280e 362%{_mandir}/man1/ffmpeg.1*
54ec280e
PG
363
364%files libs
365%defattr(644,root,root,755)
f50f7d7c 366%attr(755,root,root) %{_libdir}/libavcodec.so.*.*.*
d0a0ec26 367%attr(755,root,root) %{_libdir}/libavdevice.so.*.*.*
f50f7d7c
JB
368%attr(755,root,root) %{_libdir}/libavformat.so.*.*.*
369%attr(755,root,root) %{_libdir}/libavutil.so.*.*.*
d7493de8 370%attr(755,root,root) %{_libdir}/libpostproc.so.*.*.*
ee032235 371%attr(755,root,root) %{_libdir}/libswscale.so.*.*.*
9042663c
AM
372%attr(755,root,root) %ghost %{_libdir}/libavcodec.so.[0-9][0-9]
373%attr(755,root,root) %ghost %{_libdir}/libavdevice.so.[0-9][0-9]
374%attr(755,root,root) %ghost %{_libdir}/libavformat.so.[0-9][0-9]
375%attr(755,root,root) %ghost %{_libdir}/libavutil.so.[0-9][0-9]
376%attr(755,root,root) %ghost %{_libdir}/libpostproc.so.[0-9][0-9]
377%attr(755,root,root) %ghost %{_libdir}/libswscale.so.[0-9]
539b540f 378%dir %{_libdir}/vhook
2a60eebe 379%attr(755,root,root) %{_libdir}/vhook/drawtext.so
539b540f 380%attr(755,root,root) %{_libdir}/vhook/fish.so
2a60eebe 381%attr(755,root,root) %{_libdir}/vhook/null.so
d2af4612 382%attr(755,root,root) %{_libdir}/vhook/ppm.so
d7493de8 383%attr(755,root,root) %{_libdir}/vhook/watermark.so
2a60eebe 384
539b540f
JB
385%files devel
386%defattr(644,root,root,755)
54ec280e 387%doc doc/optimization.txt
539b540f 388%attr(755,root,root) %{_libdir}/libavcodec.so
d0a0ec26 389%attr(755,root,root) %{_libdir}/libavdevice.so
539b540f 390%attr(755,root,root) %{_libdir}/libavformat.so
d7493de8 391%attr(755,root,root) %{_libdir}/libavutil.so
d2af4612 392%attr(755,root,root) %{_libdir}/libpostproc.so
ee032235 393%attr(755,root,root) %{_libdir}/libswscale.so
2b2445b7 394%attr(755,root,root) %{_bindir}/ffmpeg-avconfig
539b540f 395%{_includedir}/ffmpeg
6382c99d
AM
396%{_includedir}/libavcodec
397%{_includedir}/libavdevice
398%{_includedir}/libavformat
399%{_includedir}/libavutil
400%{_includedir}/libpostproc
401%{_includedir}/libswscale
d7493de8 402%{_pkgconfigdir}/*.pc
539b540f 403
9cf4d8a4
JB
404%files static
405%defattr(644,root,root,755)
406%{_libdir}/lib*.a
af49d6ab
JB
407
408%files ffplay
409%defattr(644,root,root,755)
410%attr(755,root,root) %{_bindir}/ffplay
411%{_mandir}/man1/ffplay.1*
412
413%if %{with imlib2}
414%files vhook-imlib2
415%defattr(644,root,root,755)
416%attr(755,root,root) %{_libdir}/vhook/imlib2.so
417%endif
fde29260
ER
418
419%files ffserver
420%defattr(644,root,root,755)
421%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ffserver.conf
422%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/ffserver
423%attr(755,root,root) %{_sbindir}/ffserver
424%attr(754,root,root) /etc/rc.d/init.d/ffserver
425%{_mandir}/man1/ffserver.1*
38cf6de3
ER
426%dir %attr(770,root,ffserver) /var/cache/ffserver
427%dir %attr(770,root,ffserver) /var/log/ffserver
This page took 0.145701 seconds and 4 git commands to generate.