audioresample: push half a history length, instead of a full history length, at end...
authorLeo Singer <leo.singer@ligo.org>
Fri, 17 Dec 2010 04:38:31 +0000 (20:38 -0800)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Fri, 17 Dec 2010 18:34:42 +0000 (19:34 +0100)
gst/audioresample/gstaudioresample.c

index 8d0bddf..a9222a6 100644 (file)
@@ -954,8 +954,10 @@ gst_audio_resample_event (GstBaseTransform * base, GstEvent * event)
       resample->need_discont = TRUE;
       break;
     case GST_EVENT_NEWSEGMENT:
-      if (resample->state)
-        gst_audio_resample_push_drain (resample, resample->num_nongap_samples);
+      if (resample->state) {
+        guint latency = resample->funcs->get_input_latency (resample->state);
+        gst_audio_resample_push_drain (resample, latency);
+      }
       gst_audio_resample_reset_state (resample);
       if (resample->state)
         resample->funcs->skip_zeros (resample->state);
@@ -969,8 +971,10 @@ gst_audio_resample_event (GstBaseTransform * base, GstEvent * event)
       resample->need_discont = TRUE;
       break;
     case GST_EVENT_EOS:
-      if (resample->state)
-        gst_audio_resample_push_drain (resample, resample->num_nongap_samples);
+      if (resample->state) {
+        guint latency = resample->funcs->get_input_latency (resample->state);
+        gst_audio_resample_push_drain (resample, latency);
+      }
       gst_audio_resample_reset_state (resample);
       break;
     default: