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