scaletempo: Ensure to reinit buffers whenever they were not allocated yet
authorSebastian Dröge <sebastian@centricular.com>
Sun, 11 Dec 2016 11:27:27 +0000 (13:27 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Sun, 11 Dec 2016 11:27:27 +0000 (13:27 +0200)
That is, whenever we go through start/stop we have to ensure that on the
next opportunity the buffers are reallocated again. Otherwise the
buffers might be NULL because the element was reused with the same
configuration as before (i.e. set_caps() wouldn't have reinited the
buffers).

https://bugzilla.gnome.org/show_bug.cgi?id=775898

gst/audiofx/gstscaletempo.c

index 2f14d6b..04f08e7 100644 (file)
@@ -699,6 +699,7 @@ gst_scaletempo_start (GstBaseTransform * trans)
 
   gst_segment_init (&scaletempo->in_segment, GST_FORMAT_UNDEFINED);
   gst_segment_init (&scaletempo->out_segment, GST_FORMAT_UNDEFINED);
+  scaletempo->reinit_buffers = TRUE;
 
   return TRUE;
 }
@@ -718,6 +719,7 @@ gst_scaletempo_stop (GstBaseTransform * trans)
   scaletempo->buf_pre_corr = NULL;
   g_free (scaletempo->table_window);
   scaletempo->table_window = NULL;
+  scaletempo->reinit_buffers = TRUE;
 
   return TRUE;
 }