-
- public slots:
- void updateAudioThumbnail(QMap<int,QMap<int,QByteArray> > data);
- void slotGetAudioThumbs();
- QList < CommentedTime > commentedSnapMarkers() const;
- void setSnapMarkers(QList < CommentedTime > markers);
- GenTime findNextSnapMarker(const GenTime & currTime);
- GenTime findPreviousSnapMarker(const GenTime & currTime);
- GenTime hasSnapMarkers(const GenTime & time);
- QString deleteSnapMarker(const GenTime & time);
- void editSnapMarker(const GenTime & time, QString comment);
- void addSnapMarker(const GenTime & time, QString comment);
- QList < GenTime > snapMarkers() const;
- QString markerComment(GenTime t);
- void setProjectThumbFrame( const uint &ix);
- uint getProjectThumbFrame() const;
-
- signals:
- void getAudioThumbs();
- void gotAudioData();
+ /** Holds clip infos like fps, size,... */
+ QMap <QString, QString> m_properties;
+ /** Holds clip metadata like author, copyright,... */
+ QMap <QString, QString> m_metadata;
+
+ /** Try to make sure we don't delete a producer while using it */
+ QMutex m_producerMutex;
+ QMutex m_replaceMutex;
+
+ /** @brief This timer will trigger creation of audio thumbnails. */
+ QTimer m_audioTimer;
+
+ /** Create connections for audio thumbnails */
+ void slotRefreshProducer();
+ void setProducerProperty(const char *name, int data);
+ void setProducerProperty(const char *name, double data);
+ void getFileHash(const QString &url);
+ /** @brief When duplicating a producer, make sure all manually set properties are passed to it. */
+ void adjustProducerProperties(Mlt::Producer *prod, const QString &id, bool mute, bool blind);
+ /** @brief Create another instance of a producer. */
+ Mlt::Producer *cloneProducer(Mlt::Producer *source);
+
+
+public slots:
+ void updateAudioThumbnail(const audioByteArray& data);
+ QList < CommentedTime > commentedSnapMarkers() const;
+ GenTime findNextSnapMarker(const GenTime & currTime);
+ GenTime findPreviousSnapMarker(const GenTime & currTime);
+ GenTime hasSnapMarkers(const GenTime & time);
+ QString deleteSnapMarker(const GenTime & time);
+ void editSnapMarker(const GenTime & time, QString comment);
+ void addSnapMarker(const GenTime & time, QString comment);
+ QList < GenTime > snapMarkers() const;
+ QString markerComment(GenTime t);
+ void setClipThumbFrame(const uint &ix);
+ uint getClipThumbFrame() const;
+ void setProperties(QMap <QString, QString> properties);
+ void setMetadata(QMap <QString, QString> properties);
+ /** Returns all current properties for this clip */
+ QMap <QString, QString> properties() const;
+ /** Return the current values for a set of properties */
+ QMap <QString, QString> currentProperties(QMap <QString, QString> props);
+ QMap <QString, QString> metadata() const;
+ void slotExtractImage(QList <int> frames);
+
+signals:
+ void gotAudioData();
+ /** @brief Generate a proxy clip (lower resolution copy) named like the clip's hash. */
+ void createProxy(const QString &id);
+ /** @brief Abort creation of the proxy clip (lower resolution copy). */
+ void abortProxy(const QString &id, const QString &proxyPath);