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