%global sover           3
# git describe
%global aom_version     v3.8.0

# No libvmaf on openEuler
#ifarch x86_64
#bcond_without vmaf
#endif

# No highway & jpegxl on openEuler
#bcond_without jpegxl

# Use commit with updated changelog for correct versioning
%global commit          b681eac83963950afc7be55df56c22fa5210aaa2
%global shortcommit     %(c=%{commit}; echo ${c:0:7})
%global snapshotdate    20231130
%global prerelease      1

Name:       aom
Version:    3.8.0
Release:    2
Summary:    Royalty-free next-generation video format

License:    BSD
URL:        http://aomedia.org/
Source0:    https://aomedia.googlesource.com/%{name}/+archive/%{commit}.tar.gz#/%{name}-%{shortcommit}.tar.gz

Patch01:    Fix-integer-overflows-in-calc-of-stride_in_bytes.patch
Patch02:    Avoid-integer-overflows-in-align_image_dimension.patch

BuildRequires:  gcc-c++ gcc cmake3
BuildRequires:  doxygen git-core
BuildRequires:  perl-interpreter perl(Getopt::Long) perl-interpreter python3-devel yasm
%if %{with jpegxl}
BuildRequires:  pkgconfig(libjxl)
BuildRequires:  pkgconfig(libhwy)
%endif
%if %{with vmaf}
BuildRequires:  pkgconfig(libvmaf)
%endif

Provides:       av1 = %{version}-%{release}
Requires:       libaom%{?_isa} = %{version}-%{release}

%description
The Alliance for Open Media’s focus is to deliver a next-generation
video format that is:

 - Interoperable and open;
 - Optimized for the Internet;
 - Scalable to any modern device at any bandwidth;
 - Designed with a low computational footprint and optimized for hardware;
 - Capable of consistent, highest-quality, real-time video delivery; and
 - Flexible for both commercial and non-commercial content, including
   user-generated content.

This package contains the reference encoder and decoder.

%package -n libaom
Summary:        Library files for aom

%description -n libaom
Library files for aom, the royalty-free next-generation
video format.

%package -n libaom-devel
Summary:        Development files for aom
Requires:       libaom%{?_isa} = %{version}-%{release}

%description -n libaom-devel
Development files for aom, the royalty-free next-generation
video format.

%prep
%autosetup -p1 -c %{name}-%{commit}
# Set GIT revision in version
sed -i 's@set(aom_version "")@set(aom_version "%{aom_version}")@' build/cmake/version.cmake
# Disable buggy PDF generation
sed -i "s@GENERATE_LATEX         = YES@GENERATE_LATEX         = NO@" libs.doxy_template

%build
%ifarch %{arm}
%global optflags %{__global_compiler_flags} -march=armv7-a -mfpu=neon -mtune=cortex-a8 -mabi=aapcs-linux -mfloat-abi=hard
%endif

mkdir _build && cd _build
%cmake3 ../ -DENABLE_CCACHE=1 \
            -DCMAKE_SKIP_RPATH=1 \
            -DCMAKE_BUILD_TYPE=RelWithDebInfo \
            -DCONFIG_WEBM_IO=1 \
            -DENABLE_DOCS=1 \
            -DCONFIG_ANALYZER=0 \
            -DENABLE_TESTS=0 \
            -DBUILD_SHARED_LIBS=1 \
%if %{with jpegxl}
            -DCONFIG_TUNE_BUTTERAUGLI=1 \
%endif
%if %{with vmaf}
            -DCONFIG_TUNE_VMAF=1 \
%endif
            %{nil}
%make_build

%install
cd _build
%make_install
rm -rvf %{buildroot}%{_libdir}/libaom.a

%files
%doc AUTHORS CHANGELOG README.md
%license LICENSE PATENTS
%{_bindir}/aomdec
%{_bindir}/aomenc

%files -n libaom
%license LICENSE PATENTS
%{_libdir}/libaom.so.%{sover}*

%files -n libaom-devel
%doc _build/docs/html/
%{_includedir}/%{name}
%{_libdir}/libaom.so
%{_libdir}/pkgconfig/%{name}.pc

%changelog
* Thu Jun 06 2024 yinyongkang <yinyongkang@kylinos.cn> - 3.8.0-2
- fix CVE-2024-5171

* Wed Dec 20 2023 misaka00251 <liuxin@iscas.ac.cn> - 3.8.0-1
- Upgrade package version to 3.8.0

* Fri May 07 2021 weidong <weidong@uniontech.com> - 1.0.0-1
- Initial package.
