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