]> git.pld-linux.org Git - packages/ffmpeg.git/blame - ffmpeg.spec
- updated Source URL
[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 6%bcond_without autoreqdep # don't care about package name deps generated by rpm
1ef27ea1
JB
7%bcond_without va # VAAPI (Video Acceleration API)
8%bcond_without vpx # VP8, a high-quality video codec
9%bcond_without doc # don't build docs
314ef0df 10
85f7cea1 11Summary: FFmpeg is a very fast video and audio converter
adcc0f76 12Summary(pl.UTF-8): Koder audio/wideo czasu rzeczywistego oraz serwer strumieni
9fc4ad22 13Name: ffmpeg
e012ee1c
ER
14Version: 0.6.1
15Release: 1
9cf4d8a4 16# LGPL or GPL, chosen at configure time (GPL version is more featured)
48610c64 17# (postprocessing, ac3, xvid, x264, faad)
0b43f655 18License: GPL v3+ with LGPL v3+ parts
fde29260 19Group: Applications/Multimedia
1ef27ea1 20Source0: http://ffmpeg.org/releases/%{name}-%{version}.tar.bz2
e012ee1c 21# Source0-md5: 4f5d732d25eedfb072251b5314ba2093
fde29260
ER
22Source1: ffserver.init
23Source2: ffserver.sysconfig
38cf6de3 24Source3: ffserver.conf
0b43f655 25Patch0: %{name}-bug-803.patch
3a7b84be 26Patch1: %{name}-gsm.patch
5cb3acd0 27Patch2: faadbin-libfaadname.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
e380e18a 40BuildRequires: lame-libs-devel
6382c99d 41BuildRequires: libdc1394-devel
f1669449 42BuildRequires: libgsm-devel
94447fde 43BuildRequires: libraw1394-devel
9042663c 44BuildRequires: libtheora-devel >= 1.0-0.beta3
4814ac84 45BuildRequires: libtool >= 2:1.4d-3
64f8f109 46%{?with_va:BuildRequires: libva-devel >= 1.0.3}
0b43f655 47BuildRequires: libvdpau-devel
e380e18a 48BuildRequires: libvorbis-devel
64f8f109 49%{?with_vpx:BuildRequires: libvpx-devel >= 0.9.1}
d1ecc96e 50# X264_BUILD >= 83
1e2bbb41 51BuildRequires: libx264-devel >= 0.1.3-1.20100424_2245.1
0b43f655
AM
52BuildRequires: opencore-amr-devel
53BuildRequires: openjpeg-devel >= 1.3-2
17a2d1a8 54BuildRequires: speex-devel >= 1:1.2-rc1
e1fe03f7 55%ifarch %{ix86}
56%ifnarch i386 i486
76243dbd
JB
57BuildRequires: nasm
58%endif
e1fe03f7 59%endif
136f0f45 60BuildRequires: perl-Encode
1463656a 61BuildRequires: perl-tools-pod
ef3c0513 62BuildRequires: pkgconfig
db8052c8 63BuildRequires: rpmbuild(macros) >= 1.470
126fb805 64BuildRequires: schroedinger-devel
64f8f109
ER
65%{?with_doc:BuildRequires: tetex}
66%{?with_doc:BuildRequires: texi2html}
67%{?with_doc:BuildRequires: texinfo}
46f2a56b 68BuildRequires: xvid-devel >= 1:1.1.0
33a1c0f3 69BuildRequires: zlib-devel
57ebb8ad 70%{?with_autoreqdep:BuildConflicts: libpostproc}
54ec280e 71Requires: %{name}-libs = %{version}-%{release}
839e806f 72Requires: xvid >= 1:1.1.0
af49d6ab 73Obsoletes: libpostproc
539b540f 74BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
9fc4ad22 75
2a60eebe
JB
76%define _noautoreqdep libGL.so.1 libGLU.so.1
77
c01d7857
PS
78%define specflags -fno-strict-aliasing
79
80# -fomit-frame-pointer is always needed on x86 due to lack of registers (-fPIC takes one)
81%define specflags_ia32 -fomit-frame-pointer
82# -mmmx is needed to enable <mmintrin.h> code.
83%define specflags_i586 -mmmx
84%define specflags_i686 -mmmx
1162803a 85%define specflags_ppc -fPIC
c01d7857 86
9fc4ad22 87%description
85f7cea1
ER
88FFmpeg is a complete solution to record, convert and stream audio and
89video. It is a command line tool to convert one video file format to
90another. It also supports grabbing and encoding in real time from a TV
91card.
9fc4ad22 92
cdb7b42e 93%description -l pl.UTF-8
fda3e16d 94ffmpeg jest bardzo szybkim koderem audio/wideo w czasie rzeczywistym
cdb7b42e
JR
95oraz serwerem strumieni multimedialnych. ffmpeg potrafi zrzucać dane
96ze standardowego urządzenia Video4Linux i przekonwertować je w kilka
97formatów plików bazujących na kodowaniu DCT/kompensacji ruchu. Dźwięk
98jest kompresowany do strumienia MPEG audio layer 2 lub używając
fda3e16d 99strumienia kompatybilnego z AC3.
9fc4ad22 100
54ec280e
PG
101%package libs
102Summary: ffmpeg libraries
adcc0f76 103Summary(pl.UTF-8): Biblioteki ffmpeg
54ec280e 104Group: Libraries
e871e90b 105Suggests: faad2-libs
54ec280e
PG
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 \
e871e90b 274 --enable-libfaadbin \
f3692243 275 --enable-libgsm \
15c15700 276 --enable-libmp3lame \
126fb805 277 --enable-libschroedinger \
da99dcf2 278 --enable-libspeex \
126fb805
JB
279 --enable-libtheora \
280 --enable-libvorbis \
64f8f109 281 %{?with_vpx:--enable-libvpx} \
126fb805
JB
282 --enable-libx264 \
283 --enable-libxvid \
0b43f655
AM
284 --enable-libopencore-amrnb \
285 --enable-libopencore-amrwb \
286 --enable-libopenjpeg \
6382c99d 287 --enable-postproc \
d7493de8 288 --enable-pthreads \
9cf4d8a4 289 --enable-shared \
6382c99d 290 --enable-swscale \
0b43f655 291 --enable-vdpau \
75231f25 292 --enable-x11grab \
7a286645 293%ifnarch %{ix86} %{x8664}
e1fe03f7 294 --disable-mmx \
295%endif
296%ifarch i386 i486
05e1eb2f 297 --disable-mmx \
b524cd99 298%endif
0b43f655 299%if %{with nonfree}
48610c64 300 --enable-nonfree \
0b43f655 301 --enable-libfaac \
76243dbd 302%endif
75231f25 303 --enable-runtime-cpudetect
2305d791 304
da99dcf2
AM
305# force oldscaler build
306sed -i -e 's|#define.*CONFIG_OLDSCALER.*0|#define CONFIG_OLDSCALER 1|g' config.h
307
1ef27ea1
JB
308%{__make} \
309 V=1
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 \
1ef27ea1
JB
318 DESTDIR=$RPM_BUILD_ROOT \
319 V=1
539b540f 320
544421b2
ER
321cp -a config.h $RPM_BUILD_ROOT%{_includedir}/ffmpeg
322cp -a libavutil/intreadwrite.h $RPM_BUILD_ROOT%{_includedir}/libavutil
323cp -a libavutil/bswap.h $RPM_BUILD_ROOT%{_includedir}/libavutil
324cp -a libavutil/common.h $RPM_BUILD_ROOT%{_includedir}/libavutil
325cp -a libavutil/mem.h $RPM_BUILD_ROOT%{_includedir}/libavutil
326for a in libavutil/*/bswap.h; do
327 install -D $a $RPM_BUILD_ROOT%{_includedir}/$a
328done
9d4f8977
ER
329cp -a libavformat/riff.h $RPM_BUILD_ROOT%{_includedir}/libavformat
330cp -a libavformat/avio.h $RPM_BUILD_ROOT%{_includedir}/libavformat
544421b2 331
fde29260
ER
332install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/ffserver
333install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/ffserver
38cf6de3 334install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/ffserver.conf
539b540f 335mv -f $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/ffserver
9fc4ad22 336
2b2445b7
ER
337# install as ffmpeg-avconfig to avoid with possible programs looking for
338# ffmpeg-config and expecting --libs output from it which is not implemented
339# simple to do (by querying pkgconfig), but why?
9d4f8977 340install ffmpeg-avconfig $RPM_BUILD_ROOT%{_bindir}/ffmpeg-avconfig
2b2445b7 341
9fc4ad22
AM
342%clean
343rm -rf $RPM_BUILD_ROOT
344
1ef27ea1
JB
345%post libs -p /sbin/ldconfig
346%postun libs -p /sbin/ldconfig
539b540f 347
38cf6de3
ER
348%pre ffserver
349%groupadd -g 167 ffserver
350%useradd -g ffserver -u 167 ffserver
351
593d3a64
ER
352%post ffserver
353/sbin/chkconfig --add ffserver
354%service ffserver restart
355
38cf6de3 356%preun ffserver
593d3a64
ER
357if [ "$1" = 0 ]; then
358 %service ffserver stop
359 /sbin/chkconfig --del ffserver
360fi
361
38cf6de3
ER
362%postun ffserver
363if [ "$1" = 0 ]; then
364 %userremove ffserver
365 %groupremove ffserver
366fi
367
9fc4ad22
AM
368%files
369%defattr(644,root,root,755)
1ef27ea1 370%doc Changelog LICENSE README %{?with_doc:doc/*.html} doc/TODO
2a60eebe 371%attr(755,root,root) %{_bindir}/ffmpeg
3a7b84be 372%attr(755,root,root) %{_bindir}/ffprobe
da99dcf2
AM
373%dir %{_datadir}/ffmpeg
374%{_datadir}/ffmpeg/*.ffpreset
64f8f109
ER
375%{?with_doc:%{_mandir}/man1/ffmpeg.1*}
376%{?with_doc:%{_mandir}/man1/ffprobe.1*}
54ec280e
PG
377
378%files libs
379%defattr(644,root,root,755)
f50f7d7c 380%attr(755,root,root) %{_libdir}/libavcodec.so.*.*.*
314ef0df 381%attr(755,root,root) %ghost %{_libdir}/libavcodec.so.52
d0a0ec26 382%attr(755,root,root) %{_libdir}/libavdevice.so.*.*.*
314ef0df
ER
383%attr(755,root,root) %ghost %{_libdir}/libavdevice.so.52
384%attr(755,root,root) %{_libdir}/libavfilter.so.*.*.*
3a7b84be 385%attr(755,root,root) %ghost %{_libdir}/libavfilter.so.1
f50f7d7c 386%attr(755,root,root) %{_libdir}/libavformat.so.*.*.*
314ef0df 387%attr(755,root,root) %ghost %{_libdir}/libavformat.so.52
f50f7d7c 388%attr(755,root,root) %{_libdir}/libavutil.so.*.*.*
3a7b84be 389%attr(755,root,root) %ghost %{_libdir}/libavutil.so.50
d7493de8 390%attr(755,root,root) %{_libdir}/libpostproc.so.*.*.*
314ef0df 391%attr(755,root,root) %ghost %{_libdir}/libpostproc.so.51
ee032235 392%attr(755,root,root) %{_libdir}/libswscale.so.*.*.*
314ef0df
ER
393%attr(755,root,root) %ghost %{_libdir}/libswscale.so.0
394
539b540f
JB
395%files devel
396%defattr(644,root,root,755)
54ec280e 397%doc doc/optimization.txt
1ef27ea1 398%attr(755,root,root) %{_bindir}/ffmpeg-avconfig
539b540f 399%attr(755,root,root) %{_libdir}/libavcodec.so
d0a0ec26 400%attr(755,root,root) %{_libdir}/libavdevice.so
314ef0df 401%attr(755,root,root) %{_libdir}/libavfilter.so
539b540f 402%attr(755,root,root) %{_libdir}/libavformat.so
d7493de8 403%attr(755,root,root) %{_libdir}/libavutil.so
d2af4612 404%attr(755,root,root) %{_libdir}/libpostproc.so
ee032235 405%attr(755,root,root) %{_libdir}/libswscale.so
539b540f 406%{_includedir}/ffmpeg
6382c99d
AM
407%{_includedir}/libavcodec
408%{_includedir}/libavdevice
314ef0df 409%{_includedir}/libavfilter
6382c99d
AM
410%{_includedir}/libavformat
411%{_includedir}/libavutil
412%{_includedir}/libpostproc
413%{_includedir}/libswscale
1ef27ea1
JB
414%{_pkgconfigdir}/libavcodec.pc
415%{_pkgconfigdir}/libavdevice.pc
416%{_pkgconfigdir}/libavfilter.pc
417%{_pkgconfigdir}/libavformat.pc
418%{_pkgconfigdir}/libavutil.pc
419%{_pkgconfigdir}/libpostproc.pc
420%{_pkgconfigdir}/libswscale.pc
539b540f 421
9cf4d8a4
JB
422%files static
423%defattr(644,root,root,755)
1ef27ea1
JB
424%{_libdir}/libavcodec.a
425%{_libdir}/libavdevice.a
426%{_libdir}/libavfilter.a
427%{_libdir}/libavformat.a
428%{_libdir}/libavutil.a
429%{_libdir}/libpostproc.a
430%{_libdir}/libswscale.a
af49d6ab
JB
431
432%files ffplay
433%defattr(644,root,root,755)
434%attr(755,root,root) %{_bindir}/ffplay
64f8f109 435%{?with_doc:%{_mandir}/man1/ffplay.1*}
af49d6ab 436
fde29260
ER
437%files ffserver
438%defattr(644,root,root,755)
439%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ffserver.conf
440%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/ffserver
441%attr(755,root,root) %{_sbindir}/ffserver
442%attr(754,root,root) /etc/rc.d/init.d/ffserver
64f8f109 443%{?with_doc:%{_mandir}/man1/ffserver.1*}
38cf6de3
ER
444%dir %attr(770,root,ffserver) /var/cache/ffserver
445%dir %attr(770,root,ffserver) /var/log/ffserver
This page took 0.132614 seconds and 4 git commands to generate.