]> git.sesse.net Git - kdenlive/blobdiff - src/renderer.h
Fix moving transition sometimes losing properties: http://kdenlive.org/mantis/view...
[kdenlive] / src / renderer.h
index df5d7fec6ad2ca9f2ab08c313f1fd39a3db96583..26add5a8810d6d5fdfc062cc4fc7d0b24eb130fa 100644 (file)
@@ -55,6 +55,7 @@ namespace Mlt
 {
 class Consumer;
 class Playlist;
+class Properties;
 class Tractor;
 class Transition;
 class Frame;
@@ -221,7 +222,7 @@ Q_OBJECT public:
     /** @brief Returns the duration/length of @param track as reported by the track producer. */
     int mltTrackDuration(int track);
 
-    bool mltResizeClipEnd(ItemInfo info, GenTime clipDuration);
+    bool mltResizeClipEnd(ItemInfo info, GenTime clipDuration, bool refresh = true);
     bool mltResizeClipStart(ItemInfo info, GenTime diff);
     bool mltResizeClipCrop(ItemInfo info, GenTime newCropStart);
     bool mltMoveClip(int startTrack, int endTrack, GenTime pos, GenTime moveStart, Mlt::Producer *prod, bool overwrite = false, bool insert = false);
@@ -294,6 +295,8 @@ Q_OBJECT public:
     const QList <Mlt::Producer *> producersList();
     void updatePreviewSettings();
     void setDropFrames(bool show);
+    /** @brief Sets an MLT consumer property. */
+    void setConsumerProperty(const QString &name, const QString &value);
     QString updateSceneListFps(double current_fps, double new_fps, QString scene);
 
     void showAudio(Mlt::Frame&);
@@ -329,7 +332,18 @@ Q_OBJECT public:
     static bool getBlackMagicOutputDeviceList(KComboBox *devicelist, bool force = false);
     /** @brief Frame rendering is handeled by Kdenlive, don't show video through SDL display */
     void disablePreview(bool disable);
+    /** @brief Get current seek pos requested of SEEK_INACTIVE if we are not currently seeking */
     int requestedSeekPosition;
+    /** @brief Get current seek pos requested of current producer pos if not seeking */
+    int getCurrentSeekPosition() const;
+    /** @brief Create a producer from url and load it in the monitor  */
+    void loadUrl(const QString &url);
+    /** @brief Check if the installed FFmpeg / Libav supports x11grab */
+    static bool checkX11Grab();
+    
+    /** @brief Ask to set this monitor as active */
+    void setActiveMonitor();
+    
     QSemaphore showFrameSemaphore;
     bool externalConsumer;
 
@@ -377,6 +391,8 @@ private:
     QFuture <void> m_infoThread;
     QList <requestClipInfo> m_requestList;
     bool m_paused;
+    /** @brief True if this monitor is active. */
+    bool m_isActive;
 
     void closeMlt();
     void mltCheckLength(Mlt::Tractor *tractor);
@@ -399,6 +415,8 @@ private:
     void fixAudioMixing(Mlt::Tractor tractor);
     /** @brief Make sure we inform MLT if we need a lot of threads for avformat producer */
     void checkMaxThreads();
+    /** @brief Clone serialisable properties only */
+    void cloneProperties(Mlt::Properties &dest, Mlt::Properties &source);
 
 private slots:
 
@@ -456,6 +474,8 @@ signals:
     void showAudioSignal(const QVector<double> &);
     void addClip(const KUrl &, stringMap);
     void checkSeeking();
+    /** @brief Activate current monitor. */
+    void activateMonitor(Kdenlive::MONITORID);
     void mltFrameReceived(Mlt::Frame *);
 
 public slots: