]> git.pld-linux.org Git - packages/ffmpeg.git/blob - ffmpeg.spec
c74dcf07a93afdb652195ef3c506c32cb13563e1
[packages/ffmpeg.git] / ffmpeg.spec
1 #
2 # TODO: only lzo 1.x is supported
3 #       - make (ffmpeg code inside) mplayer play .3gp mobile phone movies 
4 #         (ffplay and vlc plays them fine
5 #       - revert amr bcond when done
6 #
7 # Conditional build:
8 %bcond_without  imlib2          # don't build imlib2 vhook module
9 %bcond_without  autoreqdep      # don't care about package name deps generated by rpm
10 %bcond_with     amr             # build with 3GPP Adaptive Multi Rate (AMR) speech codec
11 #
12 %define snap    20060129
13 %define _rel 8.8
14 Summary:        Realtime audio/video encoder and streaming server
15 Summary(pl):    Koder audio/wideo czasu rzeczywistego oraz serwer strumieni
16 Name:           ffmpeg
17 Version:        0.4.9
18 Release:        3.%{snap}.%{_rel}
19 # LGPL or GPL, chosen at configure time (GPL version is more featured)
20 #
21 # (BTW. what are the 'more' features mentioned above?)
22 #
23 # Some parts of the code *is* LGPL (for example libavformat amr.c) so 
24 # it is possible to include /and distribute/ external 3GPP AMR codecs 
25 # (some kind of public domain with patent restrictions) to the 
26 # GPL-licensed stuff /and keep GPL license/.
27 %if %{with amr}
28 License:        GPL with LGPL/Public Domain parts
29 %else
30 License:        GPL with LGPL parts
31 %endif
32 Group:          Applications/Multimedia
33 #Source0:       http://dl.sourceforge.net/ffmpeg/%{name}-%{version}-pre1.tar.gz
34 #Source0:       ftp://ftp2.mplayerhq.hu/MPlayer/cvs/FFMpeg-%{snap}.tar.bz2
35 Source0:        %{name}-%{snap}.tar.bz2
36 # Source0-md5:  d8ea09431d6c0c91bfd35e0ca74a67e1
37 Source1:        ffserver.init
38 Source2:        ffserver.sysconfig
39 Source3:        ffserver.conf
40 %if %{with amr}
41 # AMR WB FLOAT 
42 #Source4:       http://www.3gpp.org/ftp/Specs/latest/Rel-6/26_series/26204-600.zip
43 Source4:        http://www.3gpp.org/ftp/Specs/latest/Rel-5/26_series/26204-530.zip
44 # Source4-md5:  988060bdb18b5d64b8bd82c3507d2420
45 # AMR NB FLOAT 
46 #Source6:       http://www.3gpp.org/ftp/Specs/latest/Rel-6/26_series/26104-610.zip
47 Source6:        http://www.3gpp.org/ftp/Specs/latest/Rel-5/26_series/26104-540.zip
48 # Source6-md5:  4dcbeb2bc28bf86e7131fe4cae3e0dec
49 %endif
50
51 Patch0:         %{name}-libtool.patch
52 Patch1:         %{name}-libdir.patch
53 Patch2:         %{name}-gcc4.patch
54 URL:            http://ffmpeg.sourceforge.net/
55 BuildRequires:  SDL-devel
56 BuildRequires:  faac-devel
57 BuildRequires:  faad2-devel
58 BuildRequires:  freetype-devel
59 %ifarch ppc
60 # require version with altivec support fixed
61 BuildRequires:  gcc >= 5:3.3.2-3
62 %endif
63 %{?with_imlib2:BuildRequires:   imlib2-devel >= 1.1.0-2}
64 BuildRequires:  lame-libs-devel
65 BuildRequires:  libdts-devel
66 BuildRequires:  libgsm-devel
67 BuildRequires:  libtheora-devel
68 BuildRequires:  libtool >= 2:1.4d-3
69 BuildRequires:  libvorbis-devel
70 #BuildRequires: libx264-devel
71 BuildRequires:  lzo-devel
72 %ifarch %{ix86}
73 %ifnarch i386 i486
74 BuildRequires:  nasm
75 %endif
76 %endif
77 BuildRequires:  perl-tools-pod
78 BuildRequires:  rpmbuild(macros) >= 1.268
79 BuildRequires:  tetex
80 BuildRequires:  texinfo
81 %{?with_amr:BuildRequires:      unzip}
82 BuildRequires:  xvid-devel >= 1:1.1.0
83 BuildRequires:  zlib-devel
84 %{?with_autoreqdep:BuildConflicts:      libpostproc}
85 Requires:       %{name}-libs = %{version}-%{release}
86 Requires:       xvid >= 1:1.1.0
87 Obsoletes:      libpostproc
88 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
89
90 %define         _noautoreqdep   libGL.so.1 libGLU.so.1
91
92 %define         specflags       -fno-strict-aliasing
93
94 # -fomit-frame-pointer is always needed on x86 due to lack of registers (-fPIC takes one)
95 %define         specflags_ia32  -fomit-frame-pointer
96 # -mmmx is needed to enable <mmintrin.h> code.
97 %define         specflags_i586  -mmmx
98 %define         specflags_i686  -mmmx
99
100 %description
101 ffmpeg is a hyper fast realtime audio/video encoder and streaming
102 server. It can grab from a standard Video4Linux video source and
103 convert it into several file formats based on DCT/motion compensation
104 encoding. Sound is compressed in MPEG audio layer 2 or using an AC3
105 compatible stream.
106
107 %description -l pl
108 ffmpeg jest bardzo szybkim koderem audio/wideo w czasie rzeczywistym
109 oraz serwerem strumieni multimedialnych. ffmpeg potrafi zrzucaæ dane
110 ze standardowego urz±dzenia Video4Linux i przekonwertowaæ je w kilka
111 formatów plików bazuj±cych na kodowaniu DCT/kompensacji ruchu. D¼wiêk
112 jest kompresowany do strumienia MPEG audio layer 2 lub u¿ywaj±c
113 strumienia kompatybilnego z AC3.
114
115 %package libs
116 Summary:        ffmpeg libraries
117 Summary(pl):    Biblioteki ffmpeg
118 Group:          Libraries
119
120 %description libs
121 This package contains ffmpeg shared libraries.
122
123 %description libs -l pl
124 Ten pakiet zawiera biblioteki wspó³dzielone ffmpeg.
125
126 %package devel
127 Summary:        ffmpeg header files
128 Summary(pl):    Pliki nag³ówkowe ffmpeg
129 Group:          Development/Libraries
130 Requires:       %{name}-libs = %{version}-%{release}
131 # for libavcodec:
132 Requires:       faac-devel
133 Requires:       lame-libs-devel
134 Requires:       libdts-devel
135 Requires:       libgsm-devel
136 Requires:       libtheora-devel
137 Requires:       libvorbis-devel
138 Requires:       lzo-devel
139 Requires:       xvid-devel >= 1:1.1.0
140 Requires:       zlib-devel
141 Obsoletes:      libpostproc-devel
142
143 %description devel
144 ffmpeg header files.
145
146 %description devel -l pl
147 Pliki nag³ówkowe ffmpeg.
148
149 %package static
150 Summary:        ffmpeg static libraries
151 Summary(pl):    Statyczne biblioteki ffmpeg
152 Group:          Development/Libraries
153 Requires:       %{name}-devel = %{version}-%{release}
154
155 %description static
156 ffmpeg static libraries (libavcodec and libavformat).
157
158 %description static -l pl
159 Statyczne biblioteki ffmpeg (libavcodec i libavformat).
160
161 %package ffplay
162 Summary:        FFplay - SDL-based media player
163 Summary(pl):    FFplay - odtwarzacz mediów oparty na SDL
164 Group:          Applications/Multimedia
165 Requires:       %{name}-libs = %{version}-%{release}
166
167 %description ffplay
168 FFplay is a very simple and portable media player using the FFmpeg
169 libraries and the SDL library. It is mostly used as a test bench for
170 the various APIs of FFmpeg.
171
172 %description ffplay -l pl
173 FFplay to bardzo prosty i przeno¶ny odtwarzacz mediów u¿ywaj±cy
174 bibliotek FFmpeg oraz biblioteki SDL. Jest u¿ywany g³ównie do
175 testowania ró¿nych API FFmpeg.
176
177 %package vhook-imlib2
178 Summary:        imlib2 based hook
179 Summary(pl):    Modu³ przej¶ciowy oparty o imlib2
180 Group:          Libraries
181 Requires:       %{name}-libs = %{version}-%{release}
182
183 %description vhook-imlib2
184 This module implements a text overlay for a video image. Currently it
185 supports a fixed overlay or reading the text from a file. The string
186 is passed through strftime so that it is easy to imprint the date and
187 time onto the image.
188
189 %description vhook-imlib2 -l pl
190 Ten modu³ implementuje tekstow± nak³adkê dla obrazu. Aktualnie
191 obs³uguje sta³± nak³adkê lub wczytywanie tekstu z pliku. £añcuch jest
192 przepuszczany przez strftime, wiêc ³atwo umie¶ciæ datê i czas na
193 obrazie.
194
195 %package ffserver
196 Summary:        FFserver video server
197 Summary(pl):    FFserver - serwer strumieni obrazu
198 Group:          Daemons
199 Requires(post,preun):   /sbin/chkconfig
200 Requires:       rc-scripts >= 0.4.0.10
201 Requires:       %{name}-libs = %{version}-%{release}
202
203 %description ffserver
204 FFserver is a streaming server for both audio and video. It supports
205 several live feeds, streaming from files and time shifting on live
206 feeds (you can seek to positions in the past on each live feed,
207 provided you specify a big enough feed storage in ffserver.conf).
208
209 %description ffserver -l pl
210 FFserver to serwer strumieni dla d¼wiêku i obrazu. Obs³uguje kilka
211 ¼róde³ na ¿ywo, przekazywanie strumieni z plików i przesuwanie w
212 czasie dla ¼róde³ na ¿ywo (mo¿na przeskakiwaæ na po³o¿enia w
213 przesz³o¶ci dla ka¿dego ¼ród³a na ¿ywo, pod warunkiem odpowiednio
214 du¿ej przestrzeni na dane skonfigurowanej w ffserver.conf).
215
216 %prep
217 %setup -q -n %{name}
218 %patch0 -p1
219 %patch1 -p1
220 %patch2 -p1
221 %if %{with amr}
222 cd libavcodec
223 mkdir amrwb_float
224 mkdir amr
225 mkdir amr_float
226 # put 26204-xxx.zip into libavcodec/amrwb_float
227 cd amrwb_float
228 unzip -j %{SOURCE4}
229 unzip -j 26204-530_ANSI-C_source_code.zip
230 # put 26104-xxx.zip into libavcodec/amr_float
231 cd ../amr_float
232 unzip -j %{SOURCE6}
233 unzip -j 26104-540_ANSI_C_source_code.zip
234 cd ../..
235 %endif
236
237 %build
238 # notes:
239 # - it's not autoconf configure
240 # - --disable-debug, --disable-opts, tune=generic causes not to override our optflags
241 ./configure \
242         --prefix=%{_prefix} \
243         --libdir=%{_libdir} \
244         --mandir=%{_mandir} \
245         --disable-strip \
246         --enable-a52 \
247         --enable-a52bin \
248         --enable-dts \
249         --enable-faac \
250         --enable-faad \
251         --enable-faadbin \
252         --enable-gpl \
253         --enable-libgsm \
254         --enable-libogg \
255         --enable-mp3lame \
256         --enable-pp \
257         --enable-pthreads \
258         --enable-shared \
259         --enable-theora \
260         --enable-vorbis \
261         --enable-xvid \
262 %ifnarch %{ix86} %{x8664}
263         --disable-mmx \
264 %endif
265 %ifarch i386 i486
266         --disable-mmx \
267 %endif
268 %if %{with amr}
269         --enable-amr_nb \
270         --enable-amr_wb \
271 %endif
272         --cc="%{__cc}" \
273         --extra-cflags="%{rpmcflags}" \
274         --extra-ldflags="%{rpmldflags}" \
275         --disable-debug \
276         --disable-opts \
277         --tune=generic
278
279 %{__make} \
280         BUILD_DOC=yes
281
282 %install
283 rm -rf $RPM_BUILD_ROOT
284 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_sbindir},/etc/{sysconfig,rc.d/init.d}} \
285         $RPM_BUILD_ROOT/var/{cache,log}/ffserver
286
287 %{__make} install \
288         DESTDIR=$RPM_BUILD_ROOT
289
290 install xvmc_render.h $RPM_BUILD_ROOT%{_includedir}/ffmpeg
291 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/ffserver
292 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/ffserver
293 install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/ffserver.conf
294 mv -f $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/ffserver
295
296 %clean
297 rm -rf $RPM_BUILD_ROOT
298
299 %post   -p /sbin/ldconfig
300 %postun -p /sbin/ldconfig
301
302 %pre ffserver
303 %groupadd -g 167 ffserver
304 %useradd -g ffserver -u 167 ffserver
305
306 %post ffserver
307 /sbin/chkconfig --add ffserver
308 %service ffserver restart
309
310 %preun ffserver
311 if [ "$1" = 0 ]; then
312         %service ffserver stop
313         /sbin/chkconfig --del ffserver
314 fi
315
316 %postun ffserver
317 if [ "$1" = 0 ]; then
318         %userremove ffserver
319         %groupremove ffserver
320 fi
321
322 %files
323 %defattr(644,root,root,755)
324 %doc Changelog README doc/*.html doc/TODO
325 %attr(755,root,root) %{_bindir}/ffmpeg
326 %{_mandir}/man1/ffmpeg.1*
327
328 %files libs
329 %defattr(644,root,root,755)
330 %attr(755,root,root) %{_libdir}/libavcodec.so.*.*.*
331 %attr(755,root,root) %{_libdir}/libavformat.so.*.*.*
332 %attr(755,root,root) %{_libdir}/libavutil.so.*.*.*
333 %attr(755,root,root) %{_libdir}/libpostproc.so.*.*.*
334 %dir %{_libdir}/vhook
335 %attr(755,root,root) %{_libdir}/vhook/drawtext.so
336 %attr(755,root,root) %{_libdir}/vhook/fish.so
337 %attr(755,root,root) %{_libdir}/vhook/null.so
338 %attr(755,root,root) %{_libdir}/vhook/ppm.so
339 %attr(755,root,root) %{_libdir}/vhook/watermark.so
340
341 %files devel
342 %defattr(644,root,root,755)
343 %doc doc/optimization.txt
344 %attr(755,root,root) %{_libdir}/libavcodec.so
345 %attr(755,root,root) %{_libdir}/libavformat.so
346 %attr(755,root,root) %{_libdir}/libavutil.so
347 %attr(755,root,root) %{_libdir}/libpostproc.so
348 %{_libdir}/lib*.la
349 %{_includedir}/ffmpeg
350 %{_includedir}/postproc
351 %{_pkgconfigdir}/*.pc
352
353 %files static
354 %defattr(644,root,root,755)
355 %{_libdir}/lib*.a
356
357 %files ffplay
358 %defattr(644,root,root,755)
359 %attr(755,root,root) %{_bindir}/ffplay
360 %{_mandir}/man1/ffplay.1*
361
362 %if %{with imlib2}
363 %files vhook-imlib2
364 %defattr(644,root,root,755)
365 %attr(755,root,root) %{_libdir}/vhook/imlib2.so
366 %endif
367
368 %files ffserver
369 %defattr(644,root,root,755)
370 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ffserver.conf
371 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/ffserver
372 %attr(755,root,root) %{_sbindir}/ffserver
373 %attr(754,root,root) /etc/rc.d/init.d/ffserver
374 %{_mandir}/man1/ffserver.1*
375 %dir %attr(770,root,ffserver) /var/cache/ffserver
376 %dir %attr(770,root,ffserver) /var/log/ffserver
This page took 0.077251 seconds and 3 git commands to generate.