Dominique Leuenberger 2020-10-27 17:58:00 +00:00 committed by Git OBS Bridge
commit 090042ffc6
10 changed files with 157 additions and 2449 deletions

16
_service Normal file
View File

@ -0,0 +1,16 @@
<services>
<service name="tar_scm" mode="disabled">
<param name="url">https://gitlab.freedesktop.org/gstreamer/gst-plugins-base.git</param>
<param name="filename">gst-plugins-base</param>
<!--<param name="versionformat">@PARENT_TAG@+git%cd.%h</param>-->
<param name="versionformat">@PARENT_TAG@</param>
<param name="revision">1.18.0</param>
<param name="scm">git</param>
</service>
<service name="recompress" mode="disabled">
<param name="compression">xz</param>
<param name="file">*.tar</param>
</service>
<service name="set_version" mode="disabled" />
</services>

View File

@ -0,0 +1,13 @@
Index: check/meson.build
===================================================================
--- a/tests/check/meson.build
+++ b/tests/check/meson.build
@@ -128,7 +128,7 @@ if valgrind_dep.found()
test_defines += ['-DHAVE_VALGRIND']
endif
-test_deps = [gst_dep, gst_base_dep, gst_net_dep, gst_check_dep, audio_dep,
+test_deps = [gst_dep, gst_base_dep, gst_net_dep, gst_check_dep, wayland_client_dep, audio_dep,
video_dep, pbutils_dep, rtp_dep, rtsp_dep, tag_dep, allocators_dep, app_dep,
fft_dep, riff_dep, sdp_dep, gio_dep, valgrind_dep] + glib_deps

View File

@ -1,25 +0,0 @@
From c61767dc2f7f99e3de93aee09695a6a06202f619 Mon Sep 17 00:00:00 2001
From: Jonas Holmberg <jonashg@axis.com>
Date: Fri, 20 Dec 2019 13:35:53 +0100
Subject: [PATCH] audioencoder: fix segment event leak
Segment event was leaked if format != _TIME.
---
gst-libs/gst/audio/gstaudioencoder.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/gst-libs/gst/audio/gstaudioencoder.c b/gst-libs/gst/audio/gstaudioencoder.c
index c2f0382ae..031a40b7f 100644
--- a/gst-libs/gst/audio/gstaudioencoder.c
+++ b/gst-libs/gst/audio/gstaudioencoder.c
@@ -1551,6 +1551,7 @@ gst_audio_encoder_sink_event_default (GstAudioEncoder * enc, GstEvent * event)
GST_DEBUG_OBJECT (enc, "received SEGMENT %" GST_SEGMENT_FORMAT, &seg);
GST_DEBUG_OBJECT (enc, "unsupported format; ignoring");
res = TRUE;
+ gst_event_unref (event);
break;
}
--
2.24.1

File diff suppressed because it is too large Load Diff

View File

