]> git.sesse.net Git - kdenlive/blobdiff - src/docclipbase.cpp
Check for invalid producers / entries when opening document:
[kdenlive] / src / docclipbase.cpp
index 39f79c7e835b2ac2b88cc2dad285d1d5912f01d9..d60435fc67a298834d15b040f3f82e03d5927410 100644 (file)
@@ -38,13 +38,15 @@ DocClipBase::DocClipBase(ClipManager *clipManager, QDomElement xml, const QStrin
 
     KUrl url = KUrl(xml.attribute("resource"));
     if (!m_properties.contains("file_hash") && !url.isEmpty()) getFileHash(url.path());
-    int out = xml.attribute("out").toInt();
-    if (out != 0) {
-        setDuration(GenTime(out, KdenliveSettings::project_fps()));
+
+    if (xml.hasAttribute("duration")) {
+        setDuration(GenTime(xml.attribute("duration").toInt(), KdenliveSettings::project_fps()));
     } else {
-        out = xml.attribute("duration").toInt();
-        if (out != 0) setDuration(GenTime(out, KdenliveSettings::project_fps()));
+        int out = xml.attribute("out").toInt();
+        int in = xml.attribute("in").toInt();
+        setDuration(GenTime(out - in, KdenliveSettings::project_fps()));
     }
+
     if (!m_properties.contains("name")) m_properties.insert("name", url.fileName());
 
     //if (!url.isEmpty() && QFile::exists(url.path()))
@@ -120,7 +122,7 @@ bool DocClipBase::audioThumbCreated() const {
     return m_audioThumbCreated;
 }
 
-const QString DocClipBase::name() const {
+const QString DocClipBase::name() const {
 
     return m_properties.value("name");
 }
@@ -416,7 +418,6 @@ Mlt::Producer *DocClipBase::producer(int track) {
     }*/
     if (track == -1 || (m_clipType != AUDIO && m_clipType != AV)) {
         if (m_baseTrackProducers.count() == 0) return NULL;
-        int i;
         for (int i = 0; i < m_baseTrackProducers.count(); i++) {
             if (m_baseTrackProducers.at(i) != NULL)
                 return m_baseTrackProducers.at(i);