# Conditional build:
%bcond_with nonfree # non free options of package
%bcond_without autoreqdep # don't care about package name deps generated by rpm
-%bcond_without imlib2 # don't build imlib2 vhook module
+%bcond_without va # VAAPI (Video Acceleration API)
+%bcond_without vpx # VP8, a high-quality video codec
+%bcond_without doc # don't build docs
Summary: FFmpeg is a very fast video and audio converter
Summary(pl.UTF-8): Koder audio/wideo czasu rzeczywistego oraz serwer strumieni
Name: ffmpeg
-Version: 0.6
+Version: 0.6.3
Release: 1
# LGPL or GPL, chosen at configure time (GPL version is more featured)
# (postprocessing, ac3, xvid, x264, faad)
License: GPL v3+ with LGPL v3+ parts
Group: Applications/Multimedia
-Source0: http://ffmpeg.mplayerhq.hu/releases/%{name}-%{version}.tar.bz2
-# Source0-md5: d6142a9a5821d6a6262a6edb903faa24
+Source0: http://ffmpeg.org/releases/%{name}-%{version}.tar.bz2
+# Source0-md5: cdf4ad9b2a4d195b5ca874494bc7b0b0
Source1: ffserver.init
Source2: ffserver.sysconfig
Source3: ffserver.conf
Patch0: %{name}-bug-803.patch
Patch1: %{name}-gsm.patch
+Patch2: faadbin-libfaadname.patch
# vhook is gone. this patch needs different approach
-#PatchX: imagewidth.patch
+#PatchX: imagewidth.patch
+# http://webm.googlecode.com/files/ffmpeg-0.6_libvpx-0.9.1.diff.gz
+Patch3: ffmpeg-0.6_libvpx-0.9.1.diff
URL: http://www.ffmpeg.org/
BuildRequires: SDL-devel
BuildRequires: dirac-devel >= 1.0.0
# require version with altivec support fixed
BuildRequires: gcc >= 5:3.3.2-3
%endif
-%{?with_imlib2:BuildRequires: imlib2-devel >= 1.3.0}
BuildRequires: lame-libs-devel
BuildRequires: libdc1394-devel
BuildRequires: libgsm-devel
BuildRequires: libraw1394-devel
BuildRequires: libtheora-devel >= 1.0-0.beta3
BuildRequires: libtool >= 2:1.4d-3
-BuildRequires: libva-devel >= 1.0.3
+%{?with_va:BuildRequires: libva-devel >= 1.0.3}
BuildRequires: libvdpau-devel
BuildRequires: libvorbis-devel
-BuildRequires: libvpx-devel >= 0.9.1
+%{?with_vpx:BuildRequires: libvpx-devel >= 0.9.1}
# X264_BUILD >= 83
BuildRequires: libx264-devel >= 0.1.3-1.20100424_2245.1
BuildRequires: opencore-amr-devel
BuildRequires: openjpeg-devel >= 1.3-2
-BuildRequires: speex-devel
+BuildRequires: speex-devel >= 1:1.2-rc1
%ifarch %{ix86}
%ifnarch i386 i486
BuildRequires: nasm
BuildRequires: pkgconfig
BuildRequires: rpmbuild(macros) >= 1.470
BuildRequires: schroedinger-devel
-BuildRequires: speex-devel
-BuildRequires: tetex
-BuildRequires: texi2html
-BuildRequires: texinfo
+%{?with_doc:BuildRequires: tetex}
+%{?with_doc:BuildRequires: texi2html}
+%{?with_doc:BuildRequires: texinfo}
BuildRequires: xvid-devel >= 1:1.1.0
BuildRequires: zlib-devel
%{?with_autoreqdep:BuildConflicts: libpostproc}
Summary: ffmpeg libraries
Summary(pl.UTF-8): Biblioteki ffmpeg
Group: Libraries
+Suggests: faad2-libs
%description libs
This package contains:
%setup -q
%patch0 -p1
%patch1 -p0
+%patch2 -p1
+%patch3 -p0
# package the grep result for mplayer, the result formatted as ./mplayer/configure
cat <<EOF > ffmpeg-avconfig
--enable-libspeex \
--enable-libtheora \
--enable-libvorbis \
- --enable-libvpx \
+ %{?with_vpx:--enable-libvpx} \
--enable-libx264 \
--enable-libxvid \
--enable-libopencore-amrnb \
--enable-shared \
--enable-swscale \
--enable-vdpau \
+ --enable-x11grab \
%ifnarch %{ix86} %{x8664}
--disable-mmx \
%endif
--enable-nonfree \
--enable-libfaac \
%endif
- --enable-runtime-cpudetect
+ --enable-runtime-cpudetect
# force oldscaler build
-sed -i -e 's|#define.*CONFIG_OLDSCALER.*0|#define CONFIG_OLDSCALER 1|g' config.h
+%{__sed} -i -e 's|#define.*CONFIG_OLDSCALER.*0|#define CONFIG_OLDSCALER 1|g' config.h
-%{__make}
+%{__make} \
+ V=1
+
+# CC_O to add -c to commandline. makefile should be patched
+%{__make} tools/qt-faststart V=1 CC_O='-c -o $@'
%install
rm -rf $RPM_BUILD_ROOT
$RPM_BUILD_ROOT/var/{cache,log}/ffserver
%{__make} install \
- DESTDIR=$RPM_BUILD_ROOT
+ DESTDIR=$RPM_BUILD_ROOT \
+ V=1
cp -a config.h $RPM_BUILD_ROOT%{_includedir}/ffmpeg
cp -a libavutil/intreadwrite.h $RPM_BUILD_ROOT%{_includedir}/libavutil
cp -a libavformat/riff.h $RPM_BUILD_ROOT%{_includedir}/libavformat
cp -a libavformat/avio.h $RPM_BUILD_ROOT%{_includedir}/libavformat
-install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/ffserver
-install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/ffserver
-install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/ffserver.conf
+install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/ffserver
+cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/ffserver
+cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/ffserver.conf
mv -f $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/ffserver
+install -p tools/qt-faststart $RPM_BUILD_ROOT%{_bindir}
# install as ffmpeg-avconfig to avoid with possible programs looking for
# ffmpeg-config and expecting --libs output from it which is not implemented
# simple to do (by querying pkgconfig), but why?
-install ffmpeg-avconfig $RPM_BUILD_ROOT%{_bindir}/ffmpeg-avconfig
+install -p ffmpeg-avconfig $RPM_BUILD_ROOT%{_bindir}/ffmpeg-avconfig
%clean
rm -rf $RPM_BUILD_ROOT
-%post libs -p /sbin/ldconfig
-%postun libs -p /sbin/ldconfig
+%post libs -p /sbin/ldconfig
+%postun libs -p /sbin/ldconfig
%pre ffserver
%groupadd -g 167 ffserver
%files
%defattr(644,root,root,755)
-%doc Changelog README doc/*.html doc/TODO
+%doc Changelog LICENSE README %{?with_doc:doc/*.html} doc/TODO
%attr(755,root,root) %{_bindir}/ffmpeg
%attr(755,root,root) %{_bindir}/ffprobe
+%attr(755,root,root) %{_bindir}/qt-faststart
%dir %{_datadir}/ffmpeg
%{_datadir}/ffmpeg/*.ffpreset
-%{_mandir}/man1/ffmpeg.1*
-%{_mandir}/man1/ffprobe.1*
+%{?with_doc:%{_mandir}/man1/ffmpeg.1*}
+%{?with_doc:%{_mandir}/man1/ffprobe.1*}
%files libs
%defattr(644,root,root,755)
%files devel
%defattr(644,root,root,755)
%doc doc/optimization.txt
+%attr(755,root,root) %{_bindir}/ffmpeg-avconfig
%attr(755,root,root) %{_libdir}/libavcodec.so
%attr(755,root,root) %{_libdir}/libavdevice.so
%attr(755,root,root) %{_libdir}/libavfilter.so
%attr(755,root,root) %{_libdir}/libavutil.so
%attr(755,root,root) %{_libdir}/libpostproc.so
%attr(755,root,root) %{_libdir}/libswscale.so
-%attr(755,root,root) %{_bindir}/ffmpeg-avconfig
%{_includedir}/ffmpeg
%{_includedir}/libavcodec
%{_includedir}/libavdevice
%{_includedir}/libavutil
%{_includedir}/libpostproc
%{_includedir}/libswscale
-%{_pkgconfigdir}/*.pc
+%{_pkgconfigdir}/libavcodec.pc
+%{_pkgconfigdir}/libavdevice.pc
+%{_pkgconfigdir}/libavfilter.pc
+%{_pkgconfigdir}/libavformat.pc
+%{_pkgconfigdir}/libavutil.pc
+%{_pkgconfigdir}/libpostproc.pc
+%{_pkgconfigdir}/libswscale.pc
%files static
%defattr(644,root,root,755)
-%{_libdir}/lib*.a
+%{_libdir}/libavcodec.a
+%{_libdir}/libavdevice.a
+%{_libdir}/libavfilter.a
+%{_libdir}/libavformat.a
+%{_libdir}/libavutil.a
+%{_libdir}/libpostproc.a
+%{_libdir}/libswscale.a
%files ffplay
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/ffplay
-%{_mandir}/man1/ffplay.1*
+%{?with_doc:%{_mandir}/man1/ffplay.1*}
%files ffserver
%defattr(644,root,root,755)
%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/ffserver
%attr(755,root,root) %{_sbindir}/ffserver
%attr(754,root,root) /etc/rc.d/init.d/ffserver
-%{_mandir}/man1/ffserver.1*
+%{?with_doc:%{_mandir}/man1/ffserver.1*}
%dir %attr(770,root,ffserver) /var/cache/ffserver
%dir %attr(770,root,ffserver) /var/log/ffserver