+ void showAudio(Mlt::Frame&);
+
+ QList <int> checkTrackSequence(int);
+ void sendFrameUpdate();
+
+ /** @brief Returns a pointer to the main producer. */
+ Mlt::Producer *getProducer();
+ /** @brief Returns the number of clips to process (When requesting clip info). */
+ int processingItems();
+ /** @brief Processing of this clip is over, producer was set on clip, remove from list. */
+ void processingDone(const QString &id);
+ /** @brief Force processing of clip with selected id. */
+ void forceProcessing(const QString &id);
+ /** @brief Are we currently processing clip with selected id. */
+ bool isProcessing(const QString &id);
+
+ /** @brief Requests the file properties for the specified URL (will be put in a queue list)
+ @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 */
+ void getFileProperties(const QDomElement &xml, const QString &clipId, int imageHeight, bool replaceProducer = true);
+
+ /** @brief Lock the MLT service */
+ Mlt::Tractor *lockService();
+ /** @brief Unlock the MLT service */
+ void unlockService(Mlt::Tractor *tractor);
+ const QString activeClipId();
+ /** @brief Fill a combobox with the found blackmagic devices */
+ static bool getBlackMagicDeviceList(KComboBox *devicelist, bool force = false);
+ static bool getBlackMagicOutputDeviceList(KComboBox *devicelist, bool force = false);
+ /** @brief Frame rendering is handeled by Kdenlive, don't show video through SDL display */
+ void disablePreview(bool disable);
+ /** @brief Get current seek pos requested of SEEK_INACTIVE if we are not currently seeking */
+ int requestedSeekPosition;
+ /** @brief Get current seek pos requested of current producer pos if not seeking */
+ 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;
+
+protected:
+ static void consumer_frame_show(mlt_consumer, Render * self, mlt_frame frame_ptr);
+ static void consumer_gl_frame_show(mlt_consumer, Render * self, mlt_frame frame_ptr);
+