+ /** @brief Saves current producer frame as an image. */
+ void exportCurrentFrame(const KUrl &url, bool notify);
+
+ /** @brief Change the Mlt PROFILE
+ * @param profileName The MLT profile name
+ * @param dropSceneList If true, the current playlist will be deleted
+ * @return true if the profile was changed
+ * . */
+ int resetProfile(const QString& profileName, bool dropSceneList = false);
+ /** @brief Returns true if the render uses profileName as current profile. */
+ bool hasProfile(const QString& profileName) const;
+ double fps() const;
+
+ /** @brief Returns the width of a frame for this profile. */
+ int frameRenderWidth() const;
+ /** @brief Returns the display width of a frame for this profile. */
+ int renderWidth() const;
+ /** @brief Returns the height of a frame for this profile. */
+ int renderHeight() const;
+
+ /** @brief Returns display aspect ratio. */
+ double dar() const;
+ /** @brief Returns sample aspect ratio. */
+ double sar() const;
+ /** @brief If monitor is active, refresh it. */
+ void refreshIfActive();
+ /** @brief Start the MLT monitor consumer. */
+ void startConsumer();
+
+ /*
+ * Playlist manipulation.
+ */
+ Mlt::Producer *checkSlowMotionProducer(Mlt::Producer *prod, QDomElement element);
+ int mltInsertClip(ItemInfo info, QDomElement element, Mlt::Producer *prod, bool overwrite = false, bool push = false);
+ bool mltUpdateClip(Mlt::Tractor *tractor, ItemInfo info, QDomElement element, Mlt::Producer *prod);
+ bool mltCutClip(int track, const 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 refresh = true);
+ bool mltResizeClipStart(ItemInfo info, GenTime diff);
+ bool mltResizeClipCrop(ItemInfo info, GenTime newCropStart);
+ bool mltMoveClip(int startTrack, int endTrack, GenTime pos, GenTime moveStart, Mlt::Producer *prod, bool overwrite = false, bool insert = false);
+ bool mltMoveClip(int startTrack, int endTrack, int pos, int moveStart, Mlt::Producer *prod, bool overwrite = false, bool insert = false);
+ bool mltRemoveClip(int track, GenTime position);
+
+ /** @brief Deletes an effect from a clip in MLT's playlist. */
+ bool mltRemoveEffect(int track, GenTime position, int index, bool updateIndex, bool doRefresh = true);
+ bool mltRemoveTrackEffect(int track, int index, bool updateIndex);
+
+ /** @brief Adds an effect to a clip in MLT's playlist. */
+ bool mltAddEffect(int track, GenTime position, EffectsParameterList params, bool doRefresh = true);
+ bool addFilterToService(Mlt::Service service, EffectsParameterList params, int duration);
+ bool mltAddEffect(Mlt::Service service, EffectsParameterList params, int duration, bool doRefresh);
+ bool mltAddTrackEffect(int track, EffectsParameterList params);
+
+ /** @brief Enable / disable clip effects.
+ * @param track The track where the clip is
+ * @param position The start position of the clip
+ * @param effectIndexes The list of effect indexes to enable / disable
+ * @param disable True if effects should be disabled, false otherwise */
+ bool mltEnableEffects(int track, const GenTime &position, const QList<int> &effectIndexes, bool disable);
+ /** @brief Enable / disable track effects.
+ * @param track The track where the effect is
+ * @param effectIndexes The list of effect indexes to enable / disable
+ * @param disable True if effects should be disabled, false otherwise */
+ bool mltEnableTrackEffects(int track, const QList<int> &effectIndexes, bool disable);
+
+ /** @brief Edits an effect parameters in MLT's playlist. */
+ bool mltEditEffect(int track, const GenTime &position, EffectsParameterList params);
+ bool mltEditTrackEffect(int track, EffectsParameterList params);
+
+ /** @brief Updates the "kdenlive_ix" (index) value of an effect. */
+ void mltUpdateEffectPosition(int track, const GenTime &position, int oldPos, int newPos);
+
+ /** @brief Changes the order of effects in MLT's playlist.
+ *
+ * It switches effects from oldPos and newPos, updating the "kdenlive_ix"
+ * (index) value. */
+ void mltMoveEffect(int track, const GenTime &position, int oldPos, int newPos);
+ void mltMoveTrackEffect(int track, int oldPos, int newPos);