Big Kdenlive update, please read

Hello everyone.

Have been very silent these last weeks, but I really needed a pause. I just commited some big changes in Kdenlive svn.
Most important changes:

Kdenlive now uses the MLT functions to manipulate the playlist, which means:
- All playlist operations (move, resize, cut, ...) are about 100% faster
- You can add effects, change parameters, add clips, etc while playing the timeline for more fun
- On the other side, as it is quite a big change, there might be some regressions in simple operations, this is still a bit experimental. Sometimes the timeline can become broken (especially transitions). If this happens, you can use the menu entry: View->Sync Timeline, that should repair the thing.

Effects are now created from XML files from the effects subdirectory.
It means that when a new effect is added to MLT, a simple XML file describing its parameters should be all that is needed to get the effect in Kdenlive

CMake is now required to compile Kdenlive
This means that to compile you have to do the following in source directory:
cmake .
make
sudo make install
To install in a folder other than /usr/local, use following cmake command before installing:
cmake . -DCMAKE_INSTALL_PREFIX=/path/to/your/install/folder
You may need to do a "make clean" when switching from the old build system to the new one.

There are probably a few things that are not working correctly with these changes (I still have an MLT patch to apply to fix a timeline imprecision), but it is worth the trouble if you consider the incredible speed gain.

Have fun & regards

jb

Thanks for the hard work.

Quote:
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include/kde -I/usr/share/qt3/include -I. -I/usr/include -I/usr/include/mlt -D_REENTRANT -D__STDC_CONSTANT_MACROS -DQT_THREAD_SUPPORT -D_REENTRANT -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -fno-builtin -g3 -fno-inline -Wformat-security -Wmissing-format-attribute -Wno-non-virtual-dtor -fno-exceptions -fno-check-new -fno-common -DMLT_PREFIX=\""/usr"\" -DENABLE_FIREWIRE -MT kmonitor.moc.o -MD -MP -MF ".deps/kmonitor.moc.Tpo" -c -o kmonitor.moc.o kmonitor.moc.cpp; \
then mv -f ".deps/kmonitor.moc.Tpo" ".deps/kmonitor.moc.Po"; else rm -f ".deps/kmonitor.moc.Tpo"; exit 1; fi
/bin/sh ../libtool --silent --tag=CXX --mode=link g++ -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -fno-builtin -g3 -fno-inline -Wformat-security -Wmissing-format-attribute -Wno-non-virtual-dtor -fno-exceptions -fno-check-new -fno-common -DMLT_PREFIX=\""/usr"\" -DENABLE_FIREWIRE -o kdenlive -L/usr/share/qt3/lib -R /usr/lib -R /usr/lib -R /usr/share/qt3/lib -L/usr/lib -lmlt -lmlt++ avfilelist.o aviconviewitem.o avlistviewitem.o baselistviewitem.o capturemonitor.o clipdrag.o clipmanager.o clipproperties.o clippropertiesdialog.o configureprojectdialog.o createslideshowclip.o displayaudiodesc.o displayvideodesc.o docclipavfile.o docclipbase.o docclipbaselist.o docclipproject.o docclipref.o docclipreflist.o doccliptextfile.o docclipvirtual.o docsubclip.o doctrackbase.o doctrackbaselist.o doctrackclipiterator.o doctrackdecorator.o doctracksound.o doctrackvideo.o documentbasenode.o documentclipnode.o documentgroupnode.o documentmacrocommands.o dynamicToolTip.o effect.o effectcomplexkeyframe.o effectdesc.o effectdescriptionlist.o effectdoublekeyframe.o effectdrag.o effectkeyframe.o effectlistdialog.o effectparamcomplexdesc.o effectparamdesc.o effectparamdescfactory.o effectparamdialog.o effectparamdoubledesc.o effectparameter.o effectstack.o effectstackdialog.o effectstacklistview.o exportdvddialog.o exportwidget.o flatbutton.o folderlistviewitem.o gentime.o initeffects.o kaddclipcommand.o kaddeffectcommand.o kaddmarkercommand.o kaddrefclipcommand.o kaddtransitioncommand.o kclipplacer.o kdenlive.o kdenlivedoc.o kdenlivesetupdlg.o kdenlivesplash.o keditclipcommand.o keditmarkercommand.o kfixedruler.o kmmclipkeyframepanel.o kmmeditpanel.o kmmmonitor.o kmmrecpanel.o kmmrulerpanel.o kmmscreen.o kmmtimeline.o kmmtrackkeyframepanel.o kmmtrackpanel.o kmmtracksoundpanel.o kmmtrackvideopanel.o kmonitor.o kmoveclipscommand.o kplacer.o krender.o krendermanager.o kresizecommand.o krollcommand.o kruler.o krulermodel.o krulersliderbase.o krulertimemodel.o kscalableruler.o kselectclipcommand.o kthumb.o ktimeline.o ktrackpanel.o ktrackplacer.o ktrackview.o listviewtagsearch.o loadprojectfilter.o loadprojectkinofilter.o loadprojectnativefilter.o main.o monitormanager.o newproject.o newstuff.o playlist.o printproperties.o projectformatmanager.o projecticonview.o projectlist.o projectlistview.o rangelist.o saveprojectfilter.o saveprojectnativefilter.o saveprojectscenelistfilter.o snaptogrid.o timecode.o titlewidget.o trackpanelclipmovefunction.o trackpanelclipresizefunction.o trackpanelcliprollfunction.o trackpanelclipslipfunction.o trackpanelfunction.o trackpanelfunctionfactory.o trackpanelkeyframefunction.o trackpanelmarkerfunction.o trackpanelrazorfunction.o trackpanelselectnonefunction.o trackpanelspacerfunction.o trackpaneltransitionmovefunction.o trackpaneltransitionresizefunction.o trackviewaudiobackgrounddecorator.o trackviewbackgrounddecorator.o trackviewdecorator.o trackviewdoublekeyframedecorator.o trackviewmarkerdecorator.o trackviewnamedecorator.o trackviewtransitiondecorator.o trackviewvideobackgrounddecorator.o transition.o transitiondialog.o transitionpipwidget.o transitionstack.o transitionwipewidget.o westleylistviewitem.o addmarker_ui.o addtrackdialog_ui.o clipproperties_ui.o configcapture_ui.o confighard_ui.o configinterface_ui.o configmisc_ui.o configproject_ui.o configtimeline_ui.o configtitler_ui.o configureproject_ui.o createcolorclip_ui.o createimageclip_ui.o createslideshowclip_ui.o editencoder_ui.o editmetadata_ui.o effectstackdialog_ui.o exportbasewidget_ui.o exportdvd_ui.o firstrun_ui.o fixplaylist_ui.o kmmeditpanel_ui.o kmmrecpanel_ui.o kmmrulerpanel_ui.o loadprogress_ui.o newproject_ui.o projectview_ui.o titlebasewidget_ui.o trackheader_ui.o transitionaudiofade_ui.o transitioncrossfade_ui.o transitionlumafile_ui.o transitionpip_ui.o transitionwipe_ui.o kdenlivesettings.o kmmmonitor.moc.o trackpanelcliprollfunction.moc.o kruler.moc.o projectlistview.moc.o kscalableruler.moc.o kmmrecpanel.moc.o kdenlivesetupdlg.moc.o trackpanelclipslipfunction.moc.o exportdvddialog.moc.o trackpanelclipresizefunction.moc.o kmmtrackvideopanel.moc.o kmmscreen.moc.o docclipbase.moc.o createslideshowclip.moc.o docclipproject.moc.o doccliptextfile.moc.o effectlistdialog.moc.o kmmeditpanel.moc.o configureprojectdialog.moc.o doctrackbase.moc.o trackpanelrazorfunction.moc.o effectdrag.moc.o docclipref.moc.o kmmtracksoundpanel.moc.o docclipvirtual.moc.o clipproperties.moc.o kmmclipkeyframepanel.moc.o ktimeline.moc.o docsubclip.moc.o docclipavfile.moc.o kthumb.moc.o trackpanelspacerfunction.moc.o kdenlive.moc.o flatbutton.moc.o kmmtrackkeyframepanel.moc.o krender.moc.o titlewidget.moc.o krendermanager.moc.o trackpanelmarkerfunction.moc.o effectstackdialog.moc.o kmmtrackpanel.moc.o listviewtagsearch.moc.o projecticonview.moc.o newproject.moc.o capturemonitor.moc.o transitionpipwidget.moc.o monitormanager.moc.o clippropertiesdialog.moc.o trackpaneltransitionmovefunction.moc.o trackviewaudiobackgrounddecorator.moc.o effectstacklistview.moc.o ktrackview.moc.o exportwidget.moc.o transitionwipewidget.moc.o trackpaneltransitionresizefunction.moc.o trackpanelclipmovefunction.moc.o effectparamdialog.moc.o playlist.moc.o ktrackpanel.moc.o kmmrulerpanel.moc.o trackpanelfunction.moc.o trackpanelkeyframefunction.moc.o kfixedruler.moc.o kdenlivedoc.moc.o clipmanager.moc.o projectlist.moc.o transitiondialog.moc.o kmonitor.moc.o -lkdeprint -lkio -lkdeui -lkdecore -lqt-mt -lz -lpng -lz -lm -lXext -lX11 -lSM -lICE -lpthread -liec61883 -lknewstuff
documentmacrocommands.o: In function `Command::DocumentMacroCommands::razorSelectedClipsAt(Gui::KdenliveApp*, KdenliveDoc*, GenTime const&)':
/home/jmpoure/logiciels/kdenlive/kdenlive/kdenlive/documentmacrocommands.cpp:66: undefined reference to `Command::KRazorClipsCommand::KRazorClipsCommand(Gui::KdenliveApp*, KdenliveDoc*, DocTrackBase&, GenTime)'
trackpanelrazorfunction.o: In function `TrackPanelRazorFunction::mousePressed(Gui::KTrackPanel*, QMouseEvent*)':
/home/jmpoure/logiciels/kdenlive/kdenlive/kdenlive/trackpanelrazorfunction.cpp:97: undefined reference to `Command::KRazorClipsCommand::KRazorClipsCommand(Gui::KdenliveApp*, KdenliveDoc*, DocTrackBase&, GenTime)'
trackpaneltransitionmovefunction.o: In function `TrackPanelTransitionMoveFunction::mouseReleased(Gui::KTrackPanel*, QMouseEvent*)':
/home/jmpoure/logiciels/kdenlive/kdenlive/kdenlive/trackpaneltransitionmovefunction.cpp:186: undefined reference to `Command::KMoveTransitionCommand::KMoveTransitionCommand(KdenliveDoc*, DocClipRef*, Transition*, GenTime, GenTime, GenTime, GenTime)'
trackpaneltransitionresizefunction.o: In function `TrackPanelTransitionResizeFunction::mouseReleased(Gui::KTrackPanel*, QMouseEvent*)':
/home/jmpoure/logiciels/kdenlive/kdenlive/kdenlive/trackpaneltransitionresizefunction.cpp:199: undefined reference to `Command::KMoveTransitionCommand::KMoveTransitionCommand(KdenliveDoc*, DocClipRef*, Transition*, GenTime, GenTime, GenTime, GenTime)'
/home/jmpoure/logiciels/kdenlive/kdenlive/kdenlive/trackpaneltransitionresizefunction.cpp:203: undefined reference to `Command::KMoveTransitionCommand::KMoveTransitionCommand(KdenliveDoc*, DocClipRef*, Transition*, GenTime, GenTime, GenTime, GenTime)'
collect2: ld returned 1 exit status
make[2]: *** [kdenlive] Erreur 1
make[2]: quittant le répertoire « /home/jmpoure/logiciels/kdenlive/kdenlive/kdenlive »
make[1]: *** [all-recursive] Erreur 1
make[1]: quittant le répertoire « /home/jmpoure/logiciels/kdenlive/kdenlive »
make: *** [all] Erreur 2

In SVN log, it is written now cmake is required.
Is this the reasons why it does not compile?

Kind regards,
Jean-Michel

Just had it installed with

cmake .
make
make install

. Yep, it's faster but there seems to be a problem with cutting clips on timeline with split clip tool and that is one part remains viewable in clip monitor when the cursor is on it and the other does not. Anyway, "sync timeline" seems to solve this and other bugs.
Cheers
Bane

How to define target directory, i.e. prefix=/usr?

Okay, I could define the /usr directory.
Now a compilation failure:

CMakeFiles/kdenlive.dir/fixplaylist_ui.o:fixplaylist_ui.cpp:(.text+0xd0): first defined here
CMakeFiles/kdenlive.dir/fixplaylist_ui.moc.o:(.bss+0x0): multiple definition of `FixPlayList_UI::metaObj'
CMakeFiles/kdenlive.dir/fixplaylist_ui.o:(.bss+0x0): first defined here
CMakeFiles/kdenlive.dir/fixplaylist_ui.moc.o: In function `FixPlayList_UI::qt_invoke(int, QUObject*)':
fixplaylist_ui.moc.cpp:(.text+0x190): multiple definition of `FixPlayList_UI::qt_invoke(int, QUObject*)'
CMakeFiles/kdenlive.dir/fixplaylist_ui.o:fixplaylist_ui.cpp:(.text+0x190): first defined here
CMakeFiles/kdenlive.dir/fixplaylist_ui.moc.o: In function `FixPlayList_UI::trUtf8(char const*, char const*)':
fixplaylist_ui.moc.cpp:(.text+0x200): multiple definition of `FixPlayList_UI::trUtf8(char const*, char const*)'
CMakeFiles/kdenlive.dir/fixplaylist_ui.o:fixplaylist_ui.cpp:(.text+0x200): first defined here
CMakeFiles/kdenlive.dir/fixplaylist_ui.moc.o: In function `FixPlayList_UI::tr(char const*, char const*)':
fixplaylist_ui.moc.cpp:(.text+0x250): multiple definition of `FixPlayList_UI::tr(char const*, char const*)'
CMakeFiles/kdenlive.dir/fixplaylist_ui.o:fixplaylist_ui.cpp:(.text+0x250): first defined here
collect2: ld returned 1 exit status
make[2]: *** [kdenlive/kdenlive] Erreur 1
make[1]: *** [kdenlive/CMakeFiles/kdenlive.dir/all] Erreur 2
make: *** [all] Erreur 2
jmpoure@debian:~/logiciels/kdenlive/kdenlive$ svn update

Récupération de la référence externe vers 'admin'
Référence externe à la révision 736064.

À la révision 1722.

Can you try to do a "make clean" or "make distclean" and then follow cmake instructions:

cmake .
make
make install

regards

Works for me, thanks.
cmake -DCMAKE_INSTALL_PREFIX=/usr .
make
make install

How can I enable the old full-debug option?

I am having problems compiling this. Could you please put a detailled instruction into the wiki?

And also, could anyone build packages? Due to numerous bugs, 0.5 is not really useable, but as you describe it, 0.6 svn might do.

Have a nice weekend and many thanks for the hard work!!!!!!!!!!!!