clip = static_cast <ClipItem *>(list.at(i));
if (clip->clipProducer() == clipId) {
ItemInfo info = clip->info();
- if (reload && !m_document->renderer()->mltUpdateClip(info, clip->xml(), clip->baseClip()->producer(info.track))) {
+ Mlt::Producer *prod = NULL;
+ if (clip->isAudioOnly()) prod = clip->baseClip()->audioProducer(info.track);
+ else if (clip->isVideoOnly()) prod = clip->baseClip()->videoProducer();
+ else prod = clip->baseClip()->producer(info.track);
+ if (reload && !m_document->renderer()->mltUpdateClip(info, clip->xml(), prod)) {
emit displayMessage(i18n("Cannot update clip (time: %1, track: %2)", info.startPos.frames(m_document->fps()), info.track), ErrorMessage);
}
else clipList.append(clip);