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