void CountProducerWidget::on_durationSpinBox_editingFinished() { if (!m_producer) return; if (ui->durationSpinBox->value() == m_producer->get_length()) return; if (m_producer) { setLength(producer(), ui->durationSpinBox->value()); MLT.stop(); emit producerReopened(); emit producerChanged(producer()); MLT.seek(0); } }
void ImageProducerWidget::reopen(Mlt::Producer* p) { int out = ui->durationSpinBox->value() - 1; int position = m_producer->position(); if (out + 1 > p->get_length()) p->set("length", out + 1); p->set("out", out); if (position > p->get_out()) position = p->get_out(); p->set("in", m_producer->get_in()); if (MLT.setProducer(p)) { setProducer(0); return; } emit producerReopened(); emit producerChanged(); MLT.seek(position); setProducer(p); }