Hello community,
here is the log from the commit of package gstreamer-plugins-libav for
openSUSE:Factory checked in at 2017-11-12 18:10:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gstreamer-plugins-libav (Old)
and /work/SRC/openSUSE:Factory/.gstreamer-plugins-libav.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gstreamer-plugins-libav"
Sun Nov 12 18:10:23 2017 rev:4 rq:541039 version:1.12.3
Changes:
--------
---
/work/SRC/openSUSE:Factory/gstreamer-plugins-libav/gstreamer-plugins-libav.changes
2017-11-11 14:23:38.362331104 +0100
+++
/work/SRC/openSUSE:Factory/.gstreamer-plugins-libav.new/gstreamer-plugins-libav.changes
2017-11-12 18:10:23.435239263 +0100
@@ -1,0 +2,10 @@
+Fri Nov 10 20:35:21 UTC 2017 - [email protected]
+
+- Add gstreamer-plugins-libav-avdemux-reset.patch: avdemux: reset
+ to 0 negative pts for us pts are unsigned so reset to 0 negative
+ pts returned from libav. This is better than outputs completly
+ wrong timestamps (bgo#787795).
+- Split out doc sub-package.
+- Cleanup with spec-cleaner.
+
+-------------------------------------------------------------------
New:
----
gstreamer-plugins-libav-avdemux-reset.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gstreamer-plugins-libav.spec ++++++
--- /var/tmp/diff_new_pack.UYMjRg/_old 2017-11-12 18:10:24.671194301 +0100
+++ /var/tmp/diff_new_pack.UYMjRg/_new 2017-11-12 18:10:24.671194301 +0100
@@ -17,7 +17,6 @@
%define gst_branch 1.0
-
Name: gstreamer-plugins-libav
Version: 1.12.3
Release: 0
@@ -29,6 +28,9 @@
Source1000: baselibs.conf
# PATCH-FIX-UPSTREAM gst-libav-ffmpeg-3.4-hackfix.patch bgo#789193
[email protected] -- Workaround api change in ffmpeg 3.4 and newer
Patch0: gst-libav-ffmpeg-3.4-hackfix.patch
+# PATCH-FIX-UPSTREAM gstreamer-plugins-libav-avdemux-reset.patch bgo#787795
[email protected] -- avdemux: reset to 0 negative pts
+Patch1: gstreamer-plugins-libav-avdemux-reset.patch
+BuildRequires: pkgconfig
BuildRequires: yasm
BuildRequires: pkgconfig(bzip2)
BuildRequires: pkgconfig(glib-2.0)
@@ -45,9 +47,8 @@
BuildRequires: pkgconfig(orc-0.4) >= 0.4.16
BuildRequires: pkgconfig(zlib)
Requires: gstreamer >= %{version}
-Supplements: packageand(%{name}:gstreamer)
Enhances: gstreamer
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
+Supplements: packageand(%{name}:gstreamer)
%description
GStreamer is a streaming media framework, based on graphs of filters which
@@ -60,16 +61,33 @@
This plugin contains the FFmpeg codecs, containing codecs for most popular
multimedia formats.
+%package doc
+Summary: GStreamer Streaming-Media Framework Plug-Ins
+Group: Development/Libraries/C and C++
+Requires: %{name} = %{version}
+
+%description doc
+GStreamer is a streaming media framework, based on graphs of filters which
+operate on media data. Applications using this library can do anything
+from real-time sound processing to playing videos, and just about anything
+else media-related. Its plugin-based architecture means that new data
+types or processing capabilities can be added simply by installing new
+plug-ins.
+
+This plugin contains the documentation
+
%prep
%setup -q -n gst-libav-%{version}
%patch0 -p1
+%patch1 -p1
# Ensure we cannot use the embedded libav
rm -rf gst-libs/ext/libav
%build
%configure \
--with-system-libav \
- --enable-gpl
+ --enable-gpl \
+ %{nil}
make %{?_smp_mflags}
%install
@@ -77,9 +95,11 @@
find %{buildroot}%{_libdir} -name '*.la' -delete -print
%files
-%defattr(0644, root, root, 0755)
-%doc AUTHORS COPYING NEWS README TODO
-%doc %{_datadir}/gtk-doc/html/
+%doc COPYING
%{_libdir}/gstreamer-%{gst_branch}/libgstlibav.so
+%files doc
+%doc AUTHORS NEWS README TODO
+%doc %{_datadir}/gtk-doc/html/
+
%changelog
++++++ gstreamer-plugins-libav-avdemux-reset.patch ++++++
>From e87c20d325eaf9e6813c46654292d68f8b9bc521 Mon Sep 17 00:00:00 2001
From: Nicola Murino <[email protected]>
Date: Sat, 23 Sep 2017 17:14:03 +0200
Subject: avdemux: reset to 0 negative pts
for us pts are unsigned so reset to 0 negative pts returned from libav.
This is better than outputs completly wrong timestamps
https://bugzilla.gnome.org/show_bug.cgi?id=787795
diff --git a/ext/libav/gstavdemux.c b/ext/libav/gstavdemux.c
index c119798..3728705 100644
--- a/ext/libav/gstavdemux.c
+++ b/ext/libav/gstavdemux.c
@@ -1394,6 +1394,7 @@ gst_ffmpegdemux_loop (GstFFMpegDemux * demux)
gint outsize;
gboolean rawvideo;
GstFlowReturn stream_last_flow;
+ gint64 pts;
/* open file if we didn't so already */
if (!demux->opened)
@@ -1421,7 +1422,21 @@ gst_ffmpegdemux_loop (GstFFMpegDemux * demux)
/* do timestamps, we do this first so that we can know when we
* stepped over the segment stop position. */
- timestamp = gst_ffmpeg_time_ff_to_gst (pkt.pts, avstream->time_base);
+ pts = pkt.pts;
+ if (G_UNLIKELY (pts < 0)) {
+ /* some streams have pts such this:
+ * 0
+ * -2
+ * -1
+ * 1
+ *
+ * we reset pts to 0 since for us timestamp are unsigned
+ */
+ GST_WARNING_OBJECT (demux,
+ "negative pts detected: %" G_GINT64_FORMAT " resetting to 0", pts);
+ pts = 0;
+ }
+ timestamp = gst_ffmpeg_time_ff_to_gst (pts, avstream->time_base);
if (GST_CLOCK_TIME_IS_VALID (timestamp)) {
stream->last_ts = timestamp;
}
--
cgit v0.10.2