void CustomTrackView::addEffect(int track, GenTime pos, QDomElement effect)
{
- ClipItem *clip = getClipItemAt((int)pos.frames(m_document->fps()) + 1, m_document->tracksCount() - track);
+ ClipItem *clip = getClipItemAt((int)pos.frames(m_document->fps()), m_document->tracksCount() - track);
if (clip) {
// Special case: speed effect
if (effect.attribute("id") == "speed") {
QString index = effect.attribute("kdenlive_ix");
// Special case: speed effect
if (effect.attribute("id") == "speed") {
- ClipItem *clip = getClipItemAt((int)pos.frames(m_document->fps()) + 1, m_document->tracksCount() - track);
+ ClipItem *clip = getClipItemAt((int)pos.frames(m_document->fps()), m_document->tracksCount() - track);
if (clip) {
ItemInfo info = clip->info();
doChangeClipSpeed(info, 1.0, clip->speed(), 1, clip->baseClip()->getId());
emit displayMessage(i18n("Problem deleting effect"), ErrorMessage);
return;
}
- ClipItem *clip = getClipItemAt((int)pos.frames(m_document->fps()) + 1, m_document->tracksCount() - track);
+ ClipItem *clip = getClipItemAt((int)pos.frames(m_document->fps()), m_document->tracksCount() - track);
if (clip) {
clip->deleteEffect(index);
emit clipItemSelected(clip);
void CustomTrackView::updateEffect(int track, GenTime pos, QDomElement insertedEffect, int ix, bool triggeredByUser)
{
- ClipItem *clip = getClipItemAt((int)pos.frames(m_document->fps()) + 1, m_document->tracksCount() - track);
+ ClipItem *clip = getClipItemAt((int)pos.frames(m_document->fps()), m_document->tracksCount() - track);
QDomElement effect = insertedEffect.cloneNode().toElement();
if (clip) {
// Special case: speed effect
void CustomTrackView::moveEffect(int track, GenTime pos, int oldPos, int newPos)
{
- ClipItem *clip = getClipItemAt((int)pos.frames(m_document->fps()) + 1, m_document->tracksCount() - track);
+ ClipItem *clip = getClipItemAt((int)pos.frames(m_document->fps()), m_document->tracksCount() - track);
if (clip && !clip->effectAt(newPos - 1).isNull() && !clip->effectAt(oldPos - 1).isNull()) {
QDomElement act = clip->effectAt(newPos - 1).cloneNode().toElement();
QDomElement before = clip->effectAt(oldPos - 1).cloneNode().toElement();
// uncut clip
ClipItem *item = getClipItemAt((int) info.startPos.frames(m_document->fps()), info.track);
- ClipItem *dup = getClipItemAt((int) cutTime.frames(m_document->fps()) + 1, info.track);
+ ClipItem *dup = getClipItemAt((int) cutTime.frames(m_document->fps()), info.track);
if (!item || !dup || item == dup) {
emit displayMessage(i18n("Cannot find clip to uncut"), ErrorMessage);
m_blockRefresh = false;
Mlt::Tractor tractor(service);
Mlt::Producer trackProducer(tractor.track(track));
Mlt::Playlist trackPlaylist((mlt_playlist) trackProducer.get_service());
- int clipIndex = trackPlaylist.get_clip_index_at(pos + 1);
+ int clipIndex = trackPlaylist.get_clip_index_at(pos);
Mlt::Producer *clipProducer = trackPlaylist.replace_with_blank(clipIndex);
- if (clipProducer->is_blank()) {
+ if (clipProducer == NULL || clipProducer->is_blank()) {
kDebug() << "// ERROR UPDATING CLIP PROD";
delete clipProducer;
mlt_service_unlock(m_mltConsumer->get_service());