From 52f736c233d0c0c302d14512dd4fc665329f66cc Mon Sep 17 00:00:00 2001 From: Doug Nazar Date: Fri, 9 Aug 2019 02:41:51 -0400 Subject: [PATCH] pitch: Fix race between putSamples() and setting soundtouch parameters The various soundtouch set*() functions may cause buffer (re)allocations which interferes with inputting the audio data. --- ext/soundtouch/gstpitch.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ext/soundtouch/gstpitch.cc b/ext/soundtouch/gstpitch.cc index 4fbe0ab28c..89bab3f07c 100644 --- a/ext/soundtouch/gstpitch.cc +++ b/ext/soundtouch/gstpitch.cc @@ -876,7 +876,9 @@ gst_pitch_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer) } gst_buffer_map (buffer, &info, GST_MAP_READ); + GST_OBJECT_LOCK (pitch); priv->st->putSamples ((soundtouch::SAMPLETYPE *) info.data, info.size / pitch->info.bpf); + GST_OBJECT_UNLOCK (pitch); gst_buffer_unmap (buffer, &info); gst_buffer_unref (buffer);