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