- else length = info.xml.attribute("out").toInt() - info.xml.attribute("in").toInt();
- producer->set("length", length);
- duration = length;
+ else length = info.xml.attribute("out").toInt() - info.xml.attribute("in").toInt() + 1;
+ // Pass duration if it was forced
+ if (info.xml.hasAttribute("duration")) {
+ duration = info.xml.attribute("duration").toInt();
+ if (length < duration) {
+ length = duration;
+ if (clipOut > 0) clipOut = length - 1;
+ }
+ }
+ if (duration == 0) duration = length;
+ producer->set("length", length);