]> git.pld-linux.org Git - packages/ffmpeg.git/blame_incremental - ffmpeg.spec
- add imagewidth.patch
[packages/ffmpeg.git] / ffmpeg.spec
... / ...
CommitLineData
1# TODO
2# - libnut enabled no (http://www.nut-container.org/)
3#
4# Conditional build:
5%bcond_with amr # 3GPP Adaptive Multi Rate (AMR) codec support; makes package non-distributable
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: Realtime audio/video encoder and streaming server
10Summary(pl.UTF-8): Koder audio/wideo czasu rzeczywistego oraz serwer strumieni
11Name: ffmpeg
12Version: 0.5
13Release: 3
14# LGPL or GPL, chosen at configure time (GPL version is more featured)
15# (postprocessing, ac3, xvid, x264, faad)
16License: GPL v2+ with LGPL v2.1+ parts
17Group: Applications/Multimedia
18Source0: http://ffmpeg.mplayerhq.hu/releases/%{name}-%{version}.tar.bz2
19# Source0-md5: be8503f15c3b81ba00eb8379ca8dcf33
20Source1: ffserver.init
21Source2: ffserver.sysconfig
22Source3: ffserver.conf
23Patch0: %{name}-x264.patch
24Patch1: %{name}-bug-803.patch
25Patch2: imagewidth.patch
26URL: http://ffmpeg.mplayerhq.hu/
27BuildRequires: SDL-devel
28%if %{with amr}
29BuildRequires: amrnb-devel >= 6.1.0.4
30BuildRequires: amrwb-devel >= 7.0.0.1
31%endif
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: libvorbis-devel
48BuildRequires: libx264-devel >= 0.1.2-1.20081023
49BuildRequires: speex-devel
50%ifarch %{ix86}
51%ifnarch i386 i486
52BuildRequires: nasm
53%endif
54%endif
55BuildRequires: perl-tools-pod
56BuildRequires: pkgconfig
57BuildRequires: rpmbuild(macros) >= 1.470
58BuildRequires: schroedinger-devel
59BuildRequires: tetex
60BuildRequires: texi2html
61BuildRequires: texinfo
62%{?with_amr:BuildRequires: unzip}
63BuildRequires: xvid-devel >= 1:1.1.0
64BuildRequires: zlib-devel
65%{?with_autoreqdep:BuildConflicts: libpostproc}
66Requires: %{name}-libs = %{version}-%{release}
67Requires: xvid >= 1:1.1.0
68Obsoletes: libpostproc
69BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
70
71%define _noautoreqdep libGL.so.1 libGLU.so.1
72
73%define specflags -fno-strict-aliasing
74
75# -fomit-frame-pointer is always needed on x86 due to lack of registers (-fPIC takes one)
76%define specflags_ia32 -fomit-frame-pointer
77# -mmmx is needed to enable <mmintrin.h> code.
78%define specflags_i586 -mmmx
79%define specflags_i686 -mmmx
80%define specflags_ppc -fPIC
81
82%description
83ffmpeg is a hyper fast realtime audio/video encoder and streaming
84server. It can grab from a standard Video4Linux video source and
85convert it into several file formats based on DCT/motion compensation
86encoding. Sound is compressed in MPEG audio layer 2 or using an AC3
87compatible stream.
88
89%description -l pl.UTF-8
90ffmpeg jest bardzo szybkim koderem audio/wideo w czasie rzeczywistym
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
95strumienia kompatybilnego z AC3.
96
97%package libs
98Summary: ffmpeg libraries
99Summary(pl.UTF-8): Biblioteki ffmpeg
100Group: Libraries
101
102%description libs
103This package contains ffmpeg shared libraries.
104
105%description libs -l pl.UTF-8
106Ten pakiet zawiera biblioteki współdzielone ffmpeg.
107
108%package devel
109Summary: ffmpeg header files
110Summary(pl.UTF-8): Pliki nagłówkowe ffmpeg
111Group: Development/Libraries
112Requires: %{name}-libs = %{version}-%{release}
113# for libavcodec:
114%if %{with amr}
115Requires: amrnb-devel
116Requires: amrwb-devel >= 5.3.0
117%endif
118Requires: dirac-devel
119Requires: faac-devel
120Requires: faad2-devel
121Requires: lame-libs-devel
122Requires: libgsm-devel
123Requires: libraw1394-devel
124Requires: libtheora-devel >= 1.0-0.alpha7
125Requires: libvorbis-devel
126Requires: libx264-devel >= 0.1.2-1.20060828_2245.1
127Requires: xvid-devel >= 1:1.1.0
128Requires: zlib-devel
129Obsoletes: libpostproc-devel
130
131%description devel
132ffmpeg header files.
133
134%description devel -l pl.UTF-8
135Pliki nagłówkowe ffmpeg.
136
137%package static
138Summary: ffmpeg static libraries
139Summary(pl.UTF-8): Statyczne biblioteki ffmpeg
140Group: Development/Libraries
141Requires: %{name}-devel = %{version}-%{release}
142
143%description static
144ffmpeg static libraries (libavcodec and libavformat).
145
146%description static -l pl.UTF-8
147Statyczne biblioteki ffmpeg (libavcodec i libavformat).
148
149%package ffplay
150Summary: FFplay - SDL-based media player
151Summary(pl.UTF-8): FFplay - odtwarzacz mediów oparty na SDL
152Group: Applications/Multimedia
153Requires: %{name}-libs = %{version}-%{release}
154
155%description ffplay
156FFplay is a very simple and portable media player using the FFmpeg
157libraries and the SDL library. It is mostly used as a test bench for
158the various APIs of FFmpeg.
159
160%description ffplay -l pl.UTF-8
161FFplay to bardzo prosty i przenośny odtwarzacz mediów używający
162bibliotek FFmpeg oraz biblioteki SDL. Jest używany głównie do
163testowania różnych API FFmpeg.
164
165%package vhook-imlib2
166Summary: imlib2 based hook
167Summary(pl.UTF-8): Moduł przejściowy oparty o imlib2
168Group: Libraries
169Requires: %{name}-libs = %{version}-%{release}
170
171%description vhook-imlib2
172This module implements a text overlay for a video image. Currently it
173supports a fixed overlay or reading the text from a file. The string
174is passed through strftime so that it is easy to imprint the date and
175time onto the image.
176
177%description vhook-imlib2 -l pl.UTF-8
178Ten moduł implementuje tekstową nakładkę dla obrazu. Aktualnie
179obsługuje stałą nakładkę lub wczytywanie tekstu z pliku. Łańcuch jest
180przepuszczany przez strftime, więc łatwo umieścić datę i czas na
181obrazie.
182
183%package ffserver
184Summary: FFserver video server
185Summary(pl.UTF-8): FFserver - serwer strumieni obrazu
186Group: Daemons
187Requires(post,preun): /sbin/chkconfig
188Requires: %{name}-libs = %{version}-%{release}
189Requires: rc-scripts >= 0.4.0.10
190
191%description ffserver
192FFserver is a streaming server for both audio and video. It supports
193several live feeds, streaming from files and time shifting on live
194feeds (you can seek to positions in the past on each live feed,
195provided you specify a big enough feed storage in ffserver.conf).
196
197%description ffserver -l pl.UTF-8
198FFserver to serwer strumieni dla dźwięku i obrazu. Obsługuje kilka
199źródeł na żywo, przekazywanie strumieni z plików i przesuwanie w
200czasie dla źródeł na żywo (można przeskakiwać na położenia w
201przeszłości dla każdego źródła na żywo, pod warunkiem odpowiednio
202dużej przestrzeni na dane skonfigurowanej w ffserver.conf).
203
204%prep
205%setup -q
206%patch0 -p1
207%patch1 -p1
208%patch2 -p1
209
210# package the grep result for mplayer, the result formatted as ./mplayer/configure
211cat <<EOF > ffmpeg-avconfig
212#! /bin/sh
213_libavdecoders_all="`sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`"
214_libavencoders_all="`sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`"
215_libavparsers_all="`sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`"
216_libavbsfs_all="`sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`"
217_libavdemuxers_all="`sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`"
218_libavmuxers_all="`sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`"
219_libavprotocols_all="`sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`"
220EOF
221cat <<'EOF' >> ffmpeg-avconfig
222
223case "$1" in
224--decoders)
225 echo $_libavdecoders_all
226 ;;
227--encoders)
228 echo $_libavencoders_all
229 ;;
230--parsers)
231 echo $_libavparsers_all
232 ;;
233--bsfs)
234 echo $_libavbsfs_all
235 ;;
236--demuxers)
237 echo $_libavdemuxers_all
238 ;;
239--muxers)
240 echo $_libavmuxers_all
241 ;;
242--protocols)
243 echo $_libavprotocols_all
244 ;;
245*)
246 cat <<USAGE
247Usage: $0 [OPTION]
248Options:
249 --decoders
250 --encoders
251 --parsers
252 --bsfs
253 --demuxers
254 --muxers
255 --protocols
256USAGE
257 exit 1;;
258esac
259
260exit 0
261EOF
262
263%build
264# notes:
265# - it's not autoconf configure
266# - --disable-debug, --disable-optimizations, tune=generic causes not to override our optflags
267./configure \
268 --arch=%{_target_base_arch} \
269 --prefix=%{_prefix} \
270 --libdir=%{_libdir} \
271 --shlibdir=%{_libdir} \
272 --mandir=%{_mandir} \
273 --cc="%{__cc}" \
274 --extra-cflags="-D_GNU_SOURCE=1 %{rpmcppflags} %{rpmcflags} -I/usr/include/libavcodec -I/usr/include/libswscale" \
275 --extra-ldflags="%{rpmcflags} %{rpmldflags}" \
276 --disable-debug \
277 --disable-optimizations \
278 --disable-stripping \
279 --enable-gpl \
280 --enable-libfaac \
281 --enable-libfaad \
282 --enable-libfaadbin \
283 --enable-libdc1394 \
284 --enable-libdirac \
285 --enable-libgsm \
286 --enable-libmp3lame \
287 --enable-libschroedinger \
288 --enable-libspeex \
289 --enable-libtheora \
290 --enable-libvorbis \
291 --enable-libx264 \
292 --enable-libxvid \
293 --enable-postproc \
294 --enable-pthreads \
295 --enable-shared \
296 --enable-swscale \
297%ifnarch %{ix86} %{x8664}
298 --disable-mmx \
299%endif
300%ifarch i386 i486
301 --disable-mmx \
302%endif
303%if %{with amr}
304 --enable-nonfree \
305 --enable-libamr-nb \
306 --enable-libamr-wb
307%endif
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 doc/*.html doc/TODO
373%attr(755,root,root) %{_bindir}/ffmpeg
374%dir %{_datadir}/ffmpeg
375%{_datadir}/ffmpeg/*.ffpreset
376%{_mandir}/man1/ffmpeg.1*
377
378%files libs
379%defattr(644,root,root,755)
380%attr(755,root,root) %{_libdir}/libavcodec.so.*.*.*
381%attr(755,root,root) %{_libdir}/libavdevice.so.*.*.*
382%attr(755,root,root) %{_libdir}/libavformat.so.*.*.*
383%attr(755,root,root) %{_libdir}/libavutil.so.*.*.*
384%attr(755,root,root) %{_libdir}/libpostproc.so.*.*.*
385%attr(755,root,root) %{_libdir}/libswscale.so.*.*.*
386%attr(755,root,root) %ghost %{_libdir}/libavcodec.so.[0-9][0-9]
387%attr(755,root,root) %ghost %{_libdir}/libavdevice.so.[0-9][0-9]
388%attr(755,root,root) %ghost %{_libdir}/libavformat.so.[0-9][0-9]
389%attr(755,root,root) %ghost %{_libdir}/libavutil.so.[0-9][0-9]
390%attr(755,root,root) %ghost %{_libdir}/libpostproc.so.[0-9][0-9]
391%attr(755,root,root) %ghost %{_libdir}/libswscale.so.[0-9]
392%dir %{_libdir}/vhook
393%attr(755,root,root) %{_libdir}/vhook/drawtext.so
394%attr(755,root,root) %{_libdir}/vhook/fish.so
395%attr(755,root,root) %{_libdir}/vhook/null.so
396%attr(755,root,root) %{_libdir}/vhook/ppm.so
397%attr(755,root,root) %{_libdir}/vhook/watermark.so
398
399%files devel
400%defattr(644,root,root,755)
401%doc doc/optimization.txt
402%attr(755,root,root) %{_libdir}/libavcodec.so
403%attr(755,root,root) %{_libdir}/libavdevice.so
404%attr(755,root,root) %{_libdir}/libavformat.so
405%attr(755,root,root) %{_libdir}/libavutil.so
406%attr(755,root,root) %{_libdir}/libpostproc.so
407%attr(755,root,root) %{_libdir}/libswscale.so
408%attr(755,root,root) %{_bindir}/ffmpeg-avconfig
409%{_includedir}/ffmpeg
410%{_includedir}/libavcodec
411%{_includedir}/libavdevice
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%{_mandir}/man1/ffplay.1*
426
427%if %{with imlib2}
428%files vhook-imlib2
429%defattr(644,root,root,755)
430%attr(755,root,root) %{_libdir}/vhook/imlib2.so
431%endif
432
433%files ffserver
434%defattr(644,root,root,755)
435%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ffserver.conf
436%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/ffserver
437%attr(755,root,root) %{_sbindir}/ffserver
438%attr(754,root,root) /etc/rc.d/init.d/ffserver
439%{_mandir}/man1/ffserver.1*
440%dir %attr(770,root,ffserver) /var/cache/ffserver
441%dir %attr(770,root,ffserver) /var/log/ffserver
This page took 0.053556 seconds and 4 git commands to generate.