]> git.sesse.net Git - kdenlive/blobdiff - src/renderer.h
Speedup project opening (threaded loading) and fix shortcut conflict
[kdenlive] / src / renderer.h
index 0749ad13ddae6522478a22d0d6d7d972c57d66f4..c3c2959b216206c87016b2b7081e54e48131501f 100644 (file)
@@ -31,6 +31,7 @@
 
 #include "gentime.h"
 #include "definitions.h"
+#include "mlt/framework/mlt_types.h"
 
 #include <kurl.h>
 
@@ -187,7 +188,10 @@ Q_OBJECT public:
     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);
+
+    /** @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 mltResizeClipStart(ItemInfo info, GenTime diff);
     bool mltResizeClipCrop(ItemInfo info, GenTime diff);
@@ -252,6 +256,8 @@ Q_OBJECT public:
     void showFrame(Mlt::Frame&);
 
     void showAudio(Mlt::Frame&);
+    /** @brief This property is used to decide if the renderer should send audio data for monitoring. */
+    bool analyseAudio;
     /** @brief This property is used to decide if the renderer should convert it's frames to QImage for use in other Kdenlive widgets. */
     bool sendFrameForAnalysis;
     QList <int> checkTrackSequence(int);
@@ -269,6 +275,7 @@ private:
     Mlt::Profile *m_mltProfile;
     double m_framePosition;
     double m_fps;
+    bool m_externalConsumer;
 
     /** @brief True if we are playing a zone.
      *
@@ -313,7 +320,7 @@ private slots:
 signals:
 
     /** @brief The renderer received a reply to a getFileProperties request. */
-    void replyGetFileProperties(const QString &clipId, Mlt::Producer*, const QMap < QString, QString > &, const QMap < QString, QString > &, bool);
+    void replyGetFileProperties(const QString &clipId, Mlt::Producer*, const QMap < QString, QString > &, const QMap < QString, QString > &, bool, bool);
 
     /** @brief The renderer received a reply to a getImage request. */
     void replyGetImage(const QString &, const QPixmap &);
@@ -350,6 +357,8 @@ signals:
     void showAudioSignal(const QByteArray);
     /** @brief The renderer refreshed the current frame, but no seeking was done. */
     void frameUpdated(QImage);
+    /** @brief This signal contains the audio of the current frame. */
+    void audioSamplesSignal(const QVector<int16_t>&, int freq, int num_channels, int num_samples);
 
 public slots:
 
@@ -364,10 +373,14 @@ public slots:
     bool isValid(KUrl url);
 
     /** @brief Requests the file properties for the specified URL.
-     *
+        @param xml The xml parameters for the clip
+        @param clipId The clip Id string
+        @param imageHeight The height (in pixels) of the returned thumbnail (height of a treewidgetitem in projectlist)
+        @param replaceProducer If true, the MLT producer will be recreated
+        @param selectClip If true, clip item will be selected in project view
      * Upon return, the result will be emitted via replyGetFileProperties().
      * Wraps the VEML command of the same name. */
-    void getFileProperties(const QDomElement xml, const QString &clipId, int imageHeight, bool replaceProducer = true);
+    void getFileProperties(const QDomElement xml, const QString &clipId, int imageHeight, bool replaceProducer = true, bool selectClip = false);
 
     void exportFileToFirewire(QString srcFileName, int port, GenTime startTime, GenTime endTime);
     void mltSavePlaylist();