class DocClipBase;
class Transition;
+namespace Mlt
+{
+class Producer;
+};
class ClipItem : public AbstractClipItem
{
void resetThumbs(bool clearExistingThumbs);
/** @brief Updates clip properties from base clip.
- * @param checkDuration whether or not to check for a valid duration. */
- void refreshClip(bool checkDuration);
+ * @param checkDuration whether or not to check for a valid duration.
+ * @param resetThumbs whether or not to recreate the image thumbnails. */
+ void refreshClip(bool checkDuration, bool resetThumbs);
/** @brief Gets clip's marker times.
* @return A list of the times. */
* @param current New crop value
* @param fromStart true = crop from start, false = crop from end
* @return true if anything was modified */
- bool checkEffectsKeyframesPos(const int previous, const int current, bool fromStart, int renderWidth = 0, int renderHeight = 0);
+ bool checkEffectsKeyframesPos(const int previous, const int current, bool fromStart);
void insertKeyframe(QDomElement effect, int pos, int val);
void movedKeyframe(QDomElement effect, int oldpos, int newpos, double value);
void updateKeyframes(QDomElement effect);
+ /** @brief Updates the keyframes in the pan and zoom effect to fit the clips cropDuration.
+ * @param width Render width
+ * @param height Render height
+ * @param cut (optional) if clip was cut, cut position relative to the original's clip position
+ * @return List of the pan and zoom effects indexes
+ *
+ * Can be used for all effects using mlt_geometry with keyframes, but at the moment Pan & Zoom is the only one. */
+ QList <int> updatePanZoom(int width, int height, int cut = 0);
+
+ /** Returns the necessary (audio, video, general) producer.
+ * @param track Track of the requested producer
+ * @param trackSpecific (default = true) Whether to return general producer for a specific track.
+ * @return Fitting producer
+ * Which producer is returned depends on the type of this clip (audioonly, videoonly, normal) */
+ Mlt::Producer *getProducer(int track, bool trackSpecific = true);
protected:
//virtual void mouseMoveEvent(QGraphicsSceneMouseEvent * event);