class KThumb;
class ClipManager;
-namespace Mlt {
+namespace Mlt
+{
class Producer;
};
-class DocClipBase: public QObject {
+class DocClipBase: public QObject
+{
Q_OBJECT public:
/** this enum determines the types of "feed" available within this clip. types must be non-exclusive
* - e.g. if you can have audio and video separately, it should be possible to combin the two, as is
virtual ~ DocClipBase();
/** returns the name of this clip. */
- const QString & name() const;
+ const QString name() const;
/** Returns the description of this clip. */
const QString description() const;
return false;
}
+ /** Sets producers for the current clip (one for each track due to a limitation in MLT's track mixing */
void setProducer(Mlt::Producer *producer);
+ /** Retrieve a producer for a track */
Mlt::Producer *producer(int track = -1);
+ /** Retrieve the producer that shows only video */
+ Mlt::Producer *videoProducer();
+ /** Retrieve the producer that shows only audio */
+ Mlt::Producer *audioProducer(int track);
/** Returns true if this clip is a project clip, false otherwise. Overridden in DocClipProject,
* where it returns true. */
/** Returns the thumbnail used by this clip */
const QPixmap & thumbnail() const;
- static DocClipBase *createClip(KdenliveDoc *doc, const QDomElement & element);
/** Cache for every audio Frame with 10 Bytes */
/** format is frame -> channel ->bytes */
QMap<int, QMap<int, QByteArray> > audioFrameChache;
* that exist. */
uint m_refcount;
QList <Mlt::Producer *> m_baseTrackProducers;
+ QList <Mlt::Producer *> m_audioTrackProducers;
+ Mlt::Producer *m_videoOnlyProducer;
CLIPTYPE m_clipType;
/** A list of snap markers; these markers are added to a clips snap-to points, and are displayed as necessary. */
void slotCreateAudioTimer();
void slotRefreshProducer();
void setProducerProperty(const char *name, int data);
- void getFileHash(const QString &url);
+ void getFileHash(const QString url);
public slots:
void updateAudioThumbnail(QMap<int, QMap<int, QByteArray> > data);