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);
}