X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Frenderer.h;h=e44e59a3ace2f7a4f4269aa0bf3410441730f79b;hb=0c14e62650138ae65fc1ccf1c640d7797a030f5c;hp=28e317c6981dad5382b76b115c1601814ec64fa0;hpb=1f5c19bcf720efb573fd7320a149fe6c17cf4fd7;p=kdenlive diff --git a/src/renderer.h b/src/renderer.h index 28e317c6..e44e59a3 100644 --- a/src/renderer.h +++ b/src/renderer.h @@ -45,8 +45,8 @@ #include #include #include +#include -class QTimer; class QPixmap; class KComboBox; @@ -55,6 +55,7 @@ namespace Mlt { class Consumer; class Playlist; +class Properties; class Tractor; class Transition; class Frame; @@ -81,7 +82,7 @@ bool operator==(const requestClipInfo &a) class MltErrorEvent : public QEvent { public: - MltErrorEvent(QString message) : QEvent(QEvent::User), m_message(message) {} + MltErrorEvent(const QString &message) : QEvent(QEvent::User), m_message(message) {} QString message() const { return m_message; } @@ -294,6 +295,8 @@ Q_OBJECT public: const QList producersList(); void updatePreviewSettings(); void setDropFrames(bool show); + /** @brief Sets an MLT consumer property. */ + void setConsumerProperty(const QString &name, const QString &value); QString updateSceneListFps(double current_fps, double new_fps, QString scene); void showAudio(Mlt::Frame&); @@ -335,6 +338,11 @@ Q_OBJECT public: int getCurrentSeekPosition() const; /** @brief Create a producer from url and load it in the monitor */ void loadUrl(const QString &url); + /** @brief Check if the installed FFmpeg / Libav supports x11grab */ + static bool checkX11Grab(); + + /** @brief Ask to set this monitor as active */ + void setActiveMonitor(); QSemaphore showFrameSemaphore; bool externalConsumer; @@ -383,6 +391,8 @@ private: QFuture m_infoThread; QList m_requestList; bool m_paused; + /** @brief True if this monitor is active. */ + bool m_isActive; void closeMlt(); void mltCheckLength(Mlt::Tractor *tractor); @@ -405,6 +415,8 @@ private: void fixAudioMixing(Mlt::Tractor tractor); /** @brief Make sure we inform MLT if we need a lot of threads for avformat producer */ void checkMaxThreads(); + /** @brief Clone serialisable properties only */ + void cloneProperties(Mlt::Properties &dest, Mlt::Properties &source); private slots: @@ -462,6 +474,8 @@ signals: void showAudioSignal(const QVector &); void addClip(const KUrl &, stringMap); void checkSeeking(); + /** @brief Activate current monitor. */ + void activateMonitor(Kdenlive::MONITORID); void mltFrameReceived(Mlt::Frame *); public slots: