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