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