]> git.sesse.net Git - kdenlive/blobdiff - src/renderer.h
Fix freeze on split audio and other stuff (bad service locking)
[kdenlive] / src / renderer.h
index 04d8452c7bf1656c9eda0d3fec76652b20305985..f6298504f3a9816a26c5bd297d079e15c8aa77fa 100644 (file)
@@ -166,7 +166,7 @@ Q_OBJECT public:
     int seekFramePosition() const;
 
     void emitFrameUpdated(Mlt::Frame&);
-    void emitFrameNumber(double position);
+    void emitFrameNumber();
     void emitConsumerStopped();
 
     /** @brief Returns the aspect ratio of the consumer. */
@@ -177,8 +177,6 @@ Q_OBJECT public:
     /** @brief Saves current producer frame as an image. */
     void exportCurrentFrame(KUrl url, bool notify);
 
-    /** @brief Turns on or off on screen display. */
-    void refreshDisplay();
     /** @brief Change the Mlt PROFILE
      * @param profileName The MLT profile name
      * @param dropSceneList If true, the current playlist will be deleted
@@ -203,7 +201,7 @@ Q_OBJECT public:
      */
     Mlt::Producer *checkSlowMotionProducer(Mlt::Producer *prod, QDomElement element);
     int mltInsertClip(ItemInfo info, QDomElement element, Mlt::Producer *prod, bool overwrite = false, bool push = false);
-    bool mltUpdateClip(ItemInfo info, QDomElement element, Mlt::Producer *prod);
+    bool mltUpdateClip(Mlt::Tractor *tractor, 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);
@@ -254,7 +252,7 @@ Q_OBJECT public:
     void mltResizeTransparency(int oldStart, int newStart, int newEnd, int track, int id);
     void mltInsertTrack(int ix, bool videoTrack);
     void mltDeleteTrack(int ix);
-    bool mltUpdateClipProducer(int track, int pos, Mlt::Producer *prod);
+    bool mltUpdateClipProducer(Mlt::Tractor *tractor, int track, int pos, Mlt::Producer *prod);
     void mltPlantTransition(Mlt::Field *field, Mlt::Transition &tr, int a_track, int b_track);
     Mlt::Producer *invalidProducer(const QString &id);
 
@@ -296,9 +294,9 @@ Q_OBJECT public:
     void getFileProperties(const QDomElement &xml, const QString &clipId, int imageHeight, bool replaceProducer = true);
 
     /** @brief Lock the MLT service */
-    void lock();
+    Mlt::Tractor *lockService();
     /** @brief Unlock the MLT service */
-    void unlock();
+    void unlockService(Mlt::Tractor *tractor);
 
 private:
 
@@ -310,7 +308,6 @@ private:
     Mlt::Consumer * m_mltConsumer;
     Mlt::Producer * m_mltProducer;
     Mlt::Profile *m_mltProfile;
-    double m_framePosition;
     double m_fps;
     bool m_externalConsumer;