m_slowmotionProducers.insert(url, slowprod);
}
prod = slowprod;
+ if (prod == NULL || !prod->is_valid()) {
+ mlt_service_unlock(service.get_service());
+ return -1;
+ }
}
Mlt::Producer *clip = prod->cut((int) info.cropStart.frames(m_fps), (int)(info.endPos - info.startPos + info.cropStart).frames(m_fps) - 1);
delete original;
return -1;
}
- delete original;
QString serv = clipparent.get("mlt_service");
QString id = clipparent.get("id");
tmp = decodedString(producerid);
slowprod->set("id", tmp);
delete[] tmp;
+ // copy producer props
+ tmp = original->parent().get("force_aspect_ratio");
+ if (tmp != NULL) slowprod->set("force_aspect_ratio", tmp);
+ delete[] tmp;
+ tmp = original->parent().get("threads");
+ if (tmp != NULL) slowprod->set("threads", tmp);
+ delete[] tmp;
+ tmp = original->parent().get("video_index");
+ if (tmp != NULL) slowprod->set("video_index", tmp);
+ delete[] tmp;
m_slowmotionProducers.insert(url, slowprod);
}
Mlt::Producer *clip = trackPlaylist.replace_with_blank(clipIndex);
tmp = decodedString(producerid);
slowprod->set("id", tmp);
delete[] tmp;
+ // copy producer props
+ tmp = original->parent().get("force_aspect_ratio");
+ if (tmp != NULL) slowprod->set("force_aspect_ratio", tmp);
+ delete[] tmp;
+ tmp = original->parent().get("threads");
+ if (tmp != NULL) slowprod->set("threads", tmp);
+ delete[] tmp;
+ tmp = original->parent().get("video_index");
+ if (tmp != NULL) slowprod->set("video_index", tmp);
+ delete[] tmp;
m_slowmotionProducers.insert(url, slowprod);
}
Mlt::Producer *clip = trackPlaylist.replace_with_blank(clipIndex);
mlt_service_unlock(service.get_service());
}
-
+ delete original;
if (clipIndex + 1 == trackPlaylist.count()) mltCheckLength(&tractor);
m_isBlocked = false;
return newLength;