X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fcustomtrackview.cpp;h=9a53b99526d588cf8492cc707f5fdad1a4a3bc54;hb=6c819d9cd57a199efc99ec3f6a4a54eae9a232c0;hp=6e9706fe05adee5248c0d4310e95239ae1172862;hpb=563a57ad4786d528755a99973cf3bffbdce96bcf;p=kdenlive diff --git a/src/customtrackview.cpp b/src/customtrackview.cpp index 6e9706fe..9a53b995 100644 --- a/src/customtrackview.cpp +++ b/src/customtrackview.cpp @@ -7641,7 +7641,23 @@ void CustomTrackView::slotImportClipKeyframes(GRAPHICSRECTITEM type) return; } QString keyframeData = ui.data_list->itemData(ui.data_list->currentIndex()).toString(); - QStringList keyframeList = keyframeData.split(';', QString::SkipEmptyParts); + + int offset = item->cropStart().frames(m_document->fps()); + Mlt::Geometry geometry(keyframeData.toUtf8().data(), item->baseClip()->maxDuration().frames(m_document->fps()), m_document->mltProfile().width, m_document->mltProfile().height); + Mlt::Geometry newGeometry(QString().toUtf8().data(), item->baseClip()->maxDuration().frames(m_document->fps()), m_document->mltProfile().width, m_document->mltProfile().height); + Mlt::GeometryItem gitem; + geometry.fetch(&gitem, offset); + gitem.frame(0); + newGeometry.insert(gitem); + int pos = offset + 1; + while (!geometry.next_key(&gitem, pos)) { + pos = gitem.frame(); + gitem.frame(pos - offset); + pos++; + newGeometry.insert(gitem); + } + QStringList keyframeList = QString(newGeometry.serialise()).split(';', QString::SkipEmptyParts); + QString result; if (ui.import_position->isChecked()) { if (ui.import_size->isChecked()) {