]> git.sesse.net Git - kdenlive/commitdiff
Fix small bug in clip move
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Sun, 30 Mar 2008 19:04:05 +0000 (19:04 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Sun, 30 Mar 2008 19:04:05 +0000 (19:04 +0000)
svn path=/branches/KDE4/; revision=2144

src/renderer.cpp
src/renderer.h

index f74af46af79dd57a414d3ae4b927bc78f02cf531..1cdbce320afc76f9052431dd433940ef2577fb6a 100644 (file)
@@ -913,25 +913,25 @@ void Render::exportCurrentFrame(KUrl url, bool notify) {
 /** MLT PLAYLIST DIRECT MANIPULATON  **/
 
 
-void Render::mltCheckLength() {
+void Render::mltCheckLength(bool reload) {
     //kDebug()<<"checking track length: "<<track<<"..........";
 
-    //reinsert main tractorin playlist so that the producer can take the new length ( not automatic done)
-    Mlt::Service service(m_mltProducer->get_service());
-    Mlt::Playlist prod(service);
-    Mlt::Service service_playlist(prod.get_clip(0)->get_service());
-    Mlt::Producer producer_playlist(service_playlist);
-
-    Mlt::Tractor tr(producer_playlist.parent());
-    prod.remove(0);
-    prod.insert(tr, 0);
-
+    if (reload) {
+        //reinsert main tractorin playlist so that the producer can take the new length ( not automatic done)
+        Mlt::Service service(m_mltProducer->get_service());
+        Mlt::Playlist prod(service);
+        Mlt::Service service_playlist(prod.get_clip(0)->get_service());
+        Mlt::Producer producer_playlist(service_playlist);
 
+        Mlt::Tractor tr(producer_playlist.parent());
+        prod.remove(0);
+        prod.insert(tr, 0);
+    }
     Mlt::Tractor *tractor = getTractor();
 
     int trackNb = tractor->count();
     double duration = 0;
-    double trackDuration;
+    double trackDuration = 0;
     if (trackNb == 1) {
         Mlt::Producer trackProducer(tractor->track(0));
         Mlt::Playlist trackPlaylist((mlt_playlist) trackProducer.get_service());
@@ -1354,7 +1354,7 @@ void Render::mltMoveClip(int startTrack, int endTrack, int moveStart, int moveEn
             destTrackPlaylist.consolidate_blanks(0);
         }
 
-        mltCheckLength();
+        mltCheckLength(false);
         mlt_events_unblock(MLT_PRODUCER_PROPERTIES(trackProducer.get_producer()), NULL);
         m_isBlocked = false;
         m_mltConsumer->set("refresh", 1);
index 78d6a4477bd9dab3978a979c452c5f4c463e0360..fa157c606372de6fa473cfb1946cb8e148f3f568 100644 (file)
@@ -195,7 +195,7 @@ private:   // Private attributes & methods
     /** Sets the description of this renderer to desc. */
     void setDescription(const QString & description);
     void closeMlt();
-    void mltCheckLength();
+    void mltCheckLength(bool reload = true);
     Mlt::Tractor* getTractor();
     Mlt::Playlist* getPlaylist(int track);
     void replaceTimelineTractor(Mlt::Tractor t);