]> git.pld-linux.org Git - packages/ffmpeg.git/blame - ffmpeg.spec
- -devel R: libraw1394-devel
[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#
9042663c 9%define _snap 2008-09-30
2305d791 10%define snap %(echo %{_snap} | tr -d -)
bab45e3b 11%define rel 1
76243dbd 12Summary: Realtime audio/video encoder and streaming server
adcc0f76 13Summary(pl.UTF-8): Koder audio/wideo czasu rzeczywistego oraz serwer strumieni
9fc4ad22 14Name: ffmpeg
c32b589f 15Version: 0.4.9
38baa0f1 16Release: 4.%{snap}.%{rel}
9cf4d8a4 17# LGPL or GPL, chosen at configure time (GPL version is more featured)
48610c64 18# (postprocessing, ac3, xvid, x264, faad)
be868f35 19License: GPL v2+ with LGPL v2.1+ parts
fde29260 20Group: Applications/Multimedia
d7493de8 21#Source0: http://dl.sourceforge.net/ffmpeg/%{name}-%{version}-pre1.tar.gz
2305d791 22Source0: http://ffmpeg.mplayerhq.hu/%{name}-export-snapshot.tar.bz2
9042663c 23# Source0-md5: d85a173fa0843706e4f943b84046db84
fde29260
ER
24Source1: ffserver.init
25Source2: ffserver.sysconfig
38cf6de3 26Source3: ffserver.conf
f1669449 27Patch0: %{name}-img_convert_symbol.patch
9042663c 28Patch1: %{name}-x264.patch
d2fa6a1d 29URL: http://ffmpeg.mplayerhq.hu/
2a60eebe 30BuildRequires: SDL-devel
fc8de229 31%if %{with amr}
7e9547bc
JB
32BuildRequires: amrnb-devel >= 6.1.0.4
33BuildRequires: amrwb-devel >= 7.0.0.1
fc8de229 34%endif
6382c99d 35BuildRequires: dirac-devel
e380e18a 36BuildRequires: faac-devel
b959c224 37BuildRequires: faad2-devel
2a60eebe 38BuildRequires: freetype-devel
4bee03f0
JB
39%ifarch ppc
40# require version with altivec support fixed
41BuildRequires: gcc >= 5:3.3.2-3
42%endif
f1669449 43BuildRequires: a52dec-libs-devel
15c15700 44%{?with_imlib2:BuildRequires: imlib2-devel >= 1.3.0}
e380e18a 45BuildRequires: lame-libs-devel
6382c99d 46BuildRequires: libdc1394-devel
f1669449 47BuildRequires: libgsm-devel
94447fde 48BuildRequires: libraw1394-devel
9042663c 49BuildRequires: libtheora-devel >= 1.0-0.beta3
4814ac84 50BuildRequires: libtool >= 2:1.4d-3
e380e18a 51BuildRequires: libvorbis-devel
6382c99d 52BuildRequires: libx264-devel >= 0.1.2-1.20080801
e1fe03f7 53%ifarch %{ix86}
54%ifnarch i386 i486
76243dbd
JB
55BuildRequires: nasm
56%endif
e1fe03f7 57%endif
1463656a 58BuildRequires: perl-tools-pod
ef3c0513 59BuildRequires: pkgconfig
db8052c8 60BuildRequires: rpmbuild(macros) >= 1.470
126fb805 61BuildRequires: schroedinger-devel
1463656a 62BuildRequires: tetex
9cf4d8a4 63BuildRequires: texinfo
872de59d 64%{?with_amr:BuildRequires: unzip}
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
82
9fc4ad22
AM
83%description
84ffmpeg is a hyper fast realtime audio/video encoder and streaming
85server. It can grab from a standard Video4Linux video source and
86convert it into several file formats based on DCT/motion compensation
87encoding. Sound is compressed in MPEG audio layer 2 or using an AC3
fda3e16d 88compatible stream.
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
5e173375 104This package contains ffmpeg shared libraries.
54ec280e 105
cdb7b42e
JR
106%description libs -l pl.UTF-8
107Ten pakiet zawiera biblioteki współdzielone ffmpeg.
54ec280e 108
af49d6ab
JB
109%package devel
110Summary: ffmpeg header files
adcc0f76 111Summary(pl.UTF-8): Pliki nagłówkowe ffmpeg
af49d6ab 112Group: Development/Libraries
54ec280e 113Requires: %{name}-libs = %{version}-%{release}
33a1c0f3 114# for libavcodec:
fc8de229
JB
115%if %{with amr}
116Requires: amrnb-devel
117Requires: amrwb-devel >= 5.3.0
118%endif
926ffa9a 119Requires: dirac-devel
33a1c0f3 120Requires: faac-devel
96182eea 121Requires: faad2-devel
33a1c0f3 122Requires: lame-libs-devel
bf479bc6 123Requires: libgsm-devel
95e2cf29 124Requires: libraw1394-devel
3e95d354 125Requires: libtheora-devel >= 1.0-0.alpha7
33a1c0f3 126Requires: libvorbis-devel
7bf6921d 127Requires: libx264-devel >= 0.1.2-1.20060828_2245.1
46f2a56b 128Requires: xvid-devel >= 1:1.1.0
33a1c0f3 129Requires: zlib-devel
8152d6a2 130Obsoletes: libpostproc-devel
af49d6ab
JB
131
132%description devel
133ffmpeg header files.
134
cdb7b42e
JR
135%description devel -l pl.UTF-8
136Pliki nagłówkowe ffmpeg.
af49d6ab
JB
137
138%package static
139Summary: ffmpeg static libraries
adcc0f76 140Summary(pl.UTF-8): Statyczne biblioteki ffmpeg
af49d6ab
JB
141Group: Development/Libraries
142Requires: %{name}-devel = %{version}-%{release}
143
144%description static
145ffmpeg static libraries (libavcodec and libavformat).
146
cdb7b42e 147%description static -l pl.UTF-8
af49d6ab
JB
148Statyczne biblioteki ffmpeg (libavcodec i libavformat).
149
2a60eebe
JB
150%package ffplay
151Summary: FFplay - SDL-based media player
adcc0f76 152Summary(pl.UTF-8): FFplay - odtwarzacz mediów oparty na SDL
2a60eebe 153Group: Applications/Multimedia
54ec280e 154Requires: %{name}-libs = %{version}-%{release}
2a60eebe
JB
155
156%description ffplay
157FFplay is a very simple and portable media player using the FFmpeg
158libraries and the SDL library. It is mostly used as a test bench for
159the various APIs of FFmpeg.
160
cdb7b42e
JR
161%description ffplay -l pl.UTF-8
162FFplay to bardzo prosty i przenośny odtwarzacz mediów używający
163bibliotek FFmpeg oraz biblioteki SDL. Jest używany głównie do
164testowania różnych API FFmpeg.
2a60eebe 165
539b540f
JB
166%package vhook-imlib2
167Summary: imlib2 based hook
adcc0f76 168Summary(pl.UTF-8): Moduł przejściowy oparty o imlib2
539b540f 169Group: Libraries
54ec280e 170Requires: %{name}-libs = %{version}-%{release}
539b540f
JB
171
172%description vhook-imlib2
173This module implements a text overlay for a video image. Currently it
174supports a fixed overlay or reading the text from a file. The string
175is passed through strftime so that it is easy to imprint the date and
176time onto the image.
177
cdb7b42e
JR
178%description vhook-imlib2 -l pl.UTF-8
179Ten moduł implementuje tekstową nakładkę dla obrazu. Aktualnie
180obsługuje stałą nakładkę lub wczytywanie tekstu z pliku. Łańcuch jest
181przepuszczany przez strftime, więc łatwo umieścić datę i czas na
539b540f
JB
182obrazie.
183
fde29260
ER
184%package ffserver
185Summary: FFserver video server
adcc0f76 186Summary(pl.UTF-8): FFserver - serwer strumieni obrazu
fde29260 187Group: Daemons
593d3a64 188Requires(post,preun): /sbin/chkconfig
67103923 189Requires: %{name}-libs = %{version}-%{release}
2305d791 190Requires: rc-scripts >= 0.4.0.10
fde29260
ER
191
192%description ffserver
193FFserver is a streaming server for both audio and video. It supports
194several live feeds, streaming from files and time shifting on live
195feeds (you can seek to positions in the past on each live feed,
196provided you specify a big enough feed storage in ffserver.conf).
197
cdb7b42e
JR
198%description ffserver -l pl.UTF-8
199FFserver to serwer strumieni dla dźwięku i obrazu. Obsługuje kilka
200źródeł na żywo, przekazywanie strumieni z plików i przesuwanie w
201czasie dla źródeł na żywo (można przeskakiwać na położenia w
202przeszłości dla każdego źródła na żywo, pod warunkiem odpowiednio
203dużej przestrzeni na dane skonfigurowanej w ffserver.conf).
4e0bd1da 204
9fc4ad22 205%prep
2305d791 206%setup -q -n %{name}-export-%{_snap}
f1669449 207%patch0 -p1
9042663c 208%patch1 -p1
9fc4ad22 209
2b2445b7
ER
210# package the grep result for mplayer, the result formatted as mplayer/configure
211cat <<EOF > ffmpeg-config
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
221cat <<'EOF' >> ffmpeg-config
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
JB
273 --cc="%{__cc}" \
274 --extra-cflags="-D_GNU_SOURCE=1 %{rpmcppflags} %{rpmcflags}" \
275 --extra-ldflags="%{rpmldflags}" \
276 --disable-debug \
277 --disable-optimizations \
6382c99d 278 --disable-stripping \
126fb805 279 --enable-gpl \
6382c99d
AM
280 --enable-liba52 \
281 --enable-liba52bin \
15c15700
ER
282 --enable-libfaac \
283 --enable-libfaad \
284 --enable-libfaadbin \
6382c99d
AM
285 --enable-libdc1394 \
286 --enable-libdirac \
f3692243 287 --enable-libgsm \
15c15700 288 --enable-libmp3lame \
126fb805
JB
289 --enable-libschroedinger \
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
873cd1c3 310%{__make}
9fc4ad22
AM
311
312%install
313rm -rf $RPM_BUILD_ROOT
38cf6de3 314install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_sbindir},/etc/{sysconfig,rc.d/init.d}} \
38baa0f1 315 $RPM_BUILD_ROOT%{_includedir}/ffmpeg \
38cf6de3 316 $RPM_BUILD_ROOT/var/{cache,log}/ffserver
9fc4ad22 317
539b540f 318%{__make} install \
9cf4d8a4 319 DESTDIR=$RPM_BUILD_ROOT
539b540f 320
ece24152 321install config.h $RPM_BUILD_ROOT%{_includedir}/ffmpeg
09313900 322install libavutil/intreadwrite.h $RPM_BUILD_ROOT%{_includedir}/libavutil
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?
331install ffmpeg-config $RPM_BUILD_ROOT%{_bindir}/ffmpeg-avconfig
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
54ec280e 363%{_mandir}/man1/ffmpeg.1*
54ec280e
PG
364
365%files libs
366%defattr(644,root,root,755)
f50f7d7c 367%attr(755,root,root) %{_libdir}/libavcodec.so.*.*.*
d0a0ec26 368%attr(755,root,root) %{_libdir}/libavdevice.so.*.*.*
f50f7d7c
JB
369%attr(755,root,root) %{_libdir}/libavformat.so.*.*.*
370%attr(755,root,root) %{_libdir}/libavutil.so.*.*.*
d7493de8 371%attr(755,root,root) %{_libdir}/libpostproc.so.*.*.*
ee032235 372%attr(755,root,root) %{_libdir}/libswscale.so.*.*.*
9042663c
AM
373%attr(755,root,root) %ghost %{_libdir}/libavcodec.so.[0-9][0-9]
374%attr(755,root,root) %ghost %{_libdir}/libavdevice.so.[0-9][0-9]
375%attr(755,root,root) %ghost %{_libdir}/libavformat.so.[0-9][0-9]
376%attr(755,root,root) %ghost %{_libdir}/libavutil.so.[0-9][0-9]
377%attr(755,root,root) %ghost %{_libdir}/libpostproc.so.[0-9][0-9]
378%attr(755,root,root) %ghost %{_libdir}/libswscale.so.[0-9]
539b540f 379%dir %{_libdir}/vhook
2a60eebe 380%attr(755,root,root) %{_libdir}/vhook/drawtext.so
539b540f 381%attr(755,root,root) %{_libdir}/vhook/fish.so
2a60eebe 382%attr(755,root,root) %{_libdir}/vhook/null.so
d2af4612 383%attr(755,root,root) %{_libdir}/vhook/ppm.so
d7493de8 384%attr(755,root,root) %{_libdir}/vhook/watermark.so
2a60eebe 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
539b540f 391%attr(755,root,root) %{_libdir}/libavformat.so
d7493de8 392%attr(755,root,root) %{_libdir}/libavutil.so
d2af4612 393%attr(755,root,root) %{_libdir}/libpostproc.so
ee032235 394%attr(755,root,root) %{_libdir}/libswscale.so
2b2445b7 395%attr(755,root,root) %{_bindir}/ffmpeg-avconfig
539b540f 396%{_includedir}/ffmpeg
6382c99d
AM
397%{_includedir}/libavcodec
398%{_includedir}/libavdevice
399%{_includedir}/libavformat
400%{_includedir}/libavutil
401%{_includedir}/libpostproc
402%{_includedir}/libswscale
d7493de8 403%{_pkgconfigdir}/*.pc
539b540f 404
9cf4d8a4
JB
405%files static
406%defattr(644,root,root,755)
407%{_libdir}/lib*.a
af49d6ab
JB
408
409%files ffplay
410%defattr(644,root,root,755)
411%attr(755,root,root) %{_bindir}/ffplay
412%{_mandir}/man1/ffplay.1*
413
414%if %{with imlib2}
415%files vhook-imlib2
416%defattr(644,root,root,755)
417%attr(755,root,root) %{_libdir}/vhook/imlib2.so
418%endif
fde29260
ER
419
420%files ffserver
421%defattr(644,root,root,755)
422%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ffserver.conf
423%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/ffserver
424%attr(755,root,root) %{_sbindir}/ffserver
425%attr(754,root,root) /etc/rc.d/init.d/ffserver
426%{_mandir}/man1/ffserver.1*
38cf6de3
ER
427%dir %attr(770,root,ffserver) /var/cache/ffserver
428%dir %attr(770,root,ffserver) /var/log/ffserver
This page took 0.102113 seconds and 4 git commands to generate.