File ffmpeg2.spec of Package ffmpeg2
#
# spec file for package ffmpeg2
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%bcond_with fdk_aac
%bcond_with lame
%bcond_with librtmp
%bcond_with twolame
%bcond_with vo_aacenc
%bcond_with x264
%bcond_with x265
%bcond_with xvid
%bcond_with opencore
%bcond_without celt
%bcond_without libass
%bcond_without libva
%bcond_without openjpeg
%bcond_without vdpau
%bcond_without webp
Name: ffmpeg2
Version: 2.8.11
Release: 0
Summary: Library for working with various multimedia formats
License: LGPL-2.1+ and GPL-2.0+
Group: Productivity/Multimedia/Video/Editors and Convertors
Url: https://ffmpeg.org/
#Freshcode-URL: http://freshcode.club/projects/ffmpeg
#Git-Clone: git://source.ffmpeg.org/ffmpeg
Source: https://www.ffmpeg.org/releases/ffmpeg-%version.tar.xz
Source2: https://www.ffmpeg.org/releases/ffmpeg-%version.tar.xz.asc
Source3: ffmpeg2-rpmlintrc
Source4: enable_decoders
Source5: enable_encoders
Source6: enable_demuxers
Source7: enable_muxers
Source99: baselibs.conf
Patch1: ffmpeg-libcdio_cdda-pkgconfig.patch
Patch2: ffmpeg-2.4.5-arm6l.patch
Patch3: ffmpeg-pkgconfig-version.patch
Patch4: ffmpeg-new-coder-errors.diff
Patch5: ffmpeg-codec-choice.diff
Patch6: 0001-avcodec-exr-Check-tile-positions.patch
BuildRequires: ladspa-devel
BuildRequires: libgsm-devel
BuildRequires: pkg-config
BuildRequires: yasm
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(bzip2)
%if %{with celt}
BuildRequires: pkgconfig(celt) >= 0.11.0
%endif
BuildRequires: pkgconfig(enca)
BuildRequires: pkgconfig(fontconfig) >= 2.4.2
BuildRequires: pkgconfig(freetype2)
BuildRequires: pkgconfig(fribidi) >= 0.19.0
BuildRequires: pkgconfig(gnutls)
BuildRequires: pkgconfig(jack)
%if %{with libass}
BuildRequires: pkgconfig(libass)
%endif
BuildRequires: pkgconfig(libbluray)
BuildRequires: pkgconfig(libcdio)
BuildRequires: pkgconfig(libcdio_paranoia)
BuildRequires: pkgconfig(libdc1394-2)
BuildRequires: pkgconfig(liboil-0.3) >= 0.3.15
%if %{with openjpeg}
BuildRequires: pkgconfig(libopenjpeg)
%endif
BuildRequires: pkgconfig(libpulse)
BuildRequires: pkgconfig(libraw1394)
%if %{with libva}
BuildRequires: pkgconfig(libva) >= 0.35.0
%endif
%if %{with webp}
BuildRequires: pkgconfig(libwebp) >= 0.4
%endif
BuildRequires: pkgconfig(ogg)
BuildRequires: pkgconfig(opus)
BuildRequires: pkgconfig(schroedinger-1.0)
BuildRequires: pkgconfig(sdl)
BuildRequires: pkgconfig(speex)
BuildRequires: pkgconfig(theora) >= 1.1
%if %{with vdpau}
BuildRequires: pkgconfig(vdpau)
%endif
BuildRequires: pkgconfig(vorbis)
BuildRequires: pkgconfig(vpx) >= 1.3.0
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xcb)
BuildRequires: pkgconfig(xcb-render)
BuildRequires: pkgconfig(xcb-shape)
BuildRequires: pkgconfig(xcb-shm)
BuildRequires: pkgconfig(xcb-xfixes)
BuildRequires: pkgconfig(xext)
BuildRequires: pkgconfig(xfixes)
BuildRequires: pkgconfig(zlib)
%if 0%{?BUILD_ORIG}
%if %{with fdk_aac}
BuildRequires: pkgconfig(fdk-aac)
%endif
%if %{with librtmp}
BuildRequires: pkgconfig(librtmp)
%endif
%if %{with lame}
BuildRequires: libmp3lame-devel
%endif
%if %{with xvid}
BuildRequires: libxvidcore-devel
%endif
%if %{with opencore}
BuildRequires: pkgconfig(opencore-amrnb)
%endif
%if %{with twolame}
BuildRequires: pkgconfig(twolame)
%endif
%if %{with x264}
BuildRequires: pkgconfig(x264)
%endif
%if %{with x265}
BuildRequires: pkgconfig(x265)
%endif
%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Provides: ffmpeg-tools = %{version}
Obsoletes: ffmpeg-tools < %{version}
%description
FFmpeg is a multimedia framework, able to decode, encode,
transcode, mux, demux, stream, filter and play several formats
that humans and machines have created.
%if !0%{?BUILD_ORIG}
This build of ffmpeg is limited in the number of codecs supported.
%endif
%package -n libavcodec56
Summary: FFmpeg codec library
Group: System/Libraries
Requires: libavutil54 = %version-%release
Requires: libswresample1 = %version-%release
# For mozillas
Provides: libavcodec = %version-%release
%if 0%{?BUILD_ORIG}
Provides: libavcodec-full = %version-%release
# This can be required by packages likes vlc-codecs - following the shlib name to not get random lib providers
Provides: libavcodec56(unrestricted)
%endif
%description -n libavcodec56
The libavcodec library provides a generic encoding/decoding framework
and contains multiple decoders and encoders for audio, video and
subtitle streams, and several bitstream filters.
%if !0%{?BUILD_ORIG}
This build of ffmpeg is limited in the number of codecs supported.
%endif
%package -n libavdevice56
Summary: FFmpeg device library
Group: System/Libraries
Requires: libavcodec56 = %version-%release
Requires: libavfilter5 = %version-%release
Requires: libavformat56 = %version-%release
Requires: libavutil54 = %version-%release
%description -n libavdevice56
The libavdevice library provides a generic framework for grabbing from
and rendering to many common multimedia input/output devices, and
supports several input and output devices, including Video4Linux2, VfW,
DShow, and ALSA.
%package -n libavfilter5
Summary: FFmpeg audio and video filtering library
Group: System/Libraries
Requires: libavcodec56 = %version-%release
Requires: libavformat56 = %version-%release
Requires: libavresample2 = %version-%release
Requires: libavutil54 = %version-%release
Requires: libpostproc53 = %version-%release
Requires: libswresample1 = %version-%release
Requires: libswscale3 = %version-%release
%description -n libavfilter5
The libavfilter library provides a generic audio/video filtering
framework containing several filters, sources and sinks.
%package -n libavformat56
Summary: FFmpeg's stream format library
Group: System/Libraries
Requires: libavcodec56 = %version-%release
Requires: libavutil54 = %version-%release
%description -n libavformat56
The libavformat library provides a generic framework for multiplexing
and demultiplexing (muxing and demuxing) audio, video and subtitle
streams. It encompasses multiple muxers and demuxers for multimedia
container formats.
%if !0%{?BUILD_ORIG}
This build of ffmpeg is limited in the number of codecs supported.
%endif
%package -n libavresample2
Summary: FFmpeg alternate audio resampling library
Group: System/Libraries
Requires: libavutil54 = %version-%release
%description -n libavresample2
An audio resampling library that is being provided for drop-in
compatibility with libav.
It is advised to use libswresample for new code.
%package -n libavutil54
Summary: FFmpeg's utility library
Group: System/Libraries
%description -n libavutil54
The libavutil library is a utility library to aid portable multimedia
programming. It contains safe portable string functions, random
number generators, data structures, additional mathematics functions,
cryptography and multimedia related functionality (like enumerations
for pixel and sample formats).
%package -n libpostproc53
Summary: FFmpeg post-processing library
Group: System/Libraries
Requires: libavutil54 = %version-%release
%description -n libpostproc53
A library with video postprocessing filters, such as deblocking and
deringing filters, noise reduction, automatic contrast and brightness
correction, linear/cubic interpolating deinterlacing.
%package -n libswresample1
Summary: FFmpeg software resampling library
Group: System/Libraries
Requires: libavutil54 = %version-%release
%description -n libswresample1
The libswresample library performs audio conversion between different
sample rates, channel layout and channel formats.
%package -n libswscale3
Summary: FFmpeg image scaling and colorspace/pixel conversion library
Group: System/Libraries
Requires: libavutil54 = %version-%release
%description -n libswscale3
The libswscale library performs image scaling and colorspace and
pixel format conversion operations.
%package devel
Summary: Development files for FFmpeg 2.x libraries
Group: Development/Libraries/C and C++
Conflicts: libavcodec-devel
Conflicts: libavdevice-devel
Conflicts: libavfilter-devel
Conflicts: libavformat-devel
Conflicts: libavresample-devel
Conflicts: libavutil-devel
Conflicts: libpostproc-devel
Conflicts: libswresample-devel
Conflicts: libswscale-devel
Conflicts: ffmpeg-devel
Requires: libavcodec56 = %version
Requires: libavdevice56 = %version
Requires: libavfilter5 = %version
Requires: libavformat56 = %version
Requires: libavresample2 = %version
Requires: libavutil54 = %version
Requires: libpostproc53 = %version
Requires: libswresample1 = %version
Requires: libswscale3 = %version
%description devel
This subpackage contains the headers for the libraries from an older
FFmpeg version, 2.x. For package description details, see the
packages of the most recent ffmpeg version also shipped in the
distribution.
%prep
%setup -qn ffmpeg-%version
%patch -P 1 -P 2 -P 3 -P 4 -P 5 -P 6 -p1
%build
perl -i -pe 's{__TIME__|__DATE__}{"$&"}g' *.c
CFLAGS="%optflags" \
./configure \
--prefix="%_prefix" --libdir="%_libdir" --shlibdir="%_libdir" \
--incdir="%_includedir/ffmpeg" \
--extra-cflags="%optflags" --optflags="%optflags" \
--disable-htmlpages \
--enable-pic --disable-stripping \
--enable-shared --disable-static \
--enable-runtime-cpudetect \
--enable-gpl \
--disable-openssl \
--enable-avresample \
--enable-libcdio \
--enable-gnutls \
--enable-ladspa \
%if %{with libass}
--enable-libass \
%endif
--enable-libbluray \
%if %{with celt}
--enable-libcelt \
%endif
--enable-libcdio \
--enable-libdc1394 \
--enable-libfreetype \
--enable-libgsm \
%if %{with openjpeg}
--enable-libopenjpeg \
%endif
--enable-libopus \
--enable-libpulse \
--enable-libschroedinger \
--enable-libspeex \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
%if %{with webp}
--enable-libwebp \
%endif
--enable-pic \
--enable-pthreads \
%if %{with libva}
--enable-vaapi \
%endif
%if %{with vdpau}
--enable-vdpau \
%endif
%if 0%{?BUILD_ORIG}
%if %{with fdk_aac}
--enable-libfdk_aac --enable-nonfree \
%endif
%if %{with lame}
--enable-libmp3lame \
%endif
%if %{with opencore}
--enable-libopencore-amrnb \
--enable-libopencore-amrwb \
--enable-version3 \
%endif
%if %{with twolame}
--enable-libtwolame \
%endif
%if %{with x264}
--enable-libx264 \
%endif
%if %{with x265}
--enable-libx265 \
%endif
%if %{with xvid}
--enable-libxvid \
%endif
%else
--disable-encoders \
--disable-decoders \
--disable-muxers \
--disable-demuxers \
--disable-decoder=mpeg1video,mpeg2video,mpeg4,h264,vc1 \
--enable-encoder="$(perl -pe 's{^(\w*).*}{$1,}gs' <%_sourcedir/enable_encoders)" \
--enable-decoder="$(perl -pe 's{^(\w*).*}{$1,}gs' <%_sourcedir/enable_decoders)" \
--enable-muxer="$(perl -pe 's{^(\w*).*}{$1,}gs' <%_sourcedir/enable_muxers)" \
--enable-demuxer="$(perl -pe 's{^(\w*).*}{$1,}gs' <%_sourcedir/enable_demuxers)" \
%endif
--enable-x11grab
cat config.h
make %{?_smp_mflags}
%install
b="%buildroot"
%make_install
rm -Rf "$b/%_bindir" "$b/%_mandir" "$b/%_datadir"
%post -n libavcodec56 -p /sbin/ldconfig
%postun -n libavcodec56 -p /sbin/ldconfig
%post -n libavdevice56 -p /sbin/ldconfig
%postun -n libavdevice56 -p /sbin/ldconfig
%post -n libavfilter5 -p /sbin/ldconfig
%postun -n libavfilter5 -p /sbin/ldconfig
%post -n libavformat56 -p /sbin/ldconfig
%postun -n libavformat56 -p /sbin/ldconfig
%post -n libavresample2 -p /sbin/ldconfig
%postun -n libavresample2 -p /sbin/ldconfig
%post -n libavutil54 -p /sbin/ldconfig
%postun -n libavutil54 -p /sbin/ldconfig
%post -n libpostproc53 -p /sbin/ldconfig
%postun -n libpostproc53 -p /sbin/ldconfig
%post -n libswresample1 -p /sbin/ldconfig
%postun -n libswresample1 -p /sbin/ldconfig
%post -n libswscale3 -p /sbin/ldconfig
%postun -n libswscale3 -p /sbin/ldconfig
%files -n libavcodec56
%defattr(-,root,root)
%_libdir/libavcodec.so.*
%files -n libavdevice56
%defattr(-,root,root)
%_libdir/libavdevice.so.*
%files -n libavfilter5
%defattr(-,root,root)
%_libdir/libavfilter.so.*
%files -n libavformat56
%defattr(-,root,root)
%_libdir/libavformat.so.*
%files -n libavresample2
%defattr(-,root,root)
%_libdir/libavresample.so.*
%files -n libavutil54
%defattr(-,root,root)
%_libdir/libavutil.so.*
%files -n libpostproc53
%defattr(-,root,root)
%_libdir/libpostproc.so.*
%files -n libswresample1
%defattr(-,root,root)
%_libdir/libswresample.so.*
%files -n libswscale3
%defattr(-,root,root)
%_libdir/libswscale.so.*
%files devel
%defattr(-,root,root)
%doc Changelog COPYING.GPLv2 CREDITS LICENSE.md README.md
%_includedir/ffmpeg/
%_libdir/libav*.so
%_libdir/libpostproc.so
%_libdir/libsw*.so
%_libdir/pkgconfig/*.pc
%changelog