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