#TODO: Build with openjpeg, opencore-amr, vo-amrwbenc
#TODO: add make test to %%check section

#% define svndate 20100625
%global with_faac 1
%global with_vaapi  1
%global with_libvpx 1

%global major_version 2.8

Summary:  Digital VCR and streaming server
Name:   ffmpeg
Version:  %{major_version}.7
Release:  3%{?svndate:.%svndate}%{?_dist_release}
Source:   http://ffmpeg.org/releases/%{name}-%{?svndate:%svndate}%{!?svndate:%version}.tar.bz2
## prebuilt man pages

%if 0%{?_with_amr:1}
License:        GPLv3+
%else
License:        GPLv2+
%endif
Group:    Applications/Multimedia
URL:    http://ffmpeg.org/

BuildRequires:  bzip2-devel
BuildRequires:  celt-devel
##BuildRequires: dirac-devel
BuildRequires:  freetype2-devel
##BuildRequires: frei0r-devel
BuildRequires:  gnutls-devel
BuildRequires:  gsm-devel
BuildRequires:  imlib2-devel
BuildRequires:  libdc1394-devel
BuildRequires:  libogg-devel
BuildRequires:  libass-devel
%{!?_without_cdio:BuildRequires: libcdio-devel}
%{!?_without_cdio:BuildRequires: libcdio-paranoia-devel}
#libcrystalhd is currently broken
%{?_with_crystalhd:BuildRequires: libcrystalhd-devel}
BuildRequires:  libraw1394-devel
BuildRequires:  librtmp-devel >= 2.3
BuildRequires:  libtheora-devel
%{?with_vaapi:BuildRequires:libva-devel >= 0.31.0}
BuildRequires:  libvdpau-devel
BuildRequires:  libvorbis-devel
%{?with_libvpx:BuildRequires:  libvpx-devel >= 0.9.7}
BuildRequires:  libXvMC-devel
%{?_with_opencore_amr:BuildRequires: opencore-amr-devel vo-amrwbenc-devel}
%{!?_without_openal:BuildRequires: openal-soft-devel}
%{?_with_opencv:BuildRequires: opencv-devel}
%{?_with_openjpeg:BuildRequires:  openjpeg-devel}
##BuildRequires:  schroedinger-devel
BuildRequires:  SDL-devel
BuildRequires:  speex-devel
##BuildRequires:  texi2html
BuildRequires:  zlib-devel 
BuildRequires:  yasm
# *-devel packages provided by other self-build-* should only be listed
# in self-build-%{name}.spec as PreReq.
##BuildRequires: a52dec-devel
#BuildRequires: faac-devel
##BuildRequires: lame-devel
#BuildRequires: libdca-devel
#BuildRequires: x264-devel >= 0.0.0-18.20111216
#BuildRequires: xvidcore-devel

Requires: %{name}-libs = %{version}-%{release}

BuildRoot:  %{_tmppath}/%{name}-%{version}-root

Obsoletes:      ffmpeg < %{major_version}, ffmpeg-libs < %{major_version}, ffmpeg-devel < %{major_version}

%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}
Group: System Environment/Libraries

%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 devel
Summary: Development package for %{name}
Group: Development/Libraries
Requires: %{name}-libs = %{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}.


%prep
%setup -q -n %{name}-%{?svndate:%svndate}%{!?svndate:%version}

%__sed -i "s/-O3 -g/$RPM_OPT_FLAGS/" configure

%build
%ifarch ppc
# compile with -mlongcall on ppc/ppc64 (rf804)
export RPM_OPT_FLAGS="$RPM_OPT_FLAGS -mlongcall"
%endif

./configure \
    --prefix=%{_prefix} \
    --incdir=%{_includedir}/%{name} \
    --shlibdir=%{_libdir} \
    --libdir=%{_libdir} \
    --mandir=%{_mandir} \
    --arch=%{_target_cpu} \
%ifarch %{ix86}
    --cpu=%{_target_cpu} \
%endif
%ifarch ppc
    --cpu=g3 \
    --enable-pic \
