]> 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
314ef0df 8
85f7cea1 9Summary: FFmpeg is a very fast video and audio converter
adcc0f76 10Summary(pl.UTF-8): Koder audio/wideo czasu rzeczywistego oraz serwer strumieni
9fc4ad22 11Name: ffmpeg
aed8e8c9 12Version: 0.5
e6ac9e5f 13Release: 5
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
39a518fc 24Patch1: %{name}-bug-803.patch
49cc73cd 25Patch2: imagewidth.patch
85f7cea1 26URL: http://www.ffmpeg.org/
2a60eebe 27BuildRequires: SDL-devel
fc8de229 28%if %{with amr}
7e9547bc
JB
29BuildRequires: amrnb-devel >= 6.1.0.4
30BuildRequires: amrwb-devel >= 7.0.0.1
fc8de229 31%endif
7ca51e4c 32BuildRequires: dirac-devel >= 1.0.0
e380e18a 33BuildRequires: faac-devel
b959c224 34BuildRequires: faad2-devel
2a60eebe 35BuildRequires: freetype-devel
4bee03f0
JB
36%ifarch ppc
37# require version with altivec support fixed
38BuildRequires: gcc >= 5:3.3.2-3
39%endif
15c15700 40%{?with_imlib2:BuildRequires: imlib2-devel >= 1.3.0}
e380e18a 41BuildRequires: lame-libs-devel
6382c99d 42BuildRequires: libdc1394-devel
f1669449 43BuildRequires: libgsm-devel
94447fde 44BuildRequires: libraw1394-devel
9042663c 45BuildRequires: libtheora-devel >= 1.0-0.beta3
4814ac84 46BuildRequires: libtool >= 2:1.4d-3
e380e18a 47BuildRequires: libvorbis-devel
1be8f878 48BuildRequires: libx264-devel >= 0.1.2-1.20081023
aed8e8c9 49BuildRequires: speex-devel
e1fe03f7 50%ifarch %{ix86}
51%ifnarch i386 i486
76243dbd
JB
52BuildRequires: nasm
53%endif
e1fe03f7 54%endif
1463656a 55BuildRequires: perl-tools-pod
ef3c0513 56BuildRequires: pkgconfig
db8052c8 57BuildRequires: rpmbuild(macros) >= 1.470
126fb805 58BuildRequires: schroedinger-devel
1463656a 59BuildRequires: tetex
b5649e15 60BuildRequires: texi2html
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
1162803a 80%define specflags_ppc -fPIC
c01d7857 81
9fc4ad22 82%description
85f7cea1
ER
83FFmpeg is a complete solution to record, convert and stream audio and
84video. It is a command line tool to convert one video file format to
85another. It also supports grabbing and encoding in real time from a TV
86card.
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
85f7cea1
ER
102This package contains:
103- the codec library from the ffmpeg project. It supports most existing
104 encoding formats (MPEG, DivX, MPEG4, AC3, DV...),
105- demuxer library from the ffmpeg project. It supports most existing
106 file formats (AVI, MPEG, OGG, Matroska, ASF...),
107- video postprocessing library from the ffmpeg project.
54ec280e 108
cdb7b42e
JR
109%description libs -l pl.UTF-8
110Ten pakiet zawiera biblioteki współdzielone ffmpeg.
54ec280e 111
af49d6ab
JB
112%package devel
113Summary: ffmpeg header files
adcc0f76 114Summary(pl.UTF-8): Pliki nagłówkowe ffmpeg
af49d6ab 115Group: Development/Libraries
54ec280e 116Requires: %{name}-libs = %{version}-%{release}
33a1c0f3 117# for libavcodec:
fc8de229
JB
118%if %{with amr}
119Requires: amrnb-devel
120Requires: amrwb-devel >= 5.3.0
121%endif
926ffa9a 122Requires: dirac-devel
33a1c0f3 123Requires: faac-devel
96182eea 124Requires: faad2-devel
33a1c0f3 125Requires: lame-libs-devel
bf479bc6 126Requires: libgsm-devel
95e2cf29 127Requires: libraw1394-devel
3e95d354 128Requires: libtheora-devel >= 1.0-0.alpha7
33a1c0f3 129Requires: libvorbis-devel
7bf6921d 130Requires: libx264-devel >= 0.1.2-1.20060828_2245.1
46f2a56b 131Requires: xvid-devel >= 1:1.1.0
33a1c0f3 132Requires: zlib-devel
8152d6a2 133Obsoletes: libpostproc-devel
af49d6ab
JB
134
135%description devel
136ffmpeg header files.
137
cdb7b42e
JR
138%description devel -l pl.UTF-8
139Pliki nagłówkowe ffmpeg.
af49d6ab
JB
140
141%package static
142Summary: ffmpeg static libraries
adcc0f76 143Summary(pl.UTF-8): Statyczne biblioteki ffmpeg
af49d6ab
JB
144Group: Development/Libraries
145Requires: %{name}-devel = %{version}-%{release}
146
147%description static
148ffmpeg static libraries (libavcodec and libavformat).
149
cdb7b42e 150%description static -l pl.UTF-8
af49d6ab
JB
151Statyczne biblioteki ffmpeg (libavcodec i libavformat).
152
2a60eebe
JB
153%package ffplay
154Summary: FFplay - SDL-based media player
adcc0f76 155Summary(pl.UTF-8): FFplay - odtwarzacz mediów oparty na SDL
2a60eebe 156Group: Applications/Multimedia
54ec280e 157Requires: %{name}-libs = %{version}-%{release}
2a60eebe
JB
158
159%description ffplay
160FFplay is a very simple and portable media player using the FFmpeg
161libraries and the SDL library. It is mostly used as a test bench for
162the various APIs of FFmpeg.
163
cdb7b42e
JR
164%description ffplay -l pl.UTF-8
165FFplay to bardzo prosty i przenośny odtwarzacz mediów używający
166bibliotek FFmpeg oraz biblioteki SDL. Jest używany głównie do
167testowania różnych API FFmpeg.
2a60eebe 168
539b540f
JB
169%package vhook-imlib2
170Summary: imlib2 based hook
adcc0f76 171Summary(pl.UTF-8): Moduł przejściowy oparty o imlib2
539b540f 172Group: Libraries
54ec280e 173Requires: %{name}-libs = %{version}-%{release}
539b540f
JB
174
175%description vhook-imlib2
176This module implements a text overlay for a video image. Currently it
177supports a fixed overlay or reading the text from a file. The string
178is passed through strftime so that it is easy to imprint the date and
179time onto the image.
180
cdb7b42e
JR
181%description vhook-imlib2 -l pl.UTF-8
182Ten moduł implementuje tekstową nakładkę dla obrazu. Aktualnie
183obsługuje stałą nakładkę lub wczytywanie tekstu z pliku. Łańcuch jest
184przepuszczany przez strftime, więc łatwo umieścić datę i czas na
539b540f
JB
185obrazie.
186
fde29260
ER
187%package ffserver
188Summary: FFserver video server
adcc0f76 189Summary(pl.UTF-8): FFserver - serwer strumieni obrazu
fde29260 190Group: Daemons
593d3a64 191Requires(post,preun): /sbin/chkconfig
67103923 192Requires: %{name}-libs = %{version}-%{release}
2305d791 193Requires: rc-scripts >= 0.4.0.10
fde29260
ER
194
195%description ffserver
196FFserver is a streaming server for both audio and video. It supports
197several live feeds, streaming from files and time shifting on live
198feeds (you can seek to positions in the past on each live feed,
199provided you specify a big enough feed storage in ffserver.conf).
200
cdb7b42e
JR
201%description ffserver -l pl.UTF-8
202FFserver to serwer strumieni dla dźwięku i obrazu. Obsługuje kilka
203źródeł na żywo, przekazywanie strumieni z plików i przesuwanie w
204czasie dla źródeł na żywo (można przeskakiwać na położenia w
205przeszłości dla każdego źródła na żywo, pod warunkiem odpowiednio
206dużej przestrzeni na dane skonfigurowanej w ffserver.conf).
4e0bd1da 207
9fc4ad22 208%prep
aed8e8c9 209%setup -q
f1669449 210%patch0 -p1
39a518fc 211%patch1 -p1
49cc73cd 212%patch2 -p1
9fc4ad22 213
9d4f8977
ER
214# package the grep result for mplayer, the result formatted as ./mplayer/configure
215cat <<EOF > ffmpeg-avconfig
2b2445b7
ER
216#! /bin/sh
217_libavdecoders_all="`sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`"
218_libavencoders_all="`sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`"
219_libavparsers_all="`sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`"
220_libavbsfs_all="`sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`"
221_libavdemuxers_all="`sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`"
222_libavmuxers_all="`sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`"
223_libavprotocols_all="`sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`"
224EOF
9d4f8977 225cat <<'EOF' >> ffmpeg-avconfig
2b2445b7
ER
226
227case "$1" in
228--decoders)
229 echo $_libavdecoders_all
230 ;;
231--encoders)
232 echo $_libavencoders_all
233 ;;
234--parsers)
235 echo $_libavparsers_all
236 ;;
237--bsfs)
238 echo $_libavbsfs_all
239 ;;
240--demuxers)
241 echo $_libavdemuxers_all
242 ;;
243--muxers)
244 echo $_libavmuxers_all
245 ;;
246--protocols)
247 echo $_libavprotocols_all
248 ;;
249*)
250 cat <<USAGE
251Usage: $0 [OPTION]
252Options:
253 --decoders
254 --encoders
255 --parsers
256 --bsfs
257 --demuxers
258 --muxers
259 --protocols
260USAGE
261 exit 1;;
262esac
263
264exit 0
265EOF
266
9fc4ad22 267%build
05e1eb2f
JB
268# notes:
269# - it's not autoconf configure
d0a0ec26 270# - --disable-debug, --disable-optimizations, tune=generic causes not to override our optflags
2080d1d3 271./configure \
b4680d0b 272 --arch=%{_target_base_arch} \
539b540f 273 --prefix=%{_prefix} \
9cf4d8a4 274 --libdir=%{_libdir} \
d81dfa95 275 --shlibdir=%{_libdir} \
2a60eebe 276 --mandir=%{_mandir} \
126fb805 277 --cc="%{__cc}" \
314ef0df 278 --extra-cflags="-D_GNU_SOURCE=1 %{rpmcppflags} %{rpmcflags}" \
1162803a 279 --extra-ldflags="%{rpmcflags} %{rpmldflags}" \
126fb805
JB
280 --disable-debug \
281 --disable-optimizations \
6382c99d 282 --disable-stripping \
314ef0df 283 --enable-avfilter \
126fb805 284 --enable-gpl \
32243b76
ER
285 --enable-libdc1394 \
286 --enable-libdirac \
15c15700
ER
287 --enable-libfaac \
288 --enable-libfaad \
289 --enable-libfaadbin \
f3692243 290 --enable-libgsm \
15c15700 291 --enable-libmp3lame \
126fb805 292 --enable-libschroedinger \
da99dcf2 293 --enable-libspeex \
126fb805
JB
294 --enable-libtheora \
295 --enable-libvorbis \
296 --enable-libx264 \
297 --enable-libxvid \
6382c99d 298 --enable-postproc \
d7493de8 299 --enable-pthreads \
9cf4d8a4 300 --enable-shared \
6382c99d 301 --enable-swscale \
7a286645 302%ifnarch %{ix86} %{x8664}
e1fe03f7 303 --disable-mmx \
304%endif
305%ifarch i386 i486
05e1eb2f 306 --disable-mmx \
b524cd99 307%endif
308%if %{with amr}
48610c64 309 --enable-nonfree \
2c00d607 310 --enable-libamr-nb \
126fb805 311 --enable-libamr-wb
76243dbd 312%endif
2305d791 313
da99dcf2
AM
314# force oldscaler build
315sed -i -e 's|#define.*CONFIG_OLDSCALER.*0|#define CONFIG_OLDSCALER 1|g' config.h
316
873cd1c3 317%{__make}
9fc4ad22
AM
318
319%install
320rm -rf $RPM_BUILD_ROOT
38cf6de3 321install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_sbindir},/etc/{sysconfig,rc.d/init.d}} \
38baa0f1 322 $RPM_BUILD_ROOT%{_includedir}/ffmpeg \
38cf6de3 323 $RPM_BUILD_ROOT/var/{cache,log}/ffserver
9fc4ad22 324
539b540f 325%{__make} install \
9cf4d8a4 326 DESTDIR=$RPM_BUILD_ROOT
539b540f 327
544421b2
ER
328cp -a config.h $RPM_BUILD_ROOT%{_includedir}/ffmpeg
329cp -a libavutil/intreadwrite.h $RPM_BUILD_ROOT%{_includedir}/libavutil
330cp -a libavutil/bswap.h $RPM_BUILD_ROOT%{_includedir}/libavutil
331cp -a libavutil/common.h $RPM_BUILD_ROOT%{_includedir}/libavutil
332cp -a libavutil/mem.h $RPM_BUILD_ROOT%{_includedir}/libavutil
333for a in libavutil/*/bswap.h; do
334 install -D $a $RPM_BUILD_ROOT%{_includedir}/$a
335done
9d4f8977
ER
336cp -a libavformat/riff.h $RPM_BUILD_ROOT%{_includedir}/libavformat
337cp -a libavformat/avio.h $RPM_BUILD_ROOT%{_includedir}/libavformat
544421b2 338
fde29260
ER
339install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/ffserver
340install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/ffserver
38cf6de3 341install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/ffserver.conf
539b540f 342mv -f $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/ffserver
9fc4ad22 343
2b2445b7
ER
344# install as ffmpeg-avconfig to avoid with possible programs looking for
345# ffmpeg-config and expecting --libs output from it which is not implemented
346# simple to do (by querying pkgconfig), but why?
9d4f8977 347install ffmpeg-avconfig $RPM_BUILD_ROOT%{_bindir}/ffmpeg-avconfig
2b2445b7 348
9fc4ad22
AM
349%clean
350rm -rf $RPM_BUILD_ROOT
351
3146af55
KK
352%post libs -p /sbin/ldconfig
353%postun libs -p /sbin/ldconfig
539b540f 354
38cf6de3
ER
355%pre ffserver
356%groupadd -g 167 ffserver
357%useradd -g ffserver -u 167 ffserver
358
593d3a64
ER
359%post ffserver
360/sbin/chkconfig --add ffserver
361%service ffserver restart
362
38cf6de3 363%preun ffserver
593d3a64
ER
364if [ "$1" = 0 ]; then
365 %service ffserver stop
366 /sbin/chkconfig --del ffserver
367fi
368
38cf6de3
ER
369%postun ffserver
370if [ "$1" = 0 ]; then
371 %userremove ffserver
372 %groupremove ffserver
373fi
374
9fc4ad22
AM
375%files
376%defattr(644,root,root,755)
54ec280e 377%doc Changelog README doc/*.html doc/TODO
2a60eebe 378%attr(755,root,root) %{_bindir}/ffmpeg
da99dcf2
AM
379%dir %{_datadir}/ffmpeg
380%{_datadir}/ffmpeg/*.ffpreset
54ec280e 381%{_mandir}/man1/ffmpeg.1*
54ec280e
PG
382
383%files libs
384%defattr(644,root,root,755)
f50f7d7c 385%attr(755,root,root) %{_libdir}/libavcodec.so.*.*.*
314ef0df 386%attr(755,root,root) %ghost %{_libdir}/libavcodec.so.52
d0a0ec26 387%attr(755,root,root) %{_libdir}/libavdevice.so.*.*.*
314ef0df
ER
388%attr(755,root,root) %ghost %{_libdir}/libavdevice.so.52
389%attr(755,root,root) %{_libdir}/libavfilter.so.*.*.*
390%attr(755,root,root) %ghost %{_libdir}/libavfilter.so.0
f50f7d7c 391%attr(755,root,root) %{_libdir}/libavformat.so.*.*.*
314ef0df 392%attr(755,root,root) %ghost %{_libdir}/libavformat.so.52
f50f7d7c 393%attr(755,root,root) %{_libdir}/libavutil.so.*.*.*
314ef0df 394%attr(755,root,root) %ghost %{_libdir}/libavutil.so.49
d7493de8 395%attr(755,root,root) %{_libdir}/libpostproc.so.*.*.*
314ef0df 396%attr(755,root,root) %ghost %{_libdir}/libpostproc.so.51
ee032235 397%attr(755,root,root) %{_libdir}/libswscale.so.*.*.*
314ef0df
ER
398%attr(755,root,root) %ghost %{_libdir}/libswscale.so.0
399
539b540f 400%dir %{_libdir}/vhook
2a60eebe 401%attr(755,root,root) %{_libdir}/vhook/drawtext.so
539b540f 402%attr(755,root,root) %{_libdir}/vhook/fish.so
2a60eebe 403%attr(755,root,root) %{_libdir}/vhook/null.so
d2af4612 404%attr(755,root,root) %{_libdir}/vhook/ppm.so
d7493de8 405%attr(755,root,root) %{_libdir}/vhook/watermark.so
2a60eebe 406
539b540f
JB
407%files devel
408%defattr(644,root,root,755)
54ec280e 409%doc doc/optimization.txt
539b540f 410%attr(755,root,root) %{_libdir}/libavcodec.so
d0a0ec26 411%attr(755,root,root) %{_libdir}/libavdevice.so
314ef0df 412%attr(755,root,root) %{_libdir}/libavfilter.so
539b540f 413%attr(755,root,root) %{_libdir}/libavformat.so
d7493de8 414%attr(755,root,root) %{_libdir}/libavutil.so
d2af4612 415%attr(755,root,root) %{_libdir}/libpostproc.so
ee032235 416%attr(755,root,root) %{_libdir}/libswscale.so
2b2445b7 417%attr(755,root,root) %{_bindir}/ffmpeg-avconfig
539b540f 418%{_includedir}/ffmpeg
6382c99d
AM
419%{_includedir}/libavcodec
420%{_includedir}/libavdevice
314ef0df 421%{_includedir}/libavfilter
6382c99d
AM
422%{_includedir}/libavformat
423%{_includedir}/libavutil
424%{_includedir}/libpostproc
425%{_includedir}/libswscale
d7493de8 426%{_pkgconfigdir}/*.pc
539b540f 427
9cf4d8a4
JB
428%files static
429%defattr(644,root,root,755)
430%{_libdir}/lib*.a
af49d6ab
JB
431
432%files ffplay
433%defattr(644,root,root,755)
434%attr(755,root,root) %{_bindir}/ffplay
435%{_mandir}/man1/ffplay.1*
436
437%if %{with imlib2}
438%files vhook-imlib2
439%defattr(644,root,root,755)
440%attr(755,root,root) %{_libdir}/vhook/imlib2.so
441%endif
fde29260
ER
442
443%files ffserver
444%defattr(644,root,root,755)
445%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ffserver.conf
446%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/ffserver
447%attr(755,root,root) %{_sbindir}/ffserver
448%attr(754,root,root) /etc/rc.d/init.d/ffserver
449%{_mandir}/man1/ffserver.1*
38cf6de3
ER
450%dir %attr(770,root,ffserver) /var/cache/ffserver
451%dir %attr(770,root,ffserver) /var/log/ffserver
This page took 0.1226 seconds and 4 git commands to generate.