%global	ffmpeg_license	LGPL3+
%global debug_package %{nil}

Name:           ffmpeg%{?flavor}
Version:        4.2.4
Release:        1%{?dist}
Summary:        FFmpeg is the leading multimedia framework,
Source0:        https://ffmpeg.org/releases/%name-%version.tar.gz
License:        %{ffmpeg_license}
URL:            http://ffmpeg.org/

Requires:       %{name}-libs%{?_isa} = %{version}-%{release}
BuildRequires:  alsa-lib-devel
BuildRequires:  bzip2-devel
BuildRequires:  fontconfig-devel
BuildRequires:  freetype-devel
BuildRequires:  fribidi-devel
BuildRequires:  gnutls-devel
BuildRequires:  gsm-devel
BuildRequires:  lame-devel >= 3.98.3
BuildRequires:  libdrm-devel
BuildRequires:  libgcrypt-devel
BuildRequires:  libGL-devel
BuildRequires:  libmodplug-devel
BuildRequires:  libmysofa-devel
BuildRequires:  libopenmpt-devel
BuildRequires:  librsvg2-devel
BuildRequires:  libssh-devel
BuildRequires:  libtheora-devel
BuildRequires:  libv4l-devel
BuildRequires:  libvdpau-devel
BuildRequires:  libvorbis-devel
BuildRequires:  libxcb-devel
BuildRequires:  libxml2-devel
BuildRequires:  openjpeg2-devel
BuildRequires:  perl(Pod::Man)
BuildRequires:  soxr-devel
BuildRequires:  speex-devel
BuildRequires:  texinfo
BuildRequires:  zimg-devel >= 2.7.0
BuildRequires:  zlib-devel
BuildRequires:	SDL2-devel


%description
FFmpeg is a complete and free Internet live audio and video
broadcasting solution for Linux/Unix. It also includes a digital
VCR. It can encode in real time in many formats including MPEG1 audio
and video, MPEG4, h263, ac3, asf, avi, real, mjpeg, and flash.

%package        libs
Summary:        Libraries for %{name}

%description    libs
FFmpeg is a complete and free Internet live audio and video
broadcasting solution for Linux/Unix. It also includes a digital
VCR. It can encode in real time in many formats including MPEG1 audio
and video, MPEG4, h263, ac3, asf, avi, real, mjpeg, and flash.
This package contains the libraries for %{name}


%package     -n libavdevice%{?flavor}
Summary:        Special devices muxing/demuxing library
Requires:       %{name}-libs%{_isa} = %{version}-%{release}

%description -n libavdevice%{?flavor}
Libavdevice is a complementary library to libavf "libavformat". It provides
various "special" platform-specific muxers and demuxers, e.g. for grabbing
devices, audio capture and playback etc.

%package        devel
Summary:        Development package for %{name}
Requires:       %{name}-libs%{_isa} = %{version}-%{release}
Requires:       libavdevice%{?flavor}%{_isa} = %{version}-%{release}
Requires:       pkgconfig

%description    devel
FFmpeg is a complete and free Internet live audio and video
broadcasting solution for Linux/Unix. It also includes a digital
VCR. It can encode in real time in many formats including MPEG1 audio
and video, MPEG4, h263, ac3, asf, avi, real, mjpeg, and flash.
This package contains development files for %{name}

%global ff_configure \
./configure \\\
    --prefix=%{_prefix} \\\
    --bindir=%{_bindir} \\\
    --datadir=%{_datadir}/%{name} \\\
    --docdir=%{_docdir}/%{name} \\\
    --incdir=%{_includedir}/%{name} \\\
    --libdir=%{_libdir} \\\
    --mandir=%{_mandir} \\\
    --arch=%{_target_cpu} \\\
    --enable-bzlib \\\
    --enable-fontconfig \\\
    --enable-gcrypt \\\
    --enable-gnutls \\\
    --enable-libdrm \\\
    --enable-libfreetype \\\
    --enable-libgsm \\\
    --enable-libmp3lame \\\
    --enable-libmysofa \\\
    --enable-libopenjpeg \\\
    --enable-libopenmpt \\\
    --enable-librsvg \\\
    --enable-libsoxr \\\
    --enable-libspeex \\\
    --enable-libssh \\\
    --enable-libtheora \\\
    --enable-libvorbis \\\
    --enable-libv4l2 \\\
    --enable-libxml2 \\\
    --enable-libzimg \\\
    --enable-avfilter \\\
    --enable-avresample \\\
    --enable-libmodplug \\\
    --enable-postproc \\\
    --enable-pthreads \\\
    --disable-static \\\
    --enable-shared \\\
    --enable-gpl \\\
    --disable-debug \\\
    --disable-stripping


%prep
%autosetup -p1 -n ffmpeg-%{version}
# fix -O3 -g in host_cflags
sed -i "s|check_host_cflags -O3|check_host_cflags %{optflags}|" configure
mkdir -p _doc/examples
cp -pr doc/examples/{*.c,Makefile,README} _doc/examples/


%build
%{ff_configure}
%make_build V=1
make documentation V=1
make alltools V=1

%install
%make_install V=1
%ldconfig_scriptlets  libs
%ldconfig_scriptlets -n libavdevice%{?flavor}

%files
%{_bindir}/ffmpeg%{?progs_suffix}
%{_bindir}/ffplay%{?progs_suffix}
%{_bindir}/ffprobe%{?progs_suffix}
%{!?flavor:
%{_mandir}/man1/ffmpeg*.1*
%{_mandir}/man1/ffplay*.1*
%{_mandir}/man1/ffprobe*.1*
}
%{_datadir}/%{name}

%files libs
%doc  CREDITS README.md
%license COPYING.*
%{_libdir}/lib*.so.*
%exclude %{_libdir}/libavdevice%{?build_suffix}.so.*
%{!?flavor:%{_mandir}/man3/lib*.3.*
%exclude %{_mandir}/man3/libavdevice.3*
}

%files -n libavdevice%{?flavor}
%{_libdir}/libavdevice%{?build_suffix}.so.*
%{!?flavor:%{_mandir}/man3/libavdevice.3*}

%files devel
%doc MAINTAINERS doc/APIchanges doc/*.txt
%doc _doc/examples
%doc %{_docdir}/%{name}/*.html
%{_includedir}/%{name}
%{_libdir}/pkgconfig/lib*.pc
%{_libdir}/lib*.so