%endif
    --enable-runtime-cpudetect \
    --extra-cflags="$RPM_OPT_FLAGS" \
    %{?_with_opencore_amr:--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-version3} \
    --enable-bzlib \
    %{!?_with_crystalhd:--disable-crystalhd} \
    --enable-zlib \
    %{?_with_frei0r:--enable-frei0r} \
    --enable-gnutls \
    --enable-libass \
    %{!?_without_cdio:--enable-libcdio} \
    --enable-libcelt \
    --enable-libdc1394 \
    %{?_with_libdirac:--enable-libdirac} \
    %{?with_faac:--enable-libfaac --enable-nonfree} \
    --enable-libfreetype \
    --enable-libgsm \
    --enable-libmp3lame \
    %{!?_without_openal:--enable-openal} \
    %{?_with_opencv:--enable-libopencv} \
    %{?_with_openjpeg:--enable-libopenjpeg} \
    --enable-librtmp \
    --enable-libspeex \
    --enable-libtheora \
    --enable-libvorbis \
    %{?with_libvpx:--enable-libvpx} \
    --enable-libx264 \
    --enable-libx265 \
    --enable-libxvid \
    \
    --enable-x11grab \
    --enable-avfilter \
    --enable-postproc \
    --enable-pthreads \
    --disable-static \
    --enable-shared \
    --enable-gpl \
    --disable-debug \
    --disable-stripping \
    \
    --disable-doc --disable-htmlpages --disable-podpages --disable-txtpages \
    %{?enable_avconv:--enable-avconv} \
    ;

%__make %{?_smp_mflags}

%__make alltools


%install
%__make install DESTDIR=$RPM_BUILD_ROOT

## install tool/qt-faststart
%__install -pm755 tools/qt-faststart $RPM_BUILD_ROOT%{_bindir}

# ## install man
# %__mkdir_p $RPM_BUILD_ROOT%{_mandir}/man1/
# %__install -m0644 doc/*.1 $RPM_BUILD_ROOT%{_mandir}/man1/


%clean
%{__rm} -rf $RPM_BUILD_ROOT

%post libs -p /sbin/ldconfig

%postun libs -p /sbin/ldconfig

%files
%defattr(-,root,root,-)
%doc COPYING.* CREDITS Changelog README doc/ffserver.conf
%{?enable_avconv:%{_bindir}/avconv}
%{_bindir}/ffmpeg
%{_bindir}/ffplay
%{_bindir}/ffprobe
%{_bindir}/ffserver
%{_bindir}/qt-faststart
%{?enable_avconv:%{_mandir}/man1/avconv.1*}
# %{_mandir}/man1/ffmpeg*.1*
# %{_mandir}/man1/ffplay*.1*
# %{_mandir}/man1/ffprobe*.1*
# %{_mandir}/man1/ffserver*.1*
%{_datadir}/ffmpeg


%files libs
%defattr(-,root,root,-)
%{_libdir}/lib*.so.*
# %{_mandir}/man3/lib*.3.gz

