void CustomTrackView::addTrack(TrackInfo type, int ix)
{
- if (ix == -1) m_document->insertTrack(ix, type);
- else {
+ if (ix == -1 || ix == m_document->tracksCount()) {
+ m_document->insertTrack(ix, type);
+ m_document->renderer()->mltInsertTrack(1, type.type == VIDEOTRACK);
+ } else {
m_document->insertTrack(m_document->tracksCount() - ix, type);
// insert track in MLT playlist
m_document->renderer()->mltInsertTrack(m_document->tracksCount() - ix, type.type == VIDEOTRACK);
Mlt::Tractor tractor(service);
- Mlt::Playlist playlist;// = new Mlt::Playlist();
+ Mlt::Playlist playlist;
int ct = tractor.count();
- // kDebug() << "// TRACK INSERT: " << ix << ", MAX: " << ct;
+ if (ix > ct) {
+ kDebug() << "// ERROR, TRYING TO insert TRACK " << ix << ", max: " << ct;
+ ix = ct;
+ }
+
int pos = ix;
if (pos < ct) {
Mlt::Producer *prodToMove = new Mlt::Producer(tractor.track(pos));