@ -1,100 +0,0 @@
From 0375d3a393385f8098928c06520ce03f456f1b28 Mon Sep 17 00:00:00 2001
From: Thibault Saunier <tsaunier@igalia.com>
Date: Tue, 3 Sep 2019 16:03:49 -0400
Subject: [PATCH] playbin: Handle error message with redirection indication
There are in the wild (mp4) streams that basically contain no tracks
but do have a redirect info[0], in which case, qtdemux won't be able
to expose any pad (there are no tracks) so can't post anything but
an error on the bus, as:
- it can't send EOS downstream, it has no pad,
- posting an EOS message will be useless as PAUSED state can't be
reached and there is no sink in the pipeline meaning GstBin will
simply ignore it
In that case, currently the application could try to handle that but it
is pretty complex as it will get the REDIRECT message on the bus at
which point it could set the URL but playbin will ignore it, as
it will only be for the next EOS, it thus need to set the pipeline to
NULL (READY won't do as it is already in READY at that point). And it
needs to figure out the following ERROR message on the bus needs to be
ignored, which is not really simple.
The approach here is to allow element to add details to the ERROR
message with a `redirect-location` field which elements like playbin handle
and use right away.
We could also use the element 'redirect' message in playbin, but the
issue with that approach is that the element will still emit the ERROR
message on the bus, leading to wrong behaviour. That can't be avoided
since in the case the app/parent pipeline is not handling the redirect
instruction, the ERROR message is necessary (and there is no way to
detect that the message has been "handled" from the element emitting the
redirect).
[0]: http://movietrailers.apple.com/movies/paramount/terminator-dark-fate/terminator-dark-fate-trailer-2_480p.mov
---
gst/playback/gstplaybin2.c | 40 ++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
diff --git a/gst/playback/gstplaybin2.c b/gst/playback/gstplaybin2.c
index 1f3d9faf0..cec4b36b7 100644
--- a/gst/playback/gstplaybin2.c
+++ b/gst/playback/gstplaybin2.c
@@ -170,6 +170,10 @@
* type. The new location may be a relative or an absolute URI. Examples
* for such redirects can be found in many quicktime movie trailers.
*
+ * NOTE: playbin will internally handle the redirect messages in the case
+ * that the redirecting stream doesn't contain any tracks and thus
+ * needs to report an error message on the bus.
+ *
* ## Examples
* |[
* gst-launch-1.0 -v playbin uri=file:///path/to/somefile.mp4
@@ -3027,6 +3031,42 @@ gst_play_bin_handle_message (GstBin * bin, GstMessage * msg)
no_more_pads_cb (NULL, group);
}
}
+ } else {
+ const GstStructure *details = NULL;
+
+ gst_message_parse_error_details (msg, &details);
+ if (details && gst_structure_has_field (details, "redirect-location")) {
+ gchar *uri = NULL;
+ const gchar *location =
+ gst_structure_get_string ((GstStructure *) details,
+ "redirect-location");
+
+ if (gst_uri_is_valid (location)) {
+ uri = g_strdup (location);
+ } else {
+ uri = gst_uri_join_strings (group->uri, location);
+ }
+
+ if (g_strcmp0 (uri, group->uri)) {
+ GST_PLAY_BIN_LOCK (playbin);
+ if (playbin->next_group && playbin->next_group->valid) {
+ GST_DEBUG_OBJECT (playbin,
+ "User already setup next uri %s, using it",
+ playbin->next_group->uri);
+ } else {
+ GST_DEBUG_OBJECT (playbin,
+ "Using newly configured redirect URI: %s", uri);
+ gst_play_bin_set_uri (playbin, uri);
+ }
+ GST_PLAY_BIN_UNLOCK (playbin);
+
+ setup_next_source (playbin, GST_STATE_PAUSED);
+ gst_message_unref (msg);
+ msg = NULL;
+ }
+
+ g_free (uri);
+ }
}
}
--
2.24.1

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b13e73e2fe74a4166552f9577c3dcb24bed077021b9c7fa600d910ec6987816a
size 3939868

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:762abdd1a950809a1cea62fff7f86b5f7d6bd5f6841e3e585c700b823cdb7897
size 3151060

View File

@ -17,4 +17,4 @@ Index: gst-plugins-base-1.16.2/pkgconfig/gstreamer-gl.pc.in
+Requires: gstreamer-video-@GST_API_VERSION@ gstreamer-base-@GST_API_VERSION@ gstreamer-@GST_API_VERSION@ wayland-client
Libs: -L${libdir} -lgstgl-@GST_API_VERSION@
Cflags: -I${includedir} -I${libdir}/gstreamer-@GST_API_VERSION@/include @GL_CFLAGS@
Cflags: -I${includedir} -I${libdir}/gstreamer-@GST_API_VERSION@/include

View File