%files devel
%defattr(-,root,root,-)
%doc MAINTAINERS doc/APIchanges doc/*.txt doc/*.html
%{_includedir}/ffmpeg
%{_libdir}/pkgconfig/lib*.pc
%{_libdir}/lib*.so


%changelog
* Wed Oct 09 2019 Toshiaki Ara <ara_t@384.jp> 2.8.6-3
- change BR: self-build-{a52dec,lame} to {a52dec,lame}-devel

* Mon Nov 05 2018 Toshiaki Ara <ara_t@384.jp> 2.8.6-2
- rebuild

* Sun Jul 03 2016 Yoji TOYODA <bsyamato@sea.plala.or.jp> 2.8.6-2
- rebuild with libcdio-0.93

* Mon Feb 15 2016 Munehiro Yamamoto <munepi@vinelinux.org> 2.8.6-1
- new upstream release

* Sat Jan 23 2016 Munehiro Yamamoto <munepi@vinelinux.org> 2.8.5-1
- new upstream release

* Wed Dec 30 2015 Yoji TOYODA <bsyamato@sea.plala.or.jp> 2.7.1-2
- rebuild with gnutls-3.4.7

* Sat Jul 11 2015 Munehiro Yamamoto <munepi@vinelinux.org> 2.7.1-1
- new upstream release

* Sun May 24 2015 Munehiro Yamamoto <munepi@vinelinux.org> 2.6.3-1
- new upstream release

* Mon Apr 20 2015 Munehiro Yamamoto <munepi@vinelinux.org> 2.6.2-1
- new upstream release

* Sun Mar 22 2015 Munehiro Yamamoto <munepi@vinelinux.org> 2.6.1-1
- new upstream release

* Mon Mar  9 2015 Munehiro Yamamoto <munepi@vinelinux.org> 2.6-1
- new upstream release

* Sat Feb 21 2015 Munehiro Yamamoto <munepi@vinelinux.org> 2.5.4-1
- new upstream release

* Mon Jan 19 2015 Munehiro Yamamoto <munepi@vinelinux.org> 2.5.3-1
- new upstream release

* Fri Jan  2 2015 Munehiro Yamamoto <munepi@vinelinux.org> 2.5.2-1
- new upstream release

* Sun Jul 13 2014 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.2.6-2
- add BuildRequires: libcdio-paranoia-devel

* Sun Mar 16 2014 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.2.6-1
- new upstream release

* Fri Oct  4 2013 Munehiro Yamamoto <munepi@vinelinux.org> 1.2.4-1
- new upstream release

* Sun Sep 29 2013 Munehiro Yamamoto <munepi@vinelinux.org> 1.2.3-1
- new upstream release

* Wed May 22 2013 Munehiro Yamamoto <munepi@vinelinux.org> 1.2.1-1
- new upstream release
- added man pages
  - added Source10: ffmpeg-1.2.1-doc.tar.xz

* Thu Apr  4 2013 Munehiro Yamamoto <munepi@vinelinux.org> 1.2-1
- new upstream release

* Tue Mar 12 2013 Munehiro Yamamoto <munepi@vinelinux.org> 1.1.3-1
- new upstream release

* Sun Feb  3 2013 Munehiro Yamamoto <munepi@vinelinux.org> 1.1.1-2
- libvpx >= 0.9.7

* Sun Jan 20 2013 Munehiro Yamamoto <munepi@vinelinux.org> 1.1.1-1
- new upstream release /x264-0.129

* Thu Sep 27 2012 Munehiro Yamamoto <munepi@vinelinux.org> 0.11.2-1
- new upstream release

* Mon Jun 11 2012 Munehiro Yamamoto <munepi@vinelinux.org> 0.11.1-1
- new upstream release

* Sat May 26 2012 Munehiro Yamamoto <munepi@vinelinux.org> 0.11-1
- new upstream release

* Sat Feb 18 2012 Munehiro Yamamoto <munepi@vinelinux.org> 0.10-1
- new upstream release

* Wed Jan 11 2012 Munehiro Yamamoto <munepi@vinelinux.org> 0.9.1-1
- new upstream release

* Sun Dec 18 2011 Munehiro Yamamoto <munepi@vinelinux.org> 0.9-1
- new upstream release
- enable CELT decoding via libcelt
- enable FreeType support
- drop faad2 support (dropped upstream)

* Mon Sep 12 2011 Munehiro Yamamoto <munepi@vinelinux.org> 0.6.3-2
- change release to sync with self-build-ffmpeg-vl.spec

* Sun May 01 2011 Munehiro Yamamoto <munepi@vinelinux.org> 0.6.3-1
- new upstream release

* Tue Apr 05 2011 Munehiro Yamamoto <munepi@vinelinux.org> 0.6.2-1
- new upstream release

* Sat Mar 26 2011 Munehiro Yamamoto <munepi@vinelinux.org> 0.6.1-2
- required latest x264 build
- added BuildRequires: librtmp-devel >= 2.3
- build PIC objects on PPC
#- add qt-faststart tool

* Sat Oct 30 2010 Munehiro Yamamoto <munepi@vinelinux.org> 0.6.1-1
- new upstream release

* Sat Jul 17 2010 Munehiro Yamamoto <munepi@vinelinux.org> 0.6-4
- change release to sync with self-build-ffmpeg-vl.spec

* Sun Jul 11 2010 Munehiro Yamamoto <munepi@vinelinux.org> 0.6-3
- added BuildRequires: libvpx-devel >= 0.9.1

* Sat Jun 26 2010 Munehiro Yamamoto <munepi@vinelinux.org> 0.6-2
- new upstream release

* Sun Apr 18 2010 Munehiro Yamamoto <munepi@vinelinux.org> 0.6-1.20100410
- bumped version to pre-0.6

* Sun Apr 11 2010 Munehiro Yamamoto <munepi@vinelinux.org> 0.5-13.20100410
- updated source snapshot 20100410

* Sat Apr 10 2010 Munehiro Yamamoto <munepi@vinelinux.org> 0.5-12.20100401
- change release to sync with self-build-ffmpeg-vl.spec

* Sat Apr 10 2010 Munehiro Yamamoto <munepi@vinelinux.org> 0.5-11.20100401
- change release to sync with self-build-ffmpeg-vl.spec

* Fri Apr 02 2010 Munehiro Yamamoto <munepi@vinelinux.org> 0.5-10.20100401
- updated source snapshot 20100401

* Sat Mar 27 2010 Munehiro Yamamoto <munepi@vinelinux.org> 0.5-9.20100216
- updated source snapshot 20100326

* Sat Mar 20 2010 Munehiro Yamamoto <munepi@vinelinux.org> 0.5-8.20100216
- change release to sync with self-build-ffmpeg

* Wed Feb 17 2010 Munehiro Yamamoto <munepi@vinelinux.org> 0.5-7.20100216
- updated source snapshot 20100216
  - rebuild with recent x264-devel
- updated pre-built man files: ffmpeg.1 ffplay.1 ffserver.1
- added BuildRequires:  libvdpau-devel

* Sat Jun 06 2009 Munehiro Yamamoto <munepi@cg8.so-net.ne.jp> 0.5-6
- change release to sync with self-build-ffmpeg

* Tue May 26 2009 Munehiro Yamamoto <munepi@cg8.so-net.ne.jp> 0.5-5
- change release to sync with self-build-ffmpeg

* Wed May 13 2009 Munehiro Yamamoto <munepi@cg8.so-net.ne.jp> 0.5-4
- applied ffmpeg-0.5-disable-texi2html.patch
  - dropped BuildRequires: texi2html

* Thu Mar 12 2009 Munehiro Yamamoto <munepi@cg8.so-net.ne.jp> 0.5-3
- change release to sync with self-build-ffmpeg

* Wed Mar 11 2009 Munehiro Yamamoto <munepi@cg8.so-net.ne.jp> 0.5-2
- corrected release number

* Wed Mar 11 2009 Munehiro Yamamoto <munepi@cg8.so-net.ne.jp> 0.5-1
- new upstream release
- added BuildRequires: 
  - speex-devel
  - bzip2-devel

* Sat Feb 28 2009 Munehiro Yamamoto <munepi@cg8.so-net.ne.jp> 0.4.9-20090227.8
- 20090227 snapshot

* Tue Feb 24 2009 Munehiro Yamamoto <munepi@cg8.so-net.ne.jp> 0.4.9-20090202.7
- added %%{?_with_amr:%%{_datadir}/%%{name}} in %%files

* Sun Feb 08 2009 Munehiro Yamamoto <munepi@cg8.so-net.ne.jp> 0.4.9-20090202.6
- changed to PreReq:  self-build-faad2 >= 2.0 from faad2-devel
- dropped Requires: a52dec, faad2 in ffmpeg-libs

* Wed Feb 04 2009 Munehiro Yamamoto <munepi@cg8.so-net.ne.jp> 0.4.9-20090202.5
- 20090202 snapshot

* Sun Jan 11 2009 Munehiro Yamamoto <munepi@cg8.so-net.ne.jp> 0.4.9-20090110.4
- 20090110 snapshot
- dropped some patches

* Thu Nov 13 2008 Munehiro Yamamoto <munepi@cg8.so-net.ne.jp> 0.4.9-15488.1
- source updated (r15488)
- fixed License: GPLv2+
- added BuildRequires: gsm-devel libdc1394-devel libraw1394-devel
- added BuildRequires: yasm (only %%ix86)
- applied ffmpeg-cpu.patch (merged from RPM Fusion)

* Sun Nov 02 2008 Munehiro Yamamoto <munepi@cg8.so-net.ne.jp> 0.4.9-11662.3vl4
- spec in utf8

* Tue May 20 2008 Kazutaka HARADA <kazutaka@dc4.so-net.ne.jp> 0.4.9-11662.2vl4
- change release to sync with self-build-ffmpeg

* Wed Apr 16 2008 Atsushi SHICHI <ats777@gmail.com> 0.4.9-11662.1vl4
- drop "Patch100: ffmpeg-vine.patch".

* Mon Apr 7 2008 Munehiro Yamamoto <munepi@cg8.so-net.ne.jp> 0.4.9-0.20080128.1vl4
- build with new versioning policy
- change to use svn export from svn checkout on post install
- fix ffmpeg-vine.patch for libswscale/swscale.c.rej

* Thu Mar 13 2008 Munehiro Yamamoto <munepi@cg8.so-net.ne.jp> 0.4.9-0.20080128vl2
- [self-build-ffmpeg.spec]
  For all pre-required package that is provied by self-build,  
  changed to its self-build package

* Sun Mar 9 2008 Munehiro Yamamoto <munepi@cg8.so-net.ne.jp> 0.4.9-0.20080128vl1
- initial build for Vine Linux 4.2
- snapshot 2008/01/28 + some Rev.11662 2008/01/29

### end of file
