From 58ea39c0be1feaf2734b95e52d8b5f2d4b4fc4b3 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 4fbe0ab..89bab3f 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); -- 2.7.4