#
# Conditional build:
-%bcond_without gpl # GPL licensed components
-%bcond_without vdpau # build libav without VDPAU support
-%bcond_with system_ffmpeg # system ffmpeg (note: upstream does not accept bugs with system ffmpeg)
+%bcond_without apidocs # API documentation
-%define gstname gst-libav
-%define gst_major_ver 1.0
-%define gst_req_ver 1.12.0
-%define gstpb_req_ver 1.12.0
-%define ffmpeg_ver 3.3.5
+%define gstname gst-libav
+%define gstmver 1.0
+%define gst_ver 1.24.0
+%define gstpb_ver 1.24.0
+%define ffmpeg_ver 4.4
-%include /usr/lib/rpm/macros.gstreamer
Summary: GStreamer Streaming-media framework plug-in using libav
Summary(pl.UTF-8): Wtyczka do środowiska obróbki strumieni GStreamer używająca libav
Name: gstreamer-libav
-Version: 1.14.2
+Version: 1.24.2
Release: 1
-%if %{with gpl}
-License: GPL v2+
-%else
-License: LGPL v2+
-%endif
+License: LGPL v2.1+
Group: Libraries
Source0: https://gstreamer.freedesktop.org/src/gst-libav/%{gstname}-%{version}.tar.xz
-# Source0-md5: da3d4655268bc6766a261065ca737590
-Patch0: link.patch
+# Source0-md5: 1806080f07f86a67a5332b3d834a2e39
URL: https://gstreamer.freedesktop.org/
-BuildRequires: autoconf >= 2.69
-BuildRequires: automake >= 1:1.14
-BuildRequires: glib2-devel >= 1:2.40.0
-BuildRequires: gstreamer-devel >= %{gst_req_ver}
-BuildRequires: gstreamer-plugins-base-devel >= %{gstpb_req_ver}
-BuildRequires: gtk-doc >= 1.12
-BuildRequires: libtool >= 2:2.2.6
-BuildRequires: orc-devel >= 0.4.16
+# libavfilter >= 7.16.100, libavformat >= 58.12.100, libavcodec >= 58.18.100, libavutil >= 56.14.100
+BuildRequires: ffmpeg-devel >= %{ffmpeg_ver}
+BuildRequires: gstreamer-devel >= %{gst_ver}
+BuildRequires: gstreamer-plugins-base-devel >= %{gstpb_ver}
+%{?with_apidocs:BuildRequires: hotdoc >= 0.11.0}
+BuildRequires: meson >= 1.1
+BuildRequires: ninja >= 1.5
BuildRequires: pkgconfig >= 1:0.9.0
BuildRequires: python >= 2.1
-BuildRequires: rpmbuild(macros) >= 1.470
+BuildRequires: rpm-build >= 4.6
+BuildRequires: rpmbuild(macros) >= 1.736
BuildRequires: tar >= 1:1.22
BuildRequires: xz
-%if %{with system_ffmpeg}
-# libavformat,libavcodec,libavutil,libswscale needed
-BuildRequires: ffmpeg-devel >= %{ffmpeg_ver}
-%else
-# libav dependencies
-BuildRequires: SDL-devel
-BuildRequires: bzip2-devel
-BuildRequires: xorg-lib-libX11-devel
-BuildRequires: xz-devel
-BuildRequires: zlib-devel
-%ifarch %{ix86} %{x8664}
-BuildRequires: yasm
-%endif
-BuildRequires: libvdpau-devel
-%if %{with vdpau}
-BuildRequires: xorg-lib-libXvMC-devel
-%endif
-%endif
-Requires: glib2 >= 1:2.40.0
-Requires: gstreamer >= %{gst_req_ver}
-Requires: gstreamer-plugins-base >= %{gstpb_req_ver}
-%if %{with system_ffmpeg}
Requires: ffmpeg-libs >= %{ffmpeg_ver}
-%endif
-Requires: orc >= 0.4.16
-Obsoletes: gstreamer-ffmpeg
-Obsoletes: gstreamer-real
+Requires: gstreamer >= %{gst_ver}
+Requires: gstreamer-plugins-base >= %{gstpb_ver}
+Obsoletes: gstreamer-ffmpeg < 1
+Obsoletes: gstreamer-real < 1
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+%define filterout -flto
+
%description
GStreamer is a streaming-media framework, based on graphs of filters
which operate on media data. Applications using this library can do
Summary: API documentation for GStreamer libav plugin
Summary(pl.UTF-8): Dokumentacja API do wtyczki GStreamera libav
Group: Documentation
-Requires: gtk-doc-common
-%if "%{_rpmversion}" >= "5"
BuildArch: noarch
-%endif
%description apidocs
API documentation for GStreamer libav plugin.
%prep
%setup -q -n %{gstname}-%{version}
-%patch0 -p1
%build
-%{__libtoolize}
-%{__aclocal} -I m4 -I common/m4
-%{__autoconf}
-%{__autoheader}
-%{__automake}
-
-LIBAV_OPTS="%{?with_vdpau:--enable-vdpau}"
-%ifarch x32
-LIBAV_OPTS="$LIBAV_OPTS --disable-asm"
+%meson build \
+ --default-library=shared \
+ %{!?with_apidocs:-Ddoc=disabled}
+
+%ninja_build -C build
+
+%if %{with apidocs}
+cd build/docs
+LC_ALL=C.UTF-8 hotdoc run --conf-file plugin-libav.json
%endif
-%configure \
- CPPFLAGS="%{rpmcppflags}" \
- %{?with_system_ffmpeg:--with-system-libav} \
- --with-libav-extra-configure="$LIBAV_OPTS" \
- %{?with_gpl:--enable-gpl} \
- --disable-silent-rules \
- --disable-static \
- --with-html-dir=%{_gtkdocdir}
-
-# V=1 is for libav (--disable-silent-rules affects only main gst-libav sources)
-%{__make} \
- V=1
%install
rm -rf $RPM_BUILD_ROOT
-%{__make} install \
- DESTDIR=$RPM_BUILD_ROOT
+%ninja_install -C build
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/gstreamer-%{gst_major_ver}/*.la
+%if %{with apidocs}
+install -d $RPM_BUILD_ROOT%{_docdir}/gstreamer-%{gstmver}
+cp -pr build/docs/plugin-libav $RPM_BUILD_ROOT%{_docdir}/gstreamer-%{gstmver}
+%endif
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%doc AUTHORS ChangeLog NEWS README TODO
-%attr(755,root,root) %{_libdir}/gstreamer-%{gst_major_ver}/libgstlibav.so
-# disabled in (upstream) 1.2.0 until someone fixes it
-#%attr(755,root,root) %{_libdir}/gstreamer-%{gst_major_ver}/libgstavscale.so
+%doc AUTHORS ChangeLog NEWS README.md
+%attr(755,root,root) %{_libdir}/gstreamer-%{gstmver}/libgstlibav.so
+%if %{with apidocs}
%files apidocs
%defattr(644,root,root,755)
-%{_gtkdocdir}/gst-libav-plugins-1.0
+%{_docdir}/gstreamer-%{gstmver}/plugin-libav
+%endif