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