]> git.sesse.net Git - kdenlive/blobdiff - src/renderer.h
Fix broken producer incorrectly handled when using proxy, corrupting project:
[kdenlive] / src / renderer.h
index 2d0a2189f389fae649e827934785a71ecfdccb5b..39690902bb8cd32b2d151ce1d7a166fcc8f78d5f 100644 (file)
@@ -41,7 +41,7 @@
 #include <qmap.h>
 #include <QList>
 #include <QEvent>
-
+#include <QMutex>
 
 class QTimer;
 class QPixmap;
@@ -122,7 +122,7 @@ Q_OBJECT public:
      * The speed is relative to normal playback, e.g. 1.0 is normal speed, 0.0
      * is paused, -1.0 means play backwards. It does not specify start/stop */
     void play(double speed);
-    void switchPlay();
+    void switchPlay(bool play);
     void pause();
 
     /** @brief Stops playing.
@@ -166,7 +166,11 @@ Q_OBJECT public:
 
     /** @brief Turns on or off on screen display. */
     void refreshDisplay();
-    int resetProfile(const QString profileName);
+    /** @brief Change the Mlt PROFILE
+     * @param profileName The MLT profile name
+     * @param dropSceneList If true, the current playlist will be deleted
+     * . */
+    int resetProfile(const QString profileName, bool dropSceneList = false);
     double fps() const;
 
     /** @brief Returns the width of a frame for this profile. */
@@ -297,6 +301,7 @@ private:
     QString m_activeProfile;
 
     QTimer *m_osdTimer;
+    QMutex m_mutex;
 
     /** @brief A human-readable description of this renderer. */
     int m_winid;
@@ -356,7 +361,10 @@ signals:
      *  @param durationError Should be set to true if the proxy failed because it has not same length as original clip
      */
     void removeInvalidProxy(const QString &id, bool durationError);
-    void refreshDocumentProducers();
+    void refreshDocumentProducers(bool displayRatioChanged, bool fpsChanged);
+    
+    /** @brief If we will delete the producer, make sure to pause the monitor */
+    void blockClipMonitor(const QString);
 
     /** @brief A frame's image has to be shown.
      *