]> git.sesse.net Git - kdenlive/blobdiff - src/renderer.h
* New config option for preview: disable B Frame decoding on h.264:
[kdenlive] / src / renderer.h
index 6d8d84275ae2f02d6d26b63f88c77413d09300ff..3940b943ef4b7df6f2b14f783d098e43ad751563 100644 (file)
@@ -22,7 +22,6 @@
 #include <qstring.h>
 #include <qmap.h>
 #include <QList>
-#include <QWidget>
 
 #include <kurl.h>
 
@@ -101,6 +100,7 @@ Q_OBJECT public:
     backwards. Does not specify start/stop times for playback.*/
     void play(double speed);
     void switchPlay();
+    void pause();
     /** stop playing */
     void stop(const GenTime & startTime);
     void setVolume(double volume);
@@ -150,18 +150,20 @@ Q_OBJECT public:
     void mltInsertClip(ItemInfo info, QDomElement element, Mlt::Producer *prod);
     void mltUpdateClip(ItemInfo info, QDomElement element, Mlt::Producer *prod);
     void mltCutClip(int track, GenTime position);
+    void mltInsertSpace(QMap <int, int> trackClipStartList, QMap <int, int> trackTransitionStartList, int track, const GenTime duration, const GenTime timeOffset);
+    int mltGetSpaceLength(const GenTime pos, int track, bool fromBlankStart);
     bool mltResizeClipEnd(ItemInfo info, GenTime clipDuration);
     bool mltResizeClipStart(ItemInfo info, GenTime diff);
-    bool mltMoveClip(int startTrack, int endTrack, GenTime pos, GenTime moveStart);
-    bool mltMoveClip(int startTrack, int endTrack, int pos, int moveStart);
+    bool mltMoveClip(int startTrack, int endTrack, GenTime pos, GenTime moveStart, Mlt::Producer *prod);
+    bool mltMoveClip(int startTrack, int endTrack, int pos, int moveStart, Mlt::Producer *prod);
     bool mltRemoveClip(int track, GenTime position);
     bool mltRemoveEffect(int track, GenTime position, QString index, bool doRefresh = true);
-    bool mltAddEffect(int track, GenTime position, QHash <QString, QString> args, bool doRefresh = true);
-    bool mltEditEffect(int track, GenTime position, QHash <QString, QString> args);
+    bool mltAddEffect(int track, GenTime position, EffectsParameterList params, bool doRefresh = true);
+    bool mltEditEffect(int track, GenTime position, EffectsParameterList params);
     void mltMoveEffect(int track, GenTime position, int oldPos, int newPos);
     void mltChangeTrackState(int track, bool mute, bool blind);
-    void mltMoveTransition(QString type, int startTrack,  int newTrack, int newTransitionTrack, GenTime oldIn, GenTime oldOut, GenTime newIn, GenTime newOut);
-    void mltAddTransition(QString tag, int a_track, int b_track, GenTime in, GenTime out, QDomElement xml, bool refresh = true);
+    bool mltMoveTransition(QString type, int startTrack,  int newTrack, int newTransitionTrack, GenTime oldIn, GenTime oldOut, GenTime newIn, GenTime newOut);
+    bool mltAddTransition(QString tag, int a_track, int b_track, GenTime in, GenTime out, QDomElement xml, bool refresh = true);
     void mltDeleteTransition(QString tag, int a_track, int b_track, GenTime in, GenTime out, QDomElement xml, bool refresh = true);
     void mltUpdateTransition(QString oldTag, QString tag, int a_track, int b_track, GenTime in, GenTime out, QDomElement xml);
     void mltUpdateTransitionParams(QString type, int a_track, int b_track, GenTime in, GenTime out, QDomElement xml);
@@ -169,15 +171,19 @@ Q_OBJECT public:
     void mltMoveTransparency(int startTime, int endTime, int startTrack, int endTrack, int id);
     void mltDeleteTransparency(int pos, int track, int id);
     void mltResizeTransparency(int oldStart, int newStart, int newEnd, int track, int id);
+    void mltInsertTrack(int ix, bool videoTrack);
+    void mltDeleteTrack(int ix);
+    void mltUpdateClipProducer(int track, int pos, Mlt::Producer *prod);
 
     /** Change speed of a clip in playlist. To do this, we create a new "framebuffer" producer.
     This new producer must have its "resource" param set to: video.mpg?0.6 where video.mpg is the path
     to the clip and 0.6 is the speed in percents. The newly created producer will have it's
     "id" parameter set to: "slowmotion:parentid:speed", where parentid is the id of the original clip
     in the ClipManager list and speed is the current speed */
-    int mltChangeClipSpeed(ItemInfo info, double speed, Mlt::Producer *prod);
+    int mltChangeClipSpeed(ItemInfo info, double speed, double oldspeed, Mlt::Producer *prod);
 
     QList <Mlt::Producer *> producersList();
+    void updatePreviewSettings();
 
 private:   // Private attributes & methods
     /** The name of this renderer - useful to identify the renderes by what they do - e.g. background rendering, workspace monitor, etc... */
@@ -201,6 +207,7 @@ private:   // Private attributes & methods
     Mlt::Producer *m_blackClip;
     /** Holds the path to on screen display profile */
     QString m_osdProfile;
+    QString m_activeProfile;
 
     QTimer *refreshTimer;
     QTimer *osdTimer;
@@ -212,7 +219,7 @@ private:   // Private attributes & methods
 
     /** Sets the description of this renderer to desc. */
     void closeMlt();
-    void mltCheckLength(bool reload = true);
+    void mltCheckLength();
     QMap<QString, QString> mltGetTransitionParamsFromXml(QDomElement xml);
     QMap<QString, Mlt::Producer *> m_slowmotionProducers;
     void buildConsumer();