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