]> git.pld-linux.org Git - packages/ffmpeg.git/blame_incremental - ffmpeg.spec
- up to 0.6.1
[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
9Summary: FFmpeg is a very fast video and audio converter
10Summary(pl.UTF-8): Koder audio/wideo czasu rzeczywistego oraz serwer strumieni
11Name: ffmpeg
12Version: 0.6.1
13Release: 1
14# LGPL or GPL, chosen at configure time (GPL version is more featured)
15# (postprocessing, ac3, xvid, x264, faad)
16License: GPL v3+ with LGPL v3+ parts
17Group: Applications/Multimedia
18Source0: http://ffmpeg.mplayerhq.hu/releases/%{name}-%{version}.tar.bz2
19# Source0-md5: 4f5d732d25eedfb072251b5314ba2093
20Source1: ffserver.init
21Source2: ffserver.sysconfig
22Source3: ffserver.conf
23Patch0: %{name}-bug-803.patch
24Patch1: %{name}-gsm.patch
25Patch2: faadbin-libfaadname.patch
26# vhook is gone. this patch needs different approach
27#PatchX: imagewidth.patch
28# http://webm.googlecode.com/files/ffmpeg-0.6_libvpx-0.9.1.diff.gz
29Patch3: ffmpeg-0.6_libvpx-0.9.1.diff
30URL: http://www.ffmpeg.org/
31BuildRequires: SDL-devel
32BuildRequires: dirac-devel >= 1.0.0
33BuildRequires: faac-devel
34BuildRequires: faad2-devel
35BuildRequires: freetype-devel
36%ifarch ppc
37# require version with altivec support fixed
38BuildRequires: gcc >= 5:3.3.2-3
39%endif
40%{?with_imlib2:BuildRequires: imlib2-devel >= 1.3.0}
41BuildRequires: lame-libs-devel
42BuildRequires: libdc1394-devel
43BuildRequires: libgsm-devel
44BuildRequires: libraw1394-devel
45BuildRequires: libtheora-devel >= 1.0-0.beta3
46BuildRequires: libtool >= 2:1.4d-3
47BuildRequires: libva-devel >= 1.0.3
48BuildRequires: libvdpau-devel
49BuildRequires: libvorbis-devel
50BuildRequires: libvpx-devel >= 0.9.1
51# X264_BUILD >= 83
52BuildRequires: libx264-devel >= 0.1.3-1.20100424_2245.1
53BuildRequires: opencore-amr-devel
54BuildRequires: openjpeg-devel >= 1.3-2
55BuildRequires: speex-devel >= 1:1.2-rc1
56%ifarch %{ix86}
57%ifnarch i386 i486
58BuildRequires: nasm
59%endif
60%endif
61BuildRequires: perl-Encode
62BuildRequires: perl-tools-pod
63BuildRequires: pkgconfig
64BuildRequires: rpmbuild(macros) >= 1.470
65BuildRequires: schroedinger-devel
66BuildRequires: tetex
67BuildRequires: texi2html
68BuildRequires: texinfo
69BuildRequires: xvid-devel >= 1:1.1.0
70BuildRequires: zlib-devel
71%{?with_autoreqdep:BuildConflicts: libpostproc}
72Requires: %{name}-libs = %{version}-%{release}
73Requires: xvid >= 1:1.1.0
74Obsoletes: libpostproc
75BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
76
77%define _noautoreqdep libGL.so.1 libGLU.so.1
78
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
86%define specflags_ppc -fPIC
87
88%description
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.
93
94%description -l pl.UTF-8
95ffmpeg jest bardzo szybkim koderem audio/wideo w czasie rzeczywistym
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
100strumienia kompatybilnego z AC3.
101
102%package libs
103Summary: ffmpeg libraries
104Summary(pl.UTF-8): Biblioteki ffmpeg
105Group: Libraries
106Suggests: faad2-libs
107
108%description libs
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.
115
116%description libs -l pl.UTF-8
117Ten pakiet zawiera biblioteki współdzielone ffmpeg.
118
119%package devel
120Summary: ffmpeg header files
121Summary(pl.UTF-8): Pliki nagłówkowe ffmpeg
122Group: Development/Libraries
123Requires: %{name}-libs = %{version}-%{release}
124# for libavcodec:
125Requires: dirac-devel
126Requires: faac-devel
127Requires: faad2-devel
128Requires: lame-libs-devel
129Requires: libgsm-devel
130Requires: libraw1394-devel
131Requires: libtheora-devel >= 1.0-0.alpha7
132Requires: libvorbis-devel
133Requires: libx264-devel >= 0.1.2-1.20060828_2245.1
134Requires: xvid-devel >= 1:1.1.0
135Requires: zlib-devel
136Obsoletes: libpostproc-devel
137
138%description devel
139ffmpeg header files.
140
141%description devel -l pl.UTF-8
142Pliki nagłówkowe ffmpeg.
143
144%package static
145Summary: ffmpeg static libraries
146Summary(pl.UTF-8): Statyczne biblioteki ffmpeg
147Group: Development/Libraries
148Requires: %{name}-devel = %{version}-%{release}
149
150%description static
151ffmpeg static libraries (libavcodec and libavformat).
152
153%description static -l pl.UTF-8
154Statyczne biblioteki ffmpeg (libavcodec i libavformat).
155
156%package ffplay
157Summary: FFplay - SDL-based media player
158Summary(pl.UTF-8): FFplay - odtwarzacz mediów oparty na SDL
159Group: Applications/Multimedia
160Requires: %{name}-libs = %{version}-%{release}
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
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.
171
172%package ffserver
173Summary: FFserver video server
174Summary(pl.UTF-8): FFserver - serwer strumieni obrazu
175Group: Daemons
176Requires(post,preun): /sbin/chkconfig
177Requires: %{name}-libs = %{version}-%{release}
178Requires: rc-scripts >= 0.4.0.10
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
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).
192
193%prep
194%setup -q
195%patch0 -p1
196%patch1 -p0
197%patch2 -p1
198%patch3 -p0
199
200# package the grep result for mplayer, the result formatted as ./mplayer/configure
201cat <<EOF > ffmpeg-avconfig
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
211cat <<'EOF' >> ffmpeg-avconfig
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
253%build
254# notes:
255# - it's not autoconf configure
256# - --disable-debug, --disable-optimizations, tune=generic causes not to override our optflags
257./configure \
258 --arch=%{_target_base_arch} \
259 --prefix=%{_prefix} \
260 --libdir=%{_libdir} \
261 --shlibdir=%{_libdir} \
262 --mandir=%{_mandir} \
263 --cc="%{__cc}" \
264 --extra-cflags="-D_GNU_SOURCE=1 %{rpmcppflags} %{rpmcflags}" \
265 --extra-ldflags="%{rpmcflags} %{rpmldflags}" \
266 --disable-debug \
267 --disable-optimizations \
268 --disable-stripping \
269 --enable-avfilter \
270 --enable-gpl \
271 --enable-version3 \
272 --enable-libdc1394 \
273 --enable-libdirac \
274 --enable-libfaad \
275 --enable-libfaadbin \
276 --enable-libgsm \
277 --enable-libmp3lame \
278 --enable-libschroedinger \
279 --enable-libspeex \
280 --enable-libtheora \
281 --enable-libvorbis \
282 --enable-libvpx \
283 --enable-libx264 \
284 --enable-libxvid \
285 --enable-libopencore-amrnb \
286 --enable-libopencore-amrwb \
287 --enable-libopenjpeg \
288 --enable-postproc \
289 --enable-pthreads \
290 --enable-shared \
291 --enable-swscale \
292 --enable-vdpau \
293 --enable-x11grab \
294%ifnarch %{ix86} %{x8664}
295 --disable-mmx \
296%endif
297%ifarch i386 i486
298 --disable-mmx \
299%endif
300%if %{with nonfree}
301 --enable-nonfree \
302 --enable-libfaac \
303%endif
304 --enable-runtime-cpudetect
305
306# force oldscaler build
307sed -i -e 's|#define.*CONFIG_OLDSCALER.*0|#define CONFIG_OLDSCALER 1|g' config.h
308
309%{__make}
310
311%install
312rm -rf $RPM_BUILD_ROOT
313install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_sbindir},/etc/{sysconfig,rc.d/init.d}} \
314 $RPM_BUILD_ROOT%{_includedir}/ffmpeg \
315 $RPM_BUILD_ROOT/var/{cache,log}/ffserver
316
317%{__make} install \
318 DESTDIR=$RPM_BUILD_ROOT
319
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
328cp -a libavformat/riff.h $RPM_BUILD_ROOT%{_includedir}/libavformat
329cp -a libavformat/avio.h $RPM_BUILD_ROOT%{_includedir}/libavformat
330
331install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/ffserver
332install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/ffserver
333install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/ffserver.conf
334mv -f $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/ffserver
335
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?
339install ffmpeg-avconfig $RPM_BUILD_ROOT%{_bindir}/ffmpeg-avconfig
340
341%clean
342rm -rf $RPM_BUILD_ROOT
343
344%post libs -p /sbin/ldconfig
345%postun libs -p /sbin/ldconfig
346
347%pre ffserver
348%groupadd -g 167 ffserver
349%useradd -g ffserver -u 167 ffserver
350
351%post ffserver
352/sbin/chkconfig --add ffserver
353%service ffserver restart
354
355%preun ffserver
356if [ "$1" = 0 ]; then
357 %service ffserver stop
358 /sbin/chkconfig --del ffserver
359fi
360
361%postun ffserver
362if [ "$1" = 0 ]; then
363 %userremove ffserver
364 %groupremove ffserver
365fi
366
367%files
368%defattr(644,root,root,755)
369%doc Changelog README doc/*.html doc/TODO
370%attr(755,root,root) %{_bindir}/ffmpeg
371%attr(755,root,root) %{_bindir}/ffprobe
372%dir %{_datadir}/ffmpeg
373%{_datadir}/ffmpeg/*.ffpreset
374%{_mandir}/man1/ffmpeg.1*
375%{_mandir}/man1/ffprobe.1*
376
377%files libs
378%defattr(644,root,root,755)
379%attr(755,root,root) %{_libdir}/libavcodec.so.*.*.*
380%attr(755,root,root) %ghost %{_libdir}/libavcodec.so.52
381%attr(755,root,root) %{_libdir}/libavdevice.so.*.*.*
382%attr(755,root,root) %ghost %{_libdir}/libavdevice.so.52
383%attr(755,root,root) %{_libdir}/libavfilter.so.*.*.*
384%attr(755,root,root) %ghost %{_libdir}/libavfilter.so.1
385%attr(755,root,root) %{_libdir}/libavformat.so.*.*.*
386%attr(755,root,root) %ghost %{_libdir}/libavformat.so.52
387%attr(755,root,root) %{_libdir}/libavutil.so.*.*.*
388%attr(755,root,root) %ghost %{_libdir}/libavutil.so.50
389%attr(755,root,root) %{_libdir}/libpostproc.so.*.*.*
390%attr(755,root,root) %ghost %{_libdir}/libpostproc.so.51
391%attr(755,root,root) %{_libdir}/libswscale.so.*.*.*
392%attr(755,root,root) %ghost %{_libdir}/libswscale.so.0
393
394%files devel
395%defattr(644,root,root,755)
396%doc doc/optimization.txt
397%attr(755,root,root) %{_libdir}/libavcodec.so
398%attr(755,root,root) %{_libdir}/libavdevice.so
399%attr(755,root,root) %{_libdir}/libavfilter.so
400%attr(755,root,root) %{_libdir}/libavformat.so
401%attr(755,root,root) %{_libdir}/libavutil.so
402%attr(755,root,root) %{_libdir}/libpostproc.so
403%attr(755,root,root) %{_libdir}/libswscale.so
404%attr(755,root,root) %{_bindir}/ffmpeg-avconfig
405%{_includedir}/ffmpeg
406%{_includedir}/libavcodec
407%{_includedir}/libavdevice
408%{_includedir}/libavfilter
409%{_includedir}/libavformat
410%{_includedir}/libavutil
411%{_includedir}/libpostproc
412%{_includedir}/libswscale
413%{_pkgconfigdir}/*.pc
414
415%files static
416%defattr(644,root,root,755)
417%{_libdir}/lib*.a
418
419%files ffplay
420%defattr(644,root,root,755)
421%attr(755,root,root) %{_bindir}/ffplay
422%{_mandir}/man1/ffplay.1*
423
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*
431%dir %attr(770,root,ffserver) /var/cache/ffserver
432%dir %attr(770,root,ffserver) /var/log/ffserver
This page took 0.428375 seconds and 4 git commands to generate.