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 - zai...@opensuse.org
+
+- 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 
zai...@opensuse.org -- 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 
zai...@opensuse.org -- 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 <nicola.mur...@gmail.com>
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

Reply via email to