# - libnut enabled no (http://www.nut-container.org/)
#
# Conditional build:
-%bcond_with amr # 3GPP Adaptive Multi Rate (AMR) codec support; makes package non-distributable
+%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
-#
-Summary: Realtime audio/video encoder and streaming server
+
+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.5
-Release: 3
+Version: 0.6.1
+Release: 1
# LGPL or GPL, chosen at configure time (GPL version is more featured)
# (postprocessing, ac3, xvid, x264, faad)
-License: GPL v2+ with LGPL v2.1+ parts
+License: GPL v3+ with LGPL v3+ parts
Group: Applications/Multimedia
Source0: http://ffmpeg.mplayerhq.hu/releases/%{name}-%{version}.tar.bz2
-# Source0-md5: be8503f15c3b81ba00eb8379ca8dcf33
+# Source0-md5: 4f5d732d25eedfb072251b5314ba2093
Source1: ffserver.init
Source2: ffserver.sysconfig
Source3: ffserver.conf
-Patch0: %{name}-x264.patch
-Patch1: %{name}-bug-803.patch
-URL: http://ffmpeg.mplayerhq.hu/
+Patch0: %{name}-bug-803.patch
+Patch1: %{name}-gsm.patch
+Patch2: faadbin-libfaadname.patch
+# vhook is gone. this patch needs different approach
+#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
-%if %{with amr}
-BuildRequires: amrnb-devel >= 6.1.0.4
-BuildRequires: amrwb-devel >= 7.0.0.1
-%endif
BuildRequires: dirac-devel >= 1.0.0
BuildRequires: faac-devel
BuildRequires: faad2-devel
BuildRequires: libraw1394-devel
BuildRequires: libtheora-devel >= 1.0-0.beta3
BuildRequires: libtool >= 2:1.4d-3
+BuildRequires: libva-devel >= 1.0.3
+BuildRequires: libvdpau-devel
BuildRequires: libvorbis-devel
-BuildRequires: libx264-devel >= 0.1.2-1.20081023
-BuildRequires: speex-devel
+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 >= 1:1.2-rc1
%ifarch %{ix86}
%ifnarch i386 i486
BuildRequires: nasm
%endif
%endif
+BuildRequires: perl-Encode
BuildRequires: perl-tools-pod
BuildRequires: pkgconfig
BuildRequires: rpmbuild(macros) >= 1.470
BuildRequires: tetex
BuildRequires: texi2html
BuildRequires: texinfo
-%{?with_amr:BuildRequires: unzip}
BuildRequires: xvid-devel >= 1:1.1.0
BuildRequires: zlib-devel
%{?with_autoreqdep:BuildConflicts: libpostproc}
%define specflags_ppc -fPIC
%description
-ffmpeg is a hyper fast realtime audio/video encoder and streaming
-server. It can grab from a standard Video4Linux video source and
-convert it into several file formats based on DCT/motion compensation
-encoding. Sound is compressed in MPEG audio layer 2 or using an AC3
-compatible stream.
+FFmpeg is a complete solution to record, convert and stream audio and
+video. It is a command line tool to convert one video file format to
+another. It also supports grabbing and encoding in real time from a TV
+card.
%description -l pl.UTF-8
ffmpeg jest bardzo szybkim koderem audio/wideo w czasie rzeczywistym
Summary: ffmpeg libraries
Summary(pl.UTF-8): Biblioteki ffmpeg
Group: Libraries
+Suggests: faad2-libs
%description libs
-This package contains ffmpeg shared libraries.
+This package contains:
+- the codec library from the ffmpeg project. It supports most existing
+ encoding formats (MPEG, DivX, MPEG4, AC3, DV...),
+- demuxer library from the ffmpeg project. It supports most existing
+ file formats (AVI, MPEG, OGG, Matroska, ASF...),
+- video postprocessing library from the ffmpeg project.
%description libs -l pl.UTF-8
Ten pakiet zawiera biblioteki współdzielone ffmpeg.
Group: Development/Libraries
Requires: %{name}-libs = %{version}-%{release}
# for libavcodec:
-%if %{with amr}
-Requires: amrnb-devel
-Requires: amrwb-devel >= 5.3.0
-%endif
Requires: dirac-devel
Requires: faac-devel
Requires: faad2-devel
bibliotek FFmpeg oraz biblioteki SDL. Jest używany głównie do
testowania różnych API FFmpeg.
-%package vhook-imlib2
-Summary: imlib2 based hook
-Summary(pl.UTF-8): Moduł przejściowy oparty o imlib2
-Group: Libraries
-Requires: %{name}-libs = %{version}-%{release}
-
-%description vhook-imlib2
-This module implements a text overlay for a video image. Currently it
-supports a fixed overlay or reading the text from a file. The string
-is passed through strftime so that it is easy to imprint the date and
-time onto the image.
-
-%description vhook-imlib2 -l pl.UTF-8
-Ten moduł implementuje tekstową nakładkę dla obrazu. Aktualnie
-obsługuje stałą nakładkę lub wczytywanie tekstu z pliku. Łańcuch jest
-przepuszczany przez strftime, więc łatwo umieścić datę i czas na
-obrazie.
-
%package ffserver
Summary: FFserver video server
Summary(pl.UTF-8): FFserver - serwer strumieni obrazu
%prep
%setup -q
%patch0 -p1
-%patch1 -p1
+%patch1 -p0
+%patch2 -p1
+%patch3 -p0
# package the grep result for mplayer, the result formatted as ./mplayer/configure
cat <<EOF > ffmpeg-avconfig
--shlibdir=%{_libdir} \
--mandir=%{_mandir} \
--cc="%{__cc}" \
- --extra-cflags="-D_GNU_SOURCE=1 %{rpmcppflags} %{rpmcflags} -I/usr/include/libavcodec -I/usr/include/libswscale" \
+ --extra-cflags="-D_GNU_SOURCE=1 %{rpmcppflags} %{rpmcflags}" \
--extra-ldflags="%{rpmcflags} %{rpmldflags}" \
--disable-debug \
--disable-optimizations \
--disable-stripping \
+ --enable-avfilter \
--enable-gpl \
- --enable-libfaac \
- --enable-libfaad \
- --enable-libfaadbin \
+ --enable-version3 \
--enable-libdc1394 \
--enable-libdirac \
+ --enable-libfaad \
+ --enable-libfaadbin \
--enable-libgsm \
--enable-libmp3lame \
--enable-libschroedinger \
--enable-libspeex \
--enable-libtheora \
--enable-libvorbis \
+ --enable-libvpx \
--enable-libx264 \
--enable-libxvid \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-libopenjpeg \
--enable-postproc \
--enable-pthreads \
--enable-shared \
--enable-swscale \
+ --enable-vdpau \
+ --enable-x11grab \
%ifnarch %{ix86} %{x8664}
--disable-mmx \
%endif
%ifarch i386 i486
--disable-mmx \
%endif
-%if %{with amr}
+%if %{with nonfree}
--enable-nonfree \
- --enable-libamr-nb \
- --enable-libamr-wb
+ --enable-libfaac \
%endif
+ --enable-runtime-cpudetect
# force oldscaler build
sed -i -e 's|#define.*CONFIG_OLDSCALER.*0|#define CONFIG_OLDSCALER 1|g' config.h
%defattr(644,root,root,755)
%doc Changelog README doc/*.html doc/TODO
%attr(755,root,root) %{_bindir}/ffmpeg
+%attr(755,root,root) %{_bindir}/ffprobe
%dir %{_datadir}/ffmpeg
%{_datadir}/ffmpeg/*.ffpreset
%{_mandir}/man1/ffmpeg.1*
+%{_mandir}/man1/ffprobe.1*
%files libs
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libavcodec.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libavcodec.so.52
%attr(755,root,root) %{_libdir}/libavdevice.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libavdevice.so.52
+%attr(755,root,root) %{_libdir}/libavfilter.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libavfilter.so.1
%attr(755,root,root) %{_libdir}/libavformat.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libavformat.so.52
%attr(755,root,root) %{_libdir}/libavutil.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libavutil.so.50
%attr(755,root,root) %{_libdir}/libpostproc.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libpostproc.so.51
%attr(755,root,root) %{_libdir}/libswscale.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libavcodec.so.[0-9][0-9]
-%attr(755,root,root) %ghost %{_libdir}/libavdevice.so.[0-9][0-9]
-%attr(755,root,root) %ghost %{_libdir}/libavformat.so.[0-9][0-9]
-%attr(755,root,root) %ghost %{_libdir}/libavutil.so.[0-9][0-9]
-%attr(755,root,root) %ghost %{_libdir}/libpostproc.so.[0-9][0-9]
-%attr(755,root,root) %ghost %{_libdir}/libswscale.so.[0-9]
-%dir %{_libdir}/vhook
-%attr(755,root,root) %{_libdir}/vhook/drawtext.so
-%attr(755,root,root) %{_libdir}/vhook/fish.so
-%attr(755,root,root) %{_libdir}/vhook/null.so
-%attr(755,root,root) %{_libdir}/vhook/ppm.so
-%attr(755,root,root) %{_libdir}/vhook/watermark.so
+%attr(755,root,root) %ghost %{_libdir}/libswscale.so.0
%files devel
%defattr(644,root,root,755)
%doc doc/optimization.txt
%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}/libavformat.so
%attr(755,root,root) %{_libdir}/libavutil.so
%attr(755,root,root) %{_libdir}/libpostproc.so
%{_includedir}/ffmpeg
%{_includedir}/libavcodec
%{_includedir}/libavdevice
+%{_includedir}/libavfilter
%{_includedir}/libavformat
%{_includedir}/libavutil
%{_includedir}/libpostproc
%attr(755,root,root) %{_bindir}/ffplay
%{_mandir}/man1/ffplay.1*
-%if %{with imlib2}
-%files vhook-imlib2
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/vhook/imlib2.so
-%endif
-
%files ffserver
%defattr(644,root,root,755)
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ffserver.conf