-%define snap 20100512
-%define snaph 2245
-%define rel 1
+#
+# Conditional build:
+%bcond_with bootstrap # no ffmpeg/gpac support in x264 utility
+%bcond_without asm # disable asm
+%bcond_without lsmash # lsmash for MP4 (preferred over gpac)
+
+%ifnarch %{ix86} %{x8664} aarch64
+%undefine with_asm
+%endif
+
+%define gitref 12426f5f4906e34d483a07da0debb6d56c6f8434
+%define rel 2
+%define snap 20240220
+%define api_ver 164
Summary: H264 encoder library
Summary(pl.UTF-8): Biblioteka kodująca H264
Name: libx264
-Version: 0.1.3
-Release: 1.%{snap}_%{snaph}.%{rel}
+Version: 0.%{api_ver}
+Release: 0.%{snap}.%{rel}
License: GPL v2+
Group: Libraries
-# unofficial, debianized/libtoolized packaging:
-#Source0: http://www.acarlab.com/misc-dnlds/%{name}-%{version}.tar.gz
-# but it's too old, so use snapshots...
-Source0: ftp://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-%{snap}-%{snaph}.tar.bz2
-# Source0-md5: 38c331e76ab11517261522a60da8dd31
+# still no releases, use snapshots
+# previously available at https://download.videolan.org/videolan/x264/snapshots/
+# for further changes see: https://code.videolan.org/videolan/x264/
+Source0: https://code.videolan.org/videolan/x264/-/archive/%{gitref}/x264-%{gitref}.tar.bz2
+# Source0-md5: b46bb3b0521e2d5fdefeed345bd42f94
Patch0: %{name}-alpha.patch
-Patch1: %{name}-syms.patch
+Patch1: %{name}-gpac.patch
+Patch2: x32.patch
URL: http://www.videolan.org/developers/x264.html
-BuildRequires: gettext-devel
-BuildRequires: pkgconfig
%ifarch %{ix86} %{x8664}
-BuildRequires: yasm >= 0.6.0
+%{?with_asm:BuildRequires: nasm >= 2.13}
+%endif
+BuildRequires: pkgconfig
+BuildRequires: rpmbuild(macros) >= 1.673
+%if %{without bootstrap}
+# which version exactly???
+# for full x264 CLI utility functionality it wants:
+# libswscale >= 0.9.0 (in pkgconfig file)
+# libav{format,codec,util} from ffmpeg >= r21854
+BuildRequires: ffmpeg-devel >= 0.7.1
+BuildRequires: ffms2-devel >= 2.21
+# gpac >= 2007-06-21
+%{!?with_lsmash:BuildRequires: gpac-devel >= 0.8.0}
+%{?with_lsmash:BuildRequires: l-smash-devel >= 1.5}
%endif
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description static -l pl.UTF-8
Statyczna biblioteka x264.
+%package -n x264
+Summary: x264 CLI decoder
+Summary(pl.UTF-8): Dekoder x264 działający z linii poleceń
+Group: Applications/Multimedia
+Requires: %{name} = %{version}-%{release}
+%if %{without bootstrap}
+Requires: ffms2 >= 2.21
+%if %{with lsmash}
+Requires: l-smash >= 1.5
+%else
+Requires: gpac >= 0.8.0
+%endif
+%endif
+
+%description -n x264
+x264 CLI decoder.
+
+%description -n x264 -l pl.UTF-8
+Dekoder x264 działający z linii poleceń.
+
%prep
-%setup -q -n x264-snapshot-%{snap}-%{snaph}
+%setup -q -n x264-%{gitref}
%patch0 -p1
%patch1 -p1
-sed -i 's:-O4::g' configure
+%patch2 -p1
%build
CC="%{__cc}" \
./configure \
+ --host=%{_target_platform} \
--prefix=%{_prefix} \
--exec-prefix=%{_prefix} \
--bindir=%{_bindir} \
--includedir=%{_includedir} \
--libdir=%{_libdir} \
--extra-cflags="%{rpmcflags}" \
+ --bashcompletionsdir="%{bash_compdir}" \
+ %{!?with_asm:--disable-asm} \
--enable-pic \
- --enable-shared
+ --enable-shared \
+ --enable-static
%{__make}
%files
%defattr(644,root,root,755)
%doc AUTHORS
-%attr(755,root,root) %{_bindir}/x264
-%attr(755,root,root) %{_libdir}/libx264.so.[0-9][0-9]
+%attr(755,root,root) %{_libdir}/libx264.so.%{api_ver}
%files devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libx264.so
%{_includedir}/x264.h
+%{_includedir}/x264_config.h
%{_pkgconfigdir}/x264.pc
%files static
%defattr(644,root,root,755)
%{_libdir}/libx264.a
+
+%files -n x264
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/x264
+%{bash_compdir}/x264