]> git.sesse.net Git - kdenlive/blobdiff - src/renderer.cpp
- Fix split audio with locked audio tracks
[kdenlive] / src / renderer.cpp
index 69bec29bdab0058797a9a104d65213b57ca1365f..2a78c8e6cc88bb8f18ebbb696c42125da2d68503 100644 (file)
@@ -137,12 +137,10 @@ void Render::closeMlt()
                 resource = mlt_properties_get(properties, "mlt_service");
             }
 
-            int trackNb = tractor.count();
-            while (trackNb > 0) {
-                Mlt::Producer trackProducer(tractor.track(trackNb - 1));
+            for (int trackNb = tractor.count() - 1; trackNb >= 0; --trackNb) {
+                Mlt::Producer trackProducer(tractor.track(trackNb));
                 Mlt::Playlist trackPlaylist((mlt_playlist) trackProducer.get_service());
                 if (trackPlaylist.type() == playlist_type) trackPlaylist.clear();
-                trackNb--;
             }
         }
         mlt_service_unlock(service.get_service());
@@ -282,12 +280,10 @@ int Render::resetProfile(const QString profileName)
         Mlt::Service service(m_mltProducer->get_service());
         if (service.type() == tractor_type) {
             Mlt::Tractor tractor(service);
-            int trackNb = tractor.count();
-            while (trackNb > 0) {
-                Mlt::Producer trackProducer(tractor.track(trackNb - 1));
+            for (int trackNb = tractor.count() -1; trackNb >= 0; --trackNb) {
+                Mlt::Producer trackProducer(tractor.track(trackNb));
                 Mlt::Playlist trackPlaylist((mlt_playlist) trackProducer.get_service());
                 trackPlaylist.clear();
-                trackNb--;
             }
         }
 
@@ -542,8 +538,7 @@ void Render::slotSplitView(bool doit)
     if (service.type() != tractor_type || tractor.count() < 2) return;
     Mlt::Field *field = tractor.field();
     if (doit) {
-        int screen = 0;
-        for (int i = 1; i < tractor.count() && screen < 4; i++) {
+        for (int i = 1, screen = 0; i < tractor.count() && screen < 4; i++) {
             Mlt::Producer trackProducer(tractor.track(i));
             kDebug() << "// TRACK: " << i << ", HIDE: " << trackProducer.get("hide");
             if (QString(trackProducer.get("hide")).toInt() != 1) {
@@ -977,12 +972,10 @@ int Render::setSceneList(QString playlist, int position)
                 resource = mlt_properties_get(properties, "mlt_service");
             }
 
-            int trackNb = tractor.count();
-            while (trackNb > 0) {
-                Mlt::Producer trackProducer(tractor.track(trackNb - 1));
+            for (int trackNb = tractor.count() - 1; trackNb >= 0; --trackNb) {
+                Mlt::Producer trackProducer(tractor.track(trackNb));
                 Mlt::Playlist trackPlaylist((mlt_playlist) trackProducer.get_service());
                 if (trackPlaylist.type() == playlist_type) trackPlaylist.clear();
-                trackNb--;
             }
             delete field;
         }
@@ -1965,14 +1958,12 @@ void Render::mltInsertSpace(QMap <int, int> trackClipStartList, QMap <int, int>
             resource = mlt_properties_get(properties, "mlt_service");
         }
     } else {
-        int trackNb = tractor.count();
-        while (trackNb > 1) {
-            Mlt::Producer trackProducer(tractor.track(trackNb - 1));
+        for(int trackNb = tractor.count() - 1; trackNb >= 1; --trackNb) {
+            Mlt::Producer trackProducer(tractor.track(trackNb));
             Mlt::Playlist trackPlaylist((mlt_playlist) trackProducer.get_service());
 
-
             //int clipNb = trackPlaylist.count();
-            insertPos = trackClipStartList.value(trackNb - 1);
+            insertPos = trackClipStartList.value(trackNb);
             if (insertPos != -1) {
                 insertPos += offset;
 
@@ -2004,7 +1995,6 @@ void Render::mltInsertSpace(QMap <int, int> trackClipStartList, QMap <int, int>
                 }
                 trackPlaylist.consolidate_blanks(0);
             }
-            trackNb--;
         }
         // now move transitions
         mlt_service serv = m_mltProducer->parent().get_service();