From: Jean-Baptiste Mardelle Date: Mon, 27 Jun 2011 11:10:16 +0000 (+0000) Subject: Fix audio producers not correctly handled, resulting in sound cracks: X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=27a051cf521f1f406442dab2dfa5af105dd974d8;hp=059d57d43c93efb5a862ae150425922678810ad7;p=kdenlive Fix audio producers not correctly handled, resulting in sound cracks: http://kdenlive.org/mantis/view.php?id=2196 svn path=/trunk/kdenlive/; revision=5735 --- diff --git a/src/docclipbase.cpp b/src/docclipbase.cpp index 964c8186..9df4daec 100644 --- a/src/docclipbase.cpp +++ b/src/docclipbase.cpp @@ -538,14 +538,17 @@ Mlt::Producer *DocClipBase::audioProducer(int track) int i; for (i = 0; i < m_audioTrackProducers.count(); i++) if (m_audioTrackProducers.at(i) != NULL) break; - if (i < m_audioTrackProducers.count()) { - // Could not find a valid producer for that clip, check in + Mlt::Producer *base; + if (i >= m_audioTrackProducers.count()) { + // Could not find a valid producer for that clip m_producerMutex.unlock(); - return m_audioTrackProducers.at(i); + base = producer(); + if (base == NULL) { + return NULL; + } + m_producerMutex.lock(); } - m_producerMutex.unlock(); - Mlt::Producer *base = producer(); - m_producerMutex.lock(); + else base = m_audioTrackProducers.at(i); m_audioTrackProducers[track] = cloneProducer(base); adjustProducerProperties(m_audioTrackProducers.at(track), QString(getId() + '_' + QString::number(track) + "_audio"), false, true); }