[Pkg-gstreamer-commits] [gst-plugins-base0.10] 03/04: Cherry-pick from upstream to hopefully fix more mp3 to ogg transitions.

Iain Lane laney at moszumanska.debian.org
Thu Sep 18 15:11:18 UTC 2014


This is an automated email from the git hooks/post-receive script.

laney pushed a commit to branch master
in repository gst-plugins-base0.10.

commit e7c565ab56b63fc1ac7fe65859bdd043b939adb2
Author: Iain Lane <laney at debian.org>
Date:   Thu Sep 18 15:50:49 2014 +0100

    Cherry-pick from upstream to hopefully fix more mp3 to ogg transitions.
---
 debian/changelog                                   |  8 +++
 ...r-don-t-discard-timestamps-when-consecuti.patch | 62 ++++++++++++++++++++++
 debian/patches/series                              |  1 +
 3 files changed, 71 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index fdbe035..60bb5c7 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+gst-plugins-base0.10 (0.10.36-2) UNRELEASED; urgency=medium
+
+  * Thanks for the NMUs
+  * 0001-audiodecoder-don-t-discard-timestamps-when-consecuti.patch:
+    Cherry-pick from upstream to hopefully fix more mp3 to ogg transitions.
+
+ -- Iain Lane <laney at debian.org>  Thu, 18 Sep 2014 15:33:30 +0100
+
 gst-plugins-base0.10 (0.10.36-1.3) unstable; urgency=medium
 
   * Non-maintainer upload to fix the previous one.
diff --git a/debian/patches/0001-audiodecoder-don-t-discard-timestamps-when-consecuti.patch b/debian/patches/0001-audiodecoder-don-t-discard-timestamps-when-consecuti.patch
new file mode 100644
index 0000000..ad13345
--- /dev/null
+++ b/debian/patches/0001-audiodecoder-don-t-discard-timestamps-when-consecuti.patch
@@ -0,0 +1,62 @@
+From 38803239c026163589dde04259b00c5fe33ad706 Mon Sep 17 00:00:00 2001
+From: Alessandro Decina <alessandro.d at gmail.com>
+Date: Wed, 4 Apr 2012 20:43:23 +0200
+Subject: [PATCH] audiodecoder: don't discard timestamps when consecutive input
+ buffers have the same ts
+
+Avoid pushing out buffers with the same timestamp only if the out buffers are
+decoded from the same input buffer. Instead keep the timestamps when upstream
+pushes consecutive buffers with the same ts.
+---
+ gst-libs/gst/audio/gstaudiodecoder.c | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/gst-libs/gst/audio/gstaudiodecoder.c b/gst-libs/gst/audio/gstaudiodecoder.c
+index 5dfd278..6bc054d 100644
+--- a/gst-libs/gst/audio/gstaudiodecoder.c
++++ b/gst-libs/gst/audio/gstaudiodecoder.c
+@@ -220,6 +220,7 @@ struct _GstAudioDecoderPrivate
+   GstAdapter *adapter;
+   /* tracking input ts for changes */
+   GstClockTime prev_ts;
++  guint64 prev_distance;
+   /* frames obtained from input */
+   GQueue frames;
+   /* collected output data */
+@@ -445,6 +446,7 @@ gst_audio_decoder_reset (GstAudioDecoder * dec, gboolean full)
+   dec->priv->out_ts = GST_CLOCK_TIME_NONE;
+   dec->priv->out_dur = 0;
+   dec->priv->prev_ts = GST_CLOCK_TIME_NONE;
++  dec->priv->prev_distance = 0;
+   dec->priv->drained = TRUE;
+   dec->priv->base_ts = GST_CLOCK_TIME_NONE;
+   dec->priv->samples = 0;
+@@ -977,6 +979,7 @@ gst_audio_decoder_push_buffers (GstAudioDecoder * dec, gboolean force)
+     if (G_LIKELY (av)) {
+       gint len;
+       GstClockTime ts;
++      guint64 distance;
+ 
+       /* parse if needed */
+       if (klass->parse) {
+@@ -1016,12 +1019,13 @@ gst_audio_decoder_push_buffers (GstAudioDecoder * dec, gboolean force)
+         len = av;
+       }
+       /* track upstream ts, but do not get stuck if nothing new upstream */
+-      ts = gst_adapter_prev_timestamp (priv->adapter, NULL);
+-      if (ts == priv->prev_ts) {
++      ts = gst_adapter_prev_timestamp (priv->adapter, &distance);
++      if (ts != priv->prev_ts || distance <= priv->prev_distance) {
++        priv->prev_ts = ts;
++        priv->prev_distance = distance;
++      } else {
+         GST_LOG_OBJECT (dec, "ts == prev_ts; discarding");
+         ts = GST_CLOCK_TIME_NONE;
+-      } else {
+-        priv->prev_ts = ts;
+       }
+       buffer = gst_adapter_take_buffer (priv->adapter, len);
+       buffer = gst_buffer_make_metadata_writable (buffer);
+-- 
+2.1.0
+
diff --git a/debian/patches/series b/debian/patches/series
index 63135c0..abae8a5 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,4 @@
 10_gnome-vfs-dav-url.patch
 20_fix-speex-sse-gcc-4.9.patch
 98_fix-ogg-flac-transition.patch
+0001-audiodecoder-don-t-discard-timestamps-when-consecuti.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gstreamer/gst-plugins-base0.10.git



More information about the Pkg-gstreamer-commits mailing list