@ -1,3 +1,60 @@
-------------------------------------------------------------------
Wed Sep 2 12:21:48 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
- Update to 1.18.0:
+ Highlights:
- GstTranscoder: new high level API for applications to
transcode media files from one format to another
- High Dynamic Range (HDR) video information representation
and signalling enhancements
- Instant playback rate change support
- Active Format Description (AFD) and Bar Data support
- RTSP server and client implementations gained ONVIF trick
modes support
- Hardware-accelerated video decoding on Windows via
DXVA2/Direct3D11
- Microsoft Media Foundation plugin for video capture and
hardware-accelerated video encoding on Windows
- qmlgloverlay: New overlay element that renders a QtQuick
scene over the top of an input video stream
- imagesequencesrc: New element to easily create a video
stream from a sequence of jpeg or png images
- dashsink: New sink to produce DASH content
- dvbsubenc: New DVB Subtitle encoder element
- MPEG-TS muxing now also supports TV broadcast compliant
muxing with constant bitrate muxing and SCTE-35 support
- rtmp2: New RTMP client source and sink element from-scratch
implementation
- svthevcenc: New SVT-HEVC-based H.265 video encoder
- vaapioverlay: New compositor element using VA-API
- rtpmanager gained support for Google's Transport-Wide
Congestion Control (twcc) RTP extension
- splitmuxsink and splitmuxsrc gained support for auxiliary
video streams
- webrtcbin now contains some initial support for
renegotiation involving stream addition and removal
- RTP support was enhanced with new RTP source and sink
elements to easily set up RTP streaming via rtp:// URIs
- avtp: New Audio Video Transport Protocol (AVTP) plugin for
Time-Sensitive Applications
- Support for the Video Services Forum's Reliable Internet
Stream Transport (RIST) TR-06-1 Simple Profile
- Universal Windows Platform (UWP) support
- rpicamsrc: New element for capturing from the Raspberry Pi
camera
- RTSP Server TCP interleaved backpressure handling
improvements as well as support for Scale/Speed headers
- GStreamer Editing Services gained support for nested
timelines, per-clip speed rate control and the OpenTimelineIO
format.
- Autotools build system has been removed in favour of Meson
- Drop patches already included in upstream:
* gst-base-audioencoder-fix-leak.patch
* gst-base-fft-update-kiss-version.patch
* gst-base-playbin-handle-error.patch
- Add patch to add wayland dependencies to tests to fix build:
* add_wayland_dep_to_tests.patch
-------------------------------------------------------------------
Wed Aug 26 20:12:33 UTC 2020 - Dominique Leuenberger <dimstar@opensuse.org>

View File

