]> git.pld-linux.org Git - packages/ffmpeg.git/blame - ffmpeg.spec
- speex ver bummp for speex_header_free:
[packages/ffmpeg.git] / ffmpeg.spec
CommitLineData
94447fde 1# TODO
328d1431 2# - libnut enabled no (http://www.nut-container.org/)
197f4211 3#
2b3b2117 4# Conditional build:
0b43f655 5%bcond_with nonfree # non free options of package
294c9b1e
JB
6%bcond_without autoreqdep # don't care about package name deps generated by rpm
7%bcond_without imlib2 # don't build imlib2 vhook module
314ef0df 8
85f7cea1 9Summary: FFmpeg is a very fast video and audio converter
adcc0f76 10Summary(pl.UTF-8): Koder audio/wideo czasu rzeczywistego oraz serwer strumieni
9fc4ad22 11Name: ffmpeg
3a7b84be 12Version: 0.6
fed7f3c1 13Release: 1
9cf4d8a4 14# LGPL or GPL, chosen at configure time (GPL version is more featured)
48610c64 15# (postprocessing, ac3, xvid, x264, faad)
0b43f655 16License: GPL v3+ with LGPL v3+ parts
fde29260 17Group: Applications/Multimedia
aed8e8c9 18Source0: http://ffmpeg.mplayerhq.hu/releases/%{name}-%{version}.tar.bz2
3a7b84be 19# Source0-md5: d6142a9a5821d6a6262a6edb903faa24
fde29260
ER
20Source1: ffserver.init
21Source2: ffserver.sysconfig
38cf6de3 22Source3: ffserver.conf
0b43f655 23Patch0: %{name}-bug-803.patch
3a7b84be 24Patch1: %{name}-gsm.patch
3b92027a
ER
25# vhook is gone. this patch needs different approach
26#PatchX: imagewidth.patch
85f7cea1 27URL: http://www.ffmpeg.org/
2a60eebe 28BuildRequires: SDL-devel
7ca51e4c 29BuildRequires: dirac-devel >= 1.0.0
e380e18a 30BuildRequires: faac-devel
b959c224 31BuildRequires: faad2-devel
2a60eebe 32BuildRequires: freetype-devel
4bee03f0
JB
33%ifarch ppc
34# require version with altivec support fixed
35BuildRequires: gcc >= 5:3.3.2-3
36%endif
15c15700 37%{?with_imlib2:BuildRequires: imlib2-devel >= 1.3.0}
e380e18a 38BuildRequires: lame-libs-devel
6382c99d 39BuildRequires: libdc1394-devel
f1669449 40BuildRequires: libgsm-devel
94447fde 41BuildRequires: libraw1394-devel
9042663c 42BuildRequires: libtheora-devel >= 1.0-0.beta3
4814ac84 43BuildRequires: libtool >= 2:1.4d-3
3a7b84be 44BuildRequires: libva-devel >= 1.0.3
0b43f655 45BuildRequires: libvdpau-devel
e380e18a 46BuildRequires: libvorbis-devel
f638aabe 47BuildRequires: libvpx-devel >= 0.9.1
d1ecc96e 48# X264_BUILD >= 83
1e2bbb41 49BuildRequires: libx264-devel >= 0.1.3-1.20100424_2245.1
0b43f655
AM
50BuildRequires: opencore-amr-devel
51BuildRequires: openjpeg-devel >= 1.3-2
17a2d1a8 52BuildRequires: speex-devel >= 1:1.2-rc1
e1fe03f7 53%ifarch %{ix86}
54%ifnarch i386 i486
76243dbd
JB
55BuildRequires: nasm
56%endif
e1fe03f7 57%endif
136f0f45 58BuildRequires: perl-Encode
1463656a 59BuildRequires: perl-tools-pod
ef3c0513 60BuildRequires: pkgconfig
db8052c8 61BuildRequires: rpmbuild(macros) >= 1.470
126fb805 62BuildRequires: schroedinger-devel
1463656a 63BuildRequires: tetex
b5649e15 64BuildRequires: texi2html
9cf4d8a4 65BuildRequires: texinfo
46f2a56b 66BuildRequires: xvid-devel >= 1:1.1.0
33a1c0f3 67BuildRequires: zlib-devel
57ebb8ad 68%{?with_autoreqdep:BuildConflicts: libpostproc}
54ec280e 69Requires: %{name}-libs = %{version}-%{release}
839e806f 70Requires: xvid >= 1:1.1.0
af49d6ab 71Obsoletes: libpostproc
539b540f 72BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
9fc4ad22 73
2a60eebe
JB
74%define _noautoreqdep libGL.so.1 libGLU.so.1
75
c01d7857
PS
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
1162803a 83%define specflags_ppc -fPIC
c01d7857 84
9fc4ad22 85%description
85f7cea1
ER
86FFmpeg is a complete solution to record, convert and stream audio and
87video. It is a command line tool to convert one video file format to
88another. It also supports grabbing and encoding in real time from a TV
89card.
9fc4ad22 90
cdb7b42e 91%description -l pl.UTF-8
fda3e16d 92ffmpeg jest bardzo szybkim koderem audio/wideo w czasie rzeczywistym
cdb7b42e
JR
93oraz serwerem strumieni multimedialnych. ffmpeg potrafi zrzucać dane
94ze standardowego urządzenia Video4Linux i przekonwertować je w kilka
95formatów plików bazujących na kodowaniu DCT/kompensacji ruchu. Dźwięk
96jest kompresowany do strumienia MPEG audio layer 2 lub używając
fda3e16d 97strumienia kompatybilnego z AC3.
9fc4ad22 98
54ec280e
PG
99%package libs
100Summary: ffmpeg libraries
adcc0f76 101Summary(pl.UTF-8): Biblioteki ffmpeg
54ec280e
PG
102Group: Libraries
103
104%description libs
85f7cea1
ER
105This 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.
54ec280e 111
cdb7b42e
JR
112%description libs -l pl.UTF-8
113Ten pakiet zawiera biblioteki współdzielone ffmpeg.
54ec280e 114
af49d6ab
JB
115%package devel
116Summary: ffmpeg header files
adcc0f76 117Summary(pl.UTF-8): Pliki nagłówkowe ffmpeg
af49d6ab 118Group: Development/Libraries
54ec280e 119Requires: %{name}-libs = %{version}-%{release}
33a1c0f3 120# for libavcodec:
926ffa9a 121Requires: dirac-devel
33a1c0f3 122Requires: faac-devel
96182eea 123Requires: faad2-devel
33a1c0f3 124Requires: lame-libs-devel
bf479bc6 125Requires: libgsm-devel
95e2cf29 126Requires: libraw1394-devel
3e95d354 127Requires: libtheora-devel >= 1.0-0.alpha7
33a1c0f3 128Requires: libvorbis-devel
7bf6921d 129Requires: libx264-devel >= 0.1.2-1.20060828_2245.1
46f2a56b 130Requires: xvid-devel >= 1:1.1.0
33a1c0f3 131Requires: zlib-devel
8152d6a2 132Obsoletes: libpostproc-devel
af49d6ab
JB
133
134%description devel
135ffmpeg header files.
136
cdb7b42e
JR
137%description devel -l pl.UTF-8
138Pliki nagłówkowe ffmpeg.
af49d6ab
JB
139
140%package static
141Summary: ffmpeg static libraries
adcc0f76 142Summary(pl.UTF-8): Statyczne biblioteki ffmpeg
af49d6ab
JB
143Group: Development/Libraries
144Requires: %{name}-devel = %{version}-%{release}
145
146%description static
147ffmpeg static libraries (libavcodec and libavformat).
148
cdb7b42e 149%description static -l pl.UTF-8
af49d6ab
JB
150Statyczne biblioteki ffmpeg (libavcodec i libavformat).
151
2a60eebe
JB
152%package ffplay
153Summary: FFplay - SDL-based media player
adcc0f76 154Summary(pl.UTF-8): FFplay - odtwarzacz mediów oparty na SDL
2a60eebe 155Group: Applications/Multimedia
54ec280e 156Requires: %{name}-libs = %{version}-%{release}
2a60eebe
JB
157
158%description ffplay
159FFplay is a very simple and portable media player using the FFmpeg
160libraries and the SDL library. It is mostly used as a test bench for
161the various APIs of FFmpeg.
162
cdb7b42e
JR
163%description ffplay -l pl.UTF-8
164FFplay to bardzo prosty i przenośny odtwarzacz mediów używający
165bibliotek FFmpeg oraz biblioteki SDL. Jest używany głównie do
166testowania różnych API FFmpeg.
2a60eebe 167
fde29260
ER
168%package ffserver
169Summary: FFserver video server
adcc0f76 170Summary(pl.UTF-8): FFserver - serwer strumieni obrazu
fde29260 171Group: Daemons
593d3a64 172Requires(post,preun): /sbin/chkconfig
67103923 173Requires: %{name}-libs = %{version}-%{release}
2305d791 174Requires: rc-scripts >= 0.4.0.10
fde29260
ER
175
176%description ffserver
177FFserver is a streaming server for both audio and video. It supports
178several live feeds, streaming from files and time shifting on live
179feeds (you can seek to positions in the past on each live feed,
180provided you specify a big enough feed storage in ffserver.conf).
181
cdb7b42e
JR
182%description ffserver -l pl.UTF-8
183FFserver 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
185czasie dla źródeł na żywo (można przeskakiwać na położenia w
186przeszłości dla każdego źródła na żywo, pod warunkiem odpowiednio
187dużej przestrzeni na dane skonfigurowanej w ffserver.conf).
4e0bd1da 188
9fc4ad22 189%prep
aed8e8c9 190%setup -q
f1669449 191%patch0 -p1
3a7b84be 192%patch1 -p0
9fc4ad22 193
9d4f8977
ER
194# package the grep result for mplayer, the result formatted as ./mplayer/configure
195cat <<EOF > ffmpeg-avconfig
2b2445b7
ER
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]'`"
204EOF
9d4f8977 205cat <<'EOF' >> ffmpeg-avconfig
2b2445b7
ER
206
207case "$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
231Usage: $0 [OPTION]
232Options:
233 --decoders
234 --encoders
235 --parsers
236 --bsfs
237 --demuxers
238 --muxers
239 --protocols
240USAGE
241 exit 1;;
242esac
243
244exit 0
245EOF
246
9fc4ad22 247%build
05e1eb2f
JB
248# notes:
249# - it's not autoconf configure
d0a0ec26 250# - --disable-debug, --disable-optimizations, tune=generic causes not to override our optflags
2080d1d3 251./configure \
b4680d0b 252 --arch=%{_target_base_arch} \
539b540f 253 --prefix=%{_prefix} \
9cf4d8a4 254 --libdir=%{_libdir} \
d81dfa95 255 --shlibdir=%{_libdir} \
2a60eebe 256 --mandir=%{_mandir} \
126fb805 257 --cc="%{__cc}" \
314ef0df 258 --extra-cflags="-D_GNU_SOURCE=1 %{rpmcppflags} %{rpmcflags}" \
1162803a 259 --extra-ldflags="%{rpmcflags} %{rpmldflags}" \
126fb805
JB
260 --disable-debug \
261 --disable-optimizations \
6382c99d 262 --disable-stripping \
314ef0df 263 --enable-avfilter \
126fb805 264 --enable-gpl \
0b43f655 265 --enable-version3 \
32243b76
ER
266 --enable-libdc1394 \
267 --enable-libdirac \
15c15700
ER
268 --enable-libfaad \
269 --enable-libfaadbin \
f3692243 270 --enable-libgsm \
15c15700 271 --enable-libmp3lame \
126fb805 272 --enable-libschroedinger \
da99dcf2 273 --enable-libspeex \
126fb805
JB
274 --enable-libtheora \
275 --enable-libvorbis \
3a7b84be 276 --enable-libvpx \
126fb805
JB
277 --enable-libx264 \
278 --enable-libxvid \
0b43f655
AM
279 --enable-libopencore-amrnb \
280 --enable-libopencore-amrwb \
281 --enable-libopenjpeg \
6382c99d 282 --enable-postproc \
d7493de8 283 --enable-pthreads \
9cf4d8a4 284 --enable-shared \
6382c99d 285 --enable-swscale \
0b43f655 286 --enable-vdpau \
7a286645 287%ifnarch %{ix86} %{x8664}
e1fe03f7 288 --disable-mmx \
289%endif
290%ifarch i386 i486
05e1eb2f 291 --disable-mmx \
b524cd99 292%endif
0b43f655 293%if %{with nonfree}
48610c64 294 --enable-nonfree \
0b43f655 295 --enable-libfaac \
76243dbd 296%endif
0b43f655 297 --enable-runtime-cpudetect
2305d791 298
da99dcf2
AM
299# force oldscaler build
300sed -i -e 's|#define.*CONFIG_OLDSCALER.*0|#define CONFIG_OLDSCALER 1|g' config.h
301
873cd1c3 302%{__make}
9fc4ad22
AM
303
304%install
305rm -rf $RPM_BUILD_ROOT
38cf6de3 306install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_sbindir},/etc/{sysconfig,rc.d/init.d}} \
38baa0f1 307 $RPM_BUILD_ROOT%{_includedir}/ffmpeg \
38cf6de3 308 $RPM_BUILD_ROOT/var/{cache,log}/ffserver
9fc4ad22 309
539b540f 310%{__make} install \
9cf4d8a4 311 DESTDIR=$RPM_BUILD_ROOT
539b540f 312
544421b2
ER
313cp -a config.h $RPM_BUILD_ROOT%{_includedir}/ffmpeg
314cp -a libavutil/intreadwrite.h $RPM_BUILD_ROOT%{_includedir}/libavutil
315cp -a libavutil/bswap.h $RPM_BUILD_ROOT%{_includedir}/libavutil
316cp -a libavutil/common.h $RPM_BUILD_ROOT%{_includedir}/libavutil
317cp -a libavutil/mem.h $RPM_BUILD_ROOT%{_includedir}/libavutil
318for a in libavutil/*/bswap.h; do
319 install -D $a $RPM_BUILD_ROOT%{_includedir}/$a
320done
9d4f8977
ER
321cp -a libavformat/riff.h $RPM_BUILD_ROOT%{_includedir}/libavformat
322cp -a libavformat/avio.h $RPM_BUILD_ROOT%{_includedir}/libavformat
544421b2 323
fde29260
ER
324install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/ffserver
325install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/ffserver
38cf6de3 326install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/ffserver.conf
539b540f 327mv -f $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/ffserver
9fc4ad22 328
2b2445b7
ER
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?
9d4f8977 332install ffmpeg-avconfig $RPM_BUILD_ROOT%{_bindir}/ffmpeg-avconfig
2b2445b7 333
9fc4ad22
AM
334%clean
335rm -rf $RPM_BUILD_ROOT
336
3146af55
KK
337%post libs -p /sbin/ldconfig
338%postun libs -p /sbin/ldconfig
539b540f 339
38cf6de3
ER
340%pre ffserver
341%groupadd -g 167 ffserver
342%useradd -g ffserver -u 167 ffserver
343
593d3a64
ER
344%post ffserver
345/sbin/chkconfig --add ffserver
346%service ffserver restart
347
38cf6de3 348%preun ffserver
593d3a64
ER
349if [ "$1" = 0 ]; then
350 %service ffserver stop
351 /sbin/chkconfig --del ffserver
352fi
353
38cf6de3
ER
354%postun ffserver
355if [ "$1" = 0 ]; then
356 %userremove ffserver
357 %groupremove ffserver
358fi
359
9fc4ad22
AM
360%files
361%defattr(644,root,root,755)
54ec280e 362%doc Changelog README doc/*.html doc/TODO
2a60eebe 363%attr(755,root,root) %{_bindir}/ffmpeg
3a7b84be 364%attr(755,root,root) %{_bindir}/ffprobe
da99dcf2
AM
365%dir %{_datadir}/ffmpeg
366%{_datadir}/ffmpeg/*.ffpreset
54ec280e 367%{_mandir}/man1/ffmpeg.1*
3a7b84be 368%{_mandir}/man1/ffprobe.1*
54ec280e
PG
369
370%files libs
371%defattr(644,root,root,755)
f50f7d7c 372%attr(755,root,root) %{_libdir}/libavcodec.so.*.*.*
314ef0df 373%attr(755,root,root) %ghost %{_libdir}/libavcodec.so.52
d0a0ec26 374%attr(755,root,root) %{_libdir}/libavdevice.so.*.*.*
314ef0df
ER
375%attr(755,root,root) %ghost %{_libdir}/libavdevice.so.52
376%attr(755,root,root) %{_libdir}/libavfilter.so.*.*.*
3a7b84be 377%attr(755,root,root) %ghost %{_libdir}/libavfilter.so.1
f50f7d7c 378%attr(755,root,root) %{_libdir}/libavformat.so.*.*.*
314ef0df 379%attr(755,root,root) %ghost %{_libdir}/libavformat.so.52
f50f7d7c 380%attr(755,root,root) %{_libdir}/libavutil.so.*.*.*
3a7b84be 381%attr(755,root,root) %ghost %{_libdir}/libavutil.so.50
d7493de8 382%attr(755,root,root) %{_libdir}/libpostproc.so.*.*.*
314ef0df 383%attr(755,root,root) %ghost %{_libdir}/libpostproc.so.51
ee032235 384%attr(755,root,root) %{_libdir}/libswscale.so.*.*.*
314ef0df
ER
385%attr(755,root,root) %ghost %{_libdir}/libswscale.so.0
386
539b540f
JB
387%files devel
388%defattr(644,root,root,755)
54ec280e 389%doc doc/optimization.txt
539b540f 390%attr(755,root,root) %{_libdir}/libavcodec.so
d0a0ec26 391%attr(755,root,root) %{_libdir}/libavdevice.so
314ef0df 392%attr(755,root,root) %{_libdir}/libavfilter.so
539b540f 393%attr(755,root,root) %{_libdir}/libavformat.so
d7493de8 394%attr(755,root,root) %{_libdir}/libavutil.so
d2af4612 395%attr(755,root,root) %{_libdir}/libpostproc.so
ee032235 396%attr(755,root,root) %{_libdir}/libswscale.so
2b2445b7 397%attr(755,root,root) %{_bindir}/ffmpeg-avconfig
539b540f 398%{_includedir}/ffmpeg
6382c99d
AM
399%{_includedir}/libavcodec
400%{_includedir}/libavdevice
314ef0df 401%{_includedir}/libavfilter
6382c99d
AM
402%{_includedir}/libavformat
403%{_includedir}/libavutil
404%{_includedir}/libpostproc
405%{_includedir}/libswscale
d7493de8 406%{_pkgconfigdir}/*.pc
539b540f 407
9cf4d8a4
JB
408%files static
409%defattr(644,root,root,755)
410%{_libdir}/lib*.a
af49d6ab
JB
411
412%files ffplay
413%defattr(644,root,root,755)
414%attr(755,root,root) %{_bindir}/ffplay
415%{_mandir}/man1/ffplay.1*
416
fde29260
ER
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*
38cf6de3
ER
424%dir %attr(770,root,ffserver) /var/cache/ffserver
425%dir %attr(770,root,ffserver) /var/log/ffserver
This page took 0.131541 seconds and 4 git commands to generate.