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