@ -18,17 +18,9 @@
%define _name gst-plugins-base
%define gst_branch 1.0
%define gstreamer_plugins_base_req %(xzgrep --text "^GST[_A-Z]*_REQ.*=" %{SOURCE0} | sort -u | sed 's/GST_REQ=/gstreamer >= /')
# Enable for tumbleweed only for now
%if 0%{?suse_version} >= 1550
%define use_meson 1
%else
%define use_meson 0
%endif
%define gstreamer_req_version %(echo %{version} | sed -e "s/+.*//")
Name: gstreamer-plugins-base
Version: 1.16.2
Version: 1.18.0
Release: 0
Summary: GStreamer Streaming-Media Framework Plug-Ins
License: LGPL-2.1-or-later AND GPL-2.0-or-later
@ -37,15 +29,9 @@ URL: https://gstreamer.freedesktop.org/
Source0: https://gstreamer.freedesktop.org/src/gst-plugins-base/%{_name}-%{version}.tar.xz
Source1: gstreamer-plugins-base.appdata.xml
Source2: baselibs.conf
# PATCH-FIX-UPSTREAM gst-base-playbin-handle-error.patch -- playbin: Handle error message with redirection indication
Patch0: gst-base-playbin-handle-error.patch
# PATCH-FIX-UPSTREAM gst-base-audioencoder-fix-leak.patch -- audioencoder: fix segment event leak
Patch1: gst-base-audioencoder-fix-leak.patch
# PATCH-FIX-UPSTREAM gst-base-fft-update-kiss-version.patch -- fft: Update our kiss fft version
Patch2: gst-base-fft-update-kiss-version.patch
# PATCH-FIX-OPENSUSE gstreamer-plugins-base-gl-deps.patch dimstar@opensuse.org -- Local workaround for https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/735
Patch3: gstreamer-plugins-base-gl-deps.patch
Patch4: add_wayland_dep_to_tests.patch
BuildRequires: Mesa-libGLESv3-devel
BuildRequires: cdparanoia-devel
BuildRequires: fdupes
@ -53,15 +39,15 @@ BuildRequires: gcc-c++
BuildRequires: glib2-devel >= 2.40.0
BuildRequires: gobject-introspection-devel >= 1.31.1
BuildRequires: gtk-doc >= 1.12
BuildRequires: hotdoc
BuildRequires: libICE-devel
BuildRequires: libSM-devel
BuildRequires: libXext-devel
BuildRequires: libXv-devel
BuildRequires: libjpeg-devel
BuildRequires: libpng-devel
%if %{use_meson}
BuildRequires: meson >= 0.47.0
%endif
BuildRequires: orc >= 0.4.24
BuildRequires: pkgconfig
BuildRequires: python3-base
BuildRequires: python3-xml
@ -80,7 +66,7 @@ BuildRequires: pkgconfig(glesv1_cm)
BuildRequires: pkgconfig(glesv2)
BuildRequires: pkgconfig(glib-2.0) >= 2.40
BuildRequires: pkgconfig(gmodule-no-export-2.0)
BuildRequires: pkgconfig(gstreamer-1.0) >= %{version}
BuildRequires: pkgconfig(gstreamer-1.0) >= %{gstreamer_req_version}
BuildRequires: pkgconfig(gudev-1.0)
BuildRequires: pkgconfig(iso-codes)
BuildRequires: pkgconfig(libdrm) >= 2.4.55
@ -96,6 +82,7 @@ BuildRequires: pkgconfig(vorbis) >= 1.0
BuildRequires: pkgconfig(vorbisenc) >= 1.0
BuildRequires: pkgconfig(wayland-client) >= 1.0
BuildRequires: pkgconfig(wayland-cursor) >= 1.0
BuildRequires: pkgconfig(wayland-egl) >= 1.0
BuildRequires: pkgconfig(wayland-protocols)
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(x11-xcb)
@ -105,15 +92,13 @@ BuildRequires: pkgconfig(zlib)
%if 0%{?suse_version} >= 1500
BuildRequires: pkgconfig(graphene-1.0)
%endif
BuildRequires: orc >= 0.4.24
BuildRequires: pkgconfig(wayland-egl) >= 1.0
Requires: %{gstreamer_plugins_base_req}
Requires: gstreamer >= %{gstreamer_req_version}
Supplements: gstreamer
Conflicts: gstreamer-plugins-bad < 1.18.0
# Generic name, never used in SuSE:
Provides: gst-plugins-base = %{version}
Obsoletes: libgstbadvideo-1_0-0
Obsoletes: typelib-1_0-GstFft-1_0 < 1.14.0
Conflicts: gstreamer-plugins-bad < 1.16.0
%description
GStreamer is a streaming media framework based on graphs of filters
@ -252,6 +237,48 @@ processing capabilities can be added simply by installing new plug-ins.
This package provides the GObject Introspection bindings for GStreamer
plug-ins.
%package -n typelib-1_0-GstGLEGL-1_0
Summary: GStreamer Streaming-Media Framework Plug-Ins -- Introspection bindings
Group: System/Libraries
%description -n typelib-1_0-GstGLEGL-1_0
GStreamer is a streaming media framework based on graphs of filters
that operate on media data. Applications using this library can do
anything media-related, from real-time sound processing to playing
videos. Its plug-in-based architecture means that new data types or
processing capabilities can be added simply by installing new plug-ins.
This package provides the GObject Introspection bindings for GStreamer
plug-ins.
%package -n typelib-1_0-GstGLWayland-1_0
Summary: GStreamer Streaming-Media Framework Plug-Ins -- Introspection bindings
Group: System/Libraries
%description -n typelib-1_0-GstGLWayland-1_0
GStreamer is a streaming media framework based on graphs of filters
that operate on media data. Applications using this library can do
anything media-related, from real-time sound processing to playing
videos. Its plug-in-based architecture means that new data types or
processing capabilities can be added simply by installing new plug-ins.
This package provides the GObject Introspection bindings for GStreamer
plug-ins.
%package -n typelib-1_0-GstGLX11-1_0
Summary: GStreamer Streaming-Media Framework Plug-Ins -- Introspection bindings
Group: System/Libraries
%description -n typelib-1_0-GstGLX11-1_0
GStreamer is a streaming media framework based on graphs of filters
that operate on media data. Applications using this library can do
anything media-related, from real-time sound processing to playing
videos. Its plug-in-based architecture means that new data types or
processing capabilities can be added simply by installing new plug-ins.
This package provides the GObject Introspection bindings for GStreamer
plug-ins.
%package -n libgstpbutils-1_0-0
Summary: GStreamer Streaming-Media Framework Plug-Ins
# We want to have base modules installed:
@ -446,6 +473,9 @@ Requires: typelib-1_0-GstAllocators-1_0 = %{version}
Requires: typelib-1_0-GstApp-1_0 = %{version}
Requires: typelib-1_0-GstAudio-1_0 = %{version}
Requires: typelib-1_0-GstGL-1_0 = %{version}
Requires: typelib-1_0-GstGLEGL-1_0 = %{version}
Requires: typelib-1_0-GstGLWayland-1_0 = %{version}
Requires: typelib-1_0-GstGLX11-1_0 = %{version}
Requires: typelib-1_0-GstPbutils-1_0 = %{version}
Requires: typelib-1_0-GstRtp-1_0 = %{version}
Requires: typelib-1_0-GstRtsp-1_0 = %{version}
@ -479,37 +509,20 @@ translation-update-upstream po gst-plugins-base-%{gst_branch}
%build
export PYTHON=%{_bindir}/python3
%if %{use_meson}
# TODO: tremor needs libvorbisidec
%{meson} \
%meson \
-Dpackage-name='openSUSE GStreamer-plugins-base package'\
-Dpackage-origin='http://download.opensuse.org'\
-Dgtk_doc=enabled \
-Ddoc=enabled \
-Dintrospection=enabled \
-Dorc=enabled \
-Dexamples=disabled \
-Dtremor=disabled \
%{nil}
%{meson_build}
%else
%configure\
--with-package-name='openSUSE GStreamer-plugins-base package' \
--with-package-origin='http://download.opensuse.org' \
--disable-static \
--enable-gtk-doc \
--enable-introspection \
--disable-examples \
--enable-orc \
%{nil}
%make_build
%endif
%meson_build
%install
%if %{use_meson}
%{meson_install}
%else
%make_install
%endif
%meson_install
if [ -f %{buildroot}%{_datadir}/appdata/gstreamer-plugins-base.appdata.xml ]; then
echo "Please remove the added gstreamer-plugins-base.appdata.xml file from the sources - the tarball installs it"
false
@ -524,37 +537,26 @@ find %{buildroot} -type f -name "*.la" -delete -print
%post -n libgstallocators-1_0-0 -p /sbin/ldconfig
%postun -n libgstallocators-1_0-0 -p /sbin/ldconfig
%post -n libgstapp-1_0-0 -p /sbin/ldconfig
%postun -n libgstapp-1_0-0 -p /sbin/ldconfig
%post -n libgstaudio-1_0-0 -p /sbin/ldconfig
%postun -n libgstaudio-1_0-0 -p /sbin/ldconfig
%post -n libgstfft-1_0-0 -p /sbin/ldconfig
%postun -n libgstfft-1_0-0 -p /sbin/ldconfig
%post -n libgstgl-1_0-0 -p /sbin/ldconfig
%postun -n libgstgl-1_0-0 -p /sbin/ldconfig
%post -n libgstpbutils-1_0-0 -p /sbin/ldconfig
%postun -n libgstpbutils-1_0-0 -p /sbin/ldconfig
%post -n libgstriff-1_0-0 -p /sbin/ldconfig
%postun -n libgstriff-1_0-0 -p /sbin/ldconfig
%post -n libgstrtp-1_0-0 -p /sbin/ldconfig
%postun -n libgstrtp-1_0-0 -p /sbin/ldconfig
%post -n libgstrtsp-1_0-0 -p /sbin/ldconfig
%postun -n libgstrtsp-1_0-0 -p /sbin/ldconfig
%post -n libgstsdp-1_0-0 -p /sbin/ldconfig
%postun -n libgstsdp-1_0-0 -p /sbin/ldconfig
%post -n libgsttag-1_0-0 -p /sbin/ldconfig
%postun -n libgsttag-1_0-0 -p /sbin/ldconfig
%post -n libgstvideo-1_0-0 -p /sbin/ldconfig
%postun -n libgstvideo-1_0-0 -p /sbin/ldconfig
@ -629,6 +631,15 @@ find %{buildroot} -type f -name "*.la" -delete -print
%files -n typelib-1_0-GstGL-1_0
%{_libdir}/girepository-1.0/GstGL-*.typelib
%files -n typelib-1_0-GstGLEGL-1_0
%{_libdir}/girepository-1.0/GstGLEGL-1.0.typelib
%files -n typelib-1_0-GstGLWayland-1_0
%{_libdir}/girepository-1.0/GstGLWayland-1.0.typelib
%files -n typelib-1_0-GstGLX11-1_0
%{_libdir}/girepository-1.0/GstGLX11-1.0.typelib
%files -n libgstpbutils-1_0-0
%{_libdir}/libgstpbutils*.so.*
@ -683,12 +694,6 @@ find %{buildroot} -type f -name "*.la" -delete -print
%files doc
%doc AUTHORS NEWS README RELEASE REQUIREMENTS
%if %{use_meson}
%{_datadir}/gtk-doc/html/gst-plugins-base-libs
%else
%{_datadir}/gtk-doc/html/gst-plugins-base-libs-%{gst_branch}
%{_datadir}/gtk-doc/html/gst-plugins-base-plugins-%{gst_branch}
%endif
%files lang -f %{_name}-%{gst_branch}.lang