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