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