[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kdenlive/refactoring_timeline] src/timeline2/model: detect speed when creating clipmodel
From: Nicolas Carion <null () kde ! org>
Date: 2018-04-30 22:26:41
Message-ID: E1fDHFp-0003w7-GQ () code ! kde ! org
[Download RAW message or body]
Git commit 7761e619af1f1fbf50811177cf1c7e45dbcf8586 by Nicolas Carion.
Committed on 30/04/2018 at 22:27.
Pushed by alcinos into branch 'refactoring_timeline'.
detect speed when creating clipmodel
M +10 -3 src/timeline2/model/clipmodel.cpp
M +4 -1 src/timeline2/model/clipmodel.hpp
https://commits.kde.org/kdenlive/7761e619af1f1fbf50811177cf1c7e45dbcf8586
diff --git a/src/timeline2/model/clipmodel.cpp b/src/timeline2/model/clipmodel.cpp
index 24fa750b1..98f2056da 100644
--- a/src/timeline2/model/clipmodel.cpp
+++ b/src/timeline2/model/clipmodel.cpp
@@ -35,12 +35,15 @@
#include "gentime.h"
#include <effects/effectsrepository.hpp>
-ClipModel::ClipModel(std::shared_ptr<TimelineModel> parent, \
std::shared_ptr<Mlt::Producer> prod, const QString &binClipId, int id) \
+ClipModel::ClipModel(std::shared_ptr<TimelineModel> parent, \
std::shared_ptr<Mlt::Producer> prod, const QString &binClipId, int id, PlaylistState \
state, + double speed)
: MoveableItem<Mlt::Producer>(parent, id)
, m_producer(std::move(prod))
, m_effectStack(EffectStackModel::construct(m_producer, \
{ObjectType::TimelineClip, m_id}, parent->m_undoStack)) , m_binClipId(binClipId)
, forceThumbReload(false)
+ , m_currentState(state)
+ , m_speed(speed)
{
m_producer->set("kdenlive:id", binClipId.toUtf8().constData());
m_producer->set("_kdenlive_cid", m_id);
@@ -65,7 +68,7 @@ int ClipModel::construct(const std::shared_ptr<TimelineModel> \
&parent, const QSt
std::shared_ptr<Mlt::Producer> cutProducer = binClip->getTimelineProducer(id, \
state, 1.);
- std::shared_ptr<ClipModel> clip(new ClipModel(parent, cutProducer, binClipId, \
id)); + std::shared_ptr<ClipModel> clip(new ClipModel(parent, cutProducer, \
binClipId, id, state)); clip->setClipState(state);
parent->registerClip(clip);
return id;
@@ -87,8 +90,12 @@ int ClipModel::construct(const std::shared_ptr<TimelineModel> \
&parent, const QSt videoAudio.second = videoAudio.second && binClip->hasAudio();
state = stateFromBool(videoAudio);
+ double speed = 1.0;
+ if (QString::fromUtf8(producer->get("mlt_service")) == \
QLatin1String("timewarp")) { + speed = producer->get_double("warp_speed");
+ }
auto result = binClip->giveMasterAndGetTimelineProducer(id, producer, state);
- std::shared_ptr<ClipModel> clip(new ClipModel(parent, result.first, binClipId, \
id)); + std::shared_ptr<ClipModel> clip(new ClipModel(parent, result.first, \
binClipId, id, state, speed)); clip->m_effectStack->importEffects(producer, \
result.second); clip->setClipState(state);
parent->registerClip(clip);
diff --git a/src/timeline2/model/clipmodel.hpp b/src/timeline2/model/clipmodel.hpp
index 9c6b32ad8..b7781cdf2 100644
--- a/src/timeline2/model/clipmodel.hpp
+++ b/src/timeline2/model/clipmodel.hpp
@@ -47,7 +47,8 @@ class ClipModel : public MoveableItem<Mlt::Producer>
protected:
/* This constructor is not meant to be called, call the static construct instead \
*/
- ClipModel(std::shared_ptr<TimelineModel> parent, std::shared_ptr<Mlt::Producer> \
prod, const QString &binClipId, int id = -1); + \
ClipModel(std::shared_ptr<TimelineModel> parent, std::shared_ptr<Mlt::Producer> prod, \
const QString &binClipId, int id, PlaylistState state, + double speed = \
1.);
public:
~ClipModel();
@@ -160,6 +161,8 @@ protected:
bool forceThumbReload; // Used to trigger a forced thumb reload, when producer \
changes
PlaylistState m_currentState;
+
+ double m_speed = -1; // Speed of the clip
};
#endif
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic