]> git.pld-linux.org Git - packages/ffmpeg.git/blame - ffmpeg.spec
- fix for encode error at the end of stream with lame 0.83.2:
[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#
76243dbd 9Summary: Realtime audio/video encoder and streaming server
adcc0f76 10Summary(pl.UTF-8): Koder audio/wideo czasu rzeczywistego oraz serwer strumieni
9fc4ad22 11Name: ffmpeg
aed8e8c9 12Version: 0.5
1162803a 13Release: 2
9cf4d8a4 14# LGPL or GPL, chosen at configure time (GPL version is more featured)
48610c64 15# (postprocessing, ac3, xvid, x264, faad)
be868f35 16License: GPL v2+ with LGPL v2.1+ parts
fde29260 17Group: Applications/Multimedia
aed8e8c9
AM
18Source0: http://ffmpeg.mplayerhq.hu/releases/%{name}-%{version}.tar.bz2
19# Source0-md5: be8503f15c3b81ba00eb8379ca8dcf33
fde29260
ER
20Source1: ffserver.init
21Source2: ffserver.sysconfig
38cf6de3 22Source3: ffserver.conf
da99dcf2 23Patch0: %{name}-x264.patch
d2fa6a1d 24URL: http://ffmpeg.mplayerhq.hu/
2a60eebe 25BuildRequires: SDL-devel
fc8de229 26%if %{with amr}
7e9547bc
JB
27BuildRequires: amrnb-devel >= 6.1.0.4
28BuildRequires: amrwb-devel >= 7.0.0.1
fc8de229 29%endif
7ca51e4c 30BuildRequires: dirac-devel >= 1.0.0
e380e18a 31BuildRequires: faac-devel
b959c224 32BuildRequires: faad2-devel
2a60eebe 33BuildRequires: freetype-devel
4bee03f0
JB
34%ifarch ppc
35# require version with altivec support fixed
36BuildRequires: gcc >= 5:3.3.2-3
37%endif
15c15700 38%{?with_imlib2:BuildRequires: imlib2-devel >= 1.3.0}
e380e18a 39BuildRequires: lame-libs-devel
6382c99d 40BuildRequires: libdc1394-devel
f1669449 41BuildRequires: libgsm-devel
94447fde 42BuildRequires: libraw1394-devel
9042663c 43BuildRequires: libtheora-devel >= 1.0-0.beta3
4814ac84 44BuildRequires: libtool >= 2:1.4d-3
e380e18a 45BuildRequires: libvorbis-devel
1be8f878 46BuildRequires: libx264-devel >= 0.1.2-1.20081023
aed8e8c9 47BuildRequires: speex-devel
e1fe03f7 48%ifarch %{ix86}
49%ifnarch i386 i486
76243dbd
JB
50BuildRequires: nasm
51%endif
e1fe03f7 52%endif
1463656a 53BuildRequires: perl-tools-pod
ef3c0513 54BuildRequires: pkgconfig
db8052c8 55BuildRequires: rpmbuild(macros) >= 1.470
126fb805 56BuildRequires: schroedinger-devel
1463656a 57BuildRequires: tetex
b5649e15 58BuildRequires: texi2html
9cf4d8a4 59BuildRequires: texinfo
872de59d 60%{?with_amr:BuildRequires: unzip}
46f2a56b 61BuildRequires: xvid-devel >= 1:1.1.0
33a1c0f3 62BuildRequires: zlib-devel
57ebb8ad 63%{?with_autoreqdep:BuildConflicts: libpostproc}
54ec280e 64Requires: %{name}-libs = %{version}-%{release}
839e806f 65Requires: xvid >= 1:1.1.0
af49d6ab 66Obsoletes: libpostproc
539b540f 67BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
9fc4ad22 68
2a60eebe
JB
69%define _noautoreqdep libGL.so.1 libGLU.so.1
70
c01d7857
PS
71%define specflags -fno-strict-aliasing
72
73# -fomit-frame-pointer is always needed on x86 due to lack of registers (-fPIC takes one)
74%define specflags_ia32 -fomit-frame-pointer
75# -mmmx is needed to enable <mmintrin.h> code.
76%define specflags_i586 -mmmx
77%define specflags_i686 -mmmx
1162803a 78%define specflags_ppc -fPIC
c01d7857 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
926ffa9a 116Requires: dirac-devel
33a1c0f3 117Requires: faac-devel
96182eea 118Requires: faad2-devel
33a1c0f3 119Requires: lame-libs-devel
bf479bc6 120Requires: libgsm-devel
95e2cf29 121Requires: libraw1394-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
aed8e8c9 203%setup -q
f1669449 204%patch0 -p1
9fc4ad22 205
9d4f8977
ER
206# package the grep result for mplayer, the result formatted as ./mplayer/configure
207cat <<EOF > ffmpeg-avconfig
2b2445b7
ER
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
9d4f8977 217cat <<'EOF' >> ffmpeg-avconfig
2b2445b7
ER
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 269 --cc="%{__cc}" \
db67a545 270 --extra-cflags="-D_GNU_SOURCE=1 %{rpmcppflags} %{rpmcflags} -I/usr/include/libavcodec -I/usr/include/libswscale" \
1162803a 271 --extra-ldflags="%{rpmcflags} %{rpmldflags}" \
126fb805
JB
272 --disable-debug \
273 --disable-optimizations \
6382c99d 274 --disable-stripping \
126fb805 275 --enable-gpl \
15c15700
ER
276 --enable-libfaac \
277 --enable-libfaad \
278 --enable-libfaadbin \
6382c99d
AM
279 --enable-libdc1394 \
280 --enable-libdirac \
f3692243 281 --enable-libgsm \
15c15700 282 --enable-libmp3lame \
126fb805 283 --enable-libschroedinger \
da99dcf2 284 --enable-libspeex \
126fb805
JB
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
da99dcf2
AM
305# force oldscaler build
306sed -i -e 's|#define.*CONFIG_OLDSCALER.*0|#define CONFIG_OLDSCALER 1|g' config.h
307
873cd1c3 308%{__make}
9fc4ad22
AM
309
310%install
311rm -rf $RPM_BUILD_ROOT
38cf6de3 312install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_sbindir},/etc/{sysconfig,rc.d/init.d}} \
38baa0f1 313 $RPM_BUILD_ROOT%{_includedir}/ffmpeg \
38cf6de3 314 $RPM_BUILD_ROOT/var/{cache,log}/ffserver
9fc4ad22 315
539b540f 316%{__make} install \
9cf4d8a4 317 DESTDIR=$RPM_BUILD_ROOT
539b540f 318
544421b2
ER
319cp -a config.h $RPM_BUILD_ROOT%{_includedir}/ffmpeg
320cp -a libavutil/intreadwrite.h $RPM_BUILD_ROOT%{_includedir}/libavutil
321cp -a libavutil/bswap.h $RPM_BUILD_ROOT%{_includedir}/libavutil
322cp -a libavutil/common.h $RPM_BUILD_ROOT%{_includedir}/libavutil
323cp -a libavutil/mem.h $RPM_BUILD_ROOT%{_includedir}/libavutil
324for a in libavutil/*/bswap.h; do
325 install -D $a $RPM_BUILD_ROOT%{_includedir}/$a
326done
9d4f8977
ER
327cp -a libavformat/riff.h $RPM_BUILD_ROOT%{_includedir}/libavformat
328cp -a libavformat/avio.h $RPM_BUILD_ROOT%{_includedir}/libavformat
544421b2 329
fde29260
ER
330install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/ffserver
331install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/ffserver
38cf6de3 332install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/ffserver.conf
539b540f 333mv -f $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/ffserver
9fc4ad22 334
2b2445b7
ER
335# install as ffmpeg-avconfig to avoid with possible programs looking for
336# ffmpeg-config and expecting --libs output from it which is not implemented
337# simple to do (by querying pkgconfig), but why?
9d4f8977 338install ffmpeg-avconfig $RPM_BUILD_ROOT%{_bindir}/ffmpeg-avconfig
2b2445b7 339
9fc4ad22
AM
340%clean
341rm -rf $RPM_BUILD_ROOT
342
3146af55
KK
343%post libs -p /sbin/ldconfig
344%postun libs -p /sbin/ldconfig
539b540f 345
38cf6de3
ER
346%pre ffserver
347%groupadd -g 167 ffserver
348%useradd -g ffserver -u 167 ffserver
349
593d3a64
ER
350%post ffserver
351/sbin/chkconfig --add ffserver
352%service ffserver restart
353
38cf6de3 354%preun ffserver
593d3a64
ER
355if [ "$1" = 0 ]; then
356 %service ffserver stop
357 /sbin/chkconfig --del ffserver
358fi
359
38cf6de3
ER
360%postun ffserver
361if [ "$1" = 0 ]; then
362 %userremove ffserver
363 %groupremove ffserver
364fi
365
9fc4ad22
AM
366%files
367%defattr(644,root,root,755)
54ec280e 368%doc Changelog README doc/*.html doc/TODO
2a60eebe 369%attr(755,root,root) %{_bindir}/ffmpeg
da99dcf2
AM
370%dir %{_datadir}/ffmpeg
371%{_datadir}/ffmpeg/*.ffpreset
54ec280e 372%{_mandir}/man1/ffmpeg.1*
54ec280e
PG
373
374%files libs
375%defattr(644,root,root,755)
f50f7d7c 376%attr(755,root,root) %{_libdir}/libavcodec.so.*.*.*
d0a0ec26 377%attr(755,root,root) %{_libdir}/libavdevice.so.*.*.*
f50f7d7c
JB
378%attr(755,root,root) %{_libdir}/libavformat.so.*.*.*
379%attr(755,root,root) %{_libdir}/libavutil.so.*.*.*
d7493de8 380%attr(755,root,root) %{_libdir}/libpostproc.so.*.*.*
ee032235 381%attr(755,root,root) %{_libdir}/libswscale.so.*.*.*
9042663c
AM
382%attr(755,root,root) %ghost %{_libdir}/libavcodec.so.[0-9][0-9]
383%attr(755,root,root) %ghost %{_libdir}/libavdevice.so.[0-9][0-9]
384%attr(755,root,root) %ghost %{_libdir}/libavformat.so.[0-9][0-9]
385%attr(755,root,root) %ghost %{_libdir}/libavutil.so.[0-9][0-9]
386%attr(755,root,root) %ghost %{_libdir}/libpostproc.so.[0-9][0-9]
387%attr(755,root,root) %ghost %{_libdir}/libswscale.so.[0-9]
539b540f 388%dir %{_libdir}/vhook
2a60eebe 389%attr(755,root,root) %{_libdir}/vhook/drawtext.so
539b540f 390%attr(755,root,root) %{_libdir}/vhook/fish.so
2a60eebe 391%attr(755,root,root) %{_libdir}/vhook/null.so
d2af4612 392%attr(755,root,root) %{_libdir}/vhook/ppm.so
d7493de8 393%attr(755,root,root) %{_libdir}/vhook/watermark.so
2a60eebe 394
539b540f
JB
395%files devel
396%defattr(644,root,root,755)
54ec280e 397%doc doc/optimization.txt
539b540f 398%attr(755,root,root) %{_libdir}/libavcodec.so
d0a0ec26 399%attr(755,root,root) %{_libdir}/libavdevice.so
539b540f 400%attr(755,root,root) %{_libdir}/libavformat.so
d7493de8 401%attr(755,root,root) %{_libdir}/libavutil.so
d2af4612 402%attr(755,root,root) %{_libdir}/libpostproc.so
ee032235 403%attr(755,root,root) %{_libdir}/libswscale.so
2b2445b7 404%attr(755,root,root) %{_bindir}/ffmpeg-avconfig
539b540f 405%{_includedir}/ffmpeg
6382c99d
AM
406%{_includedir}/libavcodec
407%{_includedir}/libavdevice
408%{_includedir}/libavformat
409%{_includedir}/libavutil
410%{_includedir}/libpostproc
411%{_includedir}/libswscale
d7493de8 412%{_pkgconfigdir}/*.pc
539b540f 413
9cf4d8a4
JB
414%files static
415%defattr(644,root,root,755)
416%{_libdir}/lib*.a
af49d6ab
JB
417
418%files ffplay
419%defattr(644,root,root,755)
420%attr(755,root,root) %{_bindir}/ffplay
421%{_mandir}/man1/ffplay.1*
422
423%if %{with imlib2}
424%files vhook-imlib2
425%defattr(644,root,root,755)
426%attr(755,root,root) %{_libdir}/vhook/imlib2.so
427%endif
fde29260
ER
428
429%files ffserver
430%defattr(644,root,root,755)
431%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ffserver.conf
432%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/ffserver
433%attr(755,root,root) %{_sbindir}/ffserver
434%attr(754,root,root) /etc/rc.d/init.d/ffserver
435%{_mandir}/man1/ffserver.1*
38cf6de3
ER
436%dir %attr(770,root,ffserver) /var/cache/ffserver
437%dir %attr(770,root,ffserver) /var/log/ffserver
This page took 0.13042 seconds and 4 git commands to generate.