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