svn path=/branches/KDE4/; revision=2337
if (type->name().startsWith("image/")) {
prod.setAttribute("type", (int) IMAGE);
prod.setAttribute("in", "0");
if (type->name().startsWith("image/")) {
prod.setAttribute("type", (int) IMAGE);
prod.setAttribute("in", "0");
- prod.setAttribute("out", m_doc->getFramePos(KdenliveSettings::image_duration()));
+ prod.setAttribute("out", m_doc->getFramePos(KdenliveSettings::image_duration()) - 1);
}
AddClipCommand *command = new AddClipCommand(m_doc, prod, id, true);
m_doc->commandStack()->push(command);
}
AddClipCommand *command = new AddClipCommand(m_doc, prod, id, true);
m_doc->commandStack()->push(command);
uint id = m_clipIdCounter++;
prod.setAttribute("id", QString::number(id));
prod.setAttribute("in", "0");
uint id = m_clipIdCounter++;
prod.setAttribute("id", QString::number(id));
prod.setAttribute("in", "0");
- prod.setAttribute("out", m_doc->getFramePos(duration));
+ prod.setAttribute("out", m_doc->getFramePos(duration) - 1);
prod.setAttribute("name", name);
if (!group.isEmpty()) {
prod.setAttribute("groupname", group);
prod.setAttribute("name", name);
if (!group.isEmpty()) {
prod.setAttribute("groupname", group);
uint id = m_clipIdCounter++;
prod.setAttribute("id", QString::number(id));
prod.setAttribute("in", "0");
uint id = m_clipIdCounter++;
prod.setAttribute("id", QString::number(id));
prod.setAttribute("in", "0");
- prod.setAttribute("out", m_doc->getFramePos(duration) * count);
+ prod.setAttribute("out", m_doc->getFramePos(duration) * count - 1);
prod.setAttribute("ttl", m_doc->getFramePos(duration));
prod.setAttribute("luma_duration", m_doc->getFramePos(luma_duration));
prod.setAttribute("name", name);
prod.setAttribute("ttl", m_doc->getFramePos(duration));
prod.setAttribute("luma_duration", m_doc->getFramePos(luma_duration));
prod.setAttribute("name", name);
}
prod.setAttribute("type", (int) TEXT);
prod.setAttribute("in", "0");
}
prod.setAttribute("type", (int) TEXT);
prod.setAttribute("in", "0");
- prod.setAttribute("out", m_doc->getFramePos(KdenliveSettings::image_duration()));
+ prod.setAttribute("out", m_doc->getFramePos(KdenliveSettings::image_duration()) - 1);
AddClipCommand *command = new AddClipCommand(m_doc, prod, id, true);
m_doc->commandStack()->push(command);
}
AddClipCommand *command = new AddClipCommand(m_doc, prod, id, true);
m_doc->commandStack()->push(command);
}
break;
case 4:
tip.append(i18n("Color clip"));
break;
case 4:
tip.append(i18n("Color clip"));
- setData(1, DurationRole, Timecode::getEasyTimecode(GenTime(m_clip->getProperty("out").toInt(), 25), 25));
break;
case 5:
tip.append(i18n("Image clip") + "</b><br />" + clipUrl().path());
break;
case 5:
tip.append(i18n("Image clip") + "</b><br />" + clipUrl().path());
Mlt::Producer trackProducer(tractor.track(info.track));
Mlt::Playlist trackPlaylist((mlt_playlist) trackProducer.get_service());
Mlt::Producer trackProducer(tractor.track(info.track));
Mlt::Playlist trackPlaylist((mlt_playlist) trackProducer.get_service());
- /*if (prod == NULL) {
- // clip was never used yet
- QDomDocument doc;
- doc.appendChild(doc.importNode(element, true));
- QString resource = doc.toString();
- kDebug() << "// INSERTING CLIP: " << resource;
- char *tmp = decodedString(resource);
- prod = new Mlt::Producer(*m_mltProfile, "westley-xml", tmp);
- delete[] tmp;
- }*/
-
- Mlt::Producer *clip = prod->cut(info.cropStart.frames(m_fps), (info.endPos - info.startPos).frames(m_fps));
+ Mlt::Producer *clip = prod->cut(info.cropStart.frames(m_fps), (info.endPos - info.startPos).frames(m_fps) - 1);
trackPlaylist.insert_at((int) info.startPos.frames(m_fps), *clip, 1);
mlt_service_unlock(service.get_service());
trackPlaylist.insert_at((int) info.startPos.frames(m_fps), *clip, 1);
mlt_service_unlock(service.get_service());
Mlt::Producer trackProducer(tractor.track(startTrack));
Mlt::Playlist trackPlaylist((mlt_playlist) trackProducer.get_service());
int clipIndex = trackPlaylist.get_clip_index_at(moveStart + 1);
Mlt::Producer trackProducer(tractor.track(startTrack));
Mlt::Playlist trackPlaylist((mlt_playlist) trackProducer.get_service());
int clipIndex = trackPlaylist.get_clip_index_at(moveStart + 1);
if (endTrack == startTrack) {
//mlt_service_lock(service.get_service());
Mlt::Producer clipProducer(trackPlaylist.replace_with_blank(clipIndex));
trackPlaylist.consolidate_blanks(0);
if (endTrack == startTrack) {
//mlt_service_lock(service.get_service());
Mlt::Producer clipProducer(trackPlaylist.replace_with_blank(clipIndex));
trackPlaylist.consolidate_blanks(0);
if (!trackPlaylist.is_blank_at(moveEnd)) {
// error, destination is not empty
//int ix = trackPlaylist.get_clip_index_at(moveEnd);
if (!trackPlaylist.is_blank_at(moveEnd)) {
// error, destination is not empty
//int ix = trackPlaylist.get_clip_index_at(moveEnd);
+ kDebug()<<"// ERROR MOVING CLIP TO : "<<moveEnd;
mlt_service_unlock(m_mltConsumer->get_service());
m_isBlocked = false;
return false;
mlt_service_unlock(m_mltConsumer->get_service());
m_isBlocked = false;
return false;