[Bug 680252] [playbin2] Hang during OGG -> FLAC transition

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Dec 3 06:23:30 PST 2012


https://bugzilla.gnome.org/show_bug.cgi?id=680252
  GStreamer | gst-plugins-base | 0.10.36

Edward Hervey <bilboed> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bilboed at gmail.com

--- Comment #14 from Edward Hervey <bilboed at gmail.com> 2012-12-03 14:23:26 UTC ---
It was fixed in 1.0 by this commit

commit c9428c96b1ad3dc3ffd9b3041d316f0d1e95e28a
Author: Edward Hervey <edward.hervey at collabora.co.uk>
Date:   Tue Jul 10 18:32:13 2012 +0200

    baseaudiosink: Resync when ringbuffer resets

    When the ringbuffer gets restarted (like in setcaps), we *will* have
    to resync against the new values.

    Without this we end up blindly assuming the new samples align to the
    old ones.

diff --git a/gst-libs/gst/audio/gstaudiobasesink.c
b/gst-libs/gst/audio/gstaudiobasesink.c
index 3c5bc29..6997a9c 100644
--- a/gst-libs/gst/audio/gstaudiobasesink.c
+++ b/gst-libs/gst/audio/gstaudiobasesink.c
@@ -903,6 +903,12 @@ gst_audio_base_sink_setcaps (GstBaseSink * bsink, GstCaps
* caps)
   if (!gst_audio_ring_buffer_acquire (sink->ringbuffer, spec))
     goto acquire_error;

+  /* We need to resync since the ringbuffer restarted */
+  sink->priv->avg_skew = -1;
+  sink->next_sample = -1;
+  sink->priv->eos_time = -1;
+  sink->priv->discont_time = -1;
+
   if (bsink->pad_mode == GST_PAD_MODE_PUSH) {
     GST_DEBUG_OBJECT (sink, "activate ringbuffer");
     gst_audio_ring_buffer_activate (sink->ringbuffer, TRUE);

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list