Mlt::Producer* JackProducerWidget::newProducer(Mlt::Profile& profile) { Mlt::Producer* p = new Mlt::Producer(profile, "jack:Shotcut"); p->set(kBackgroundCaptureProperty, 1); p->set(kShotcutCaptionProperty, "JACK"); return p; }
Mlt::Producer* IsingWidget::producer(Mlt::Profile& profile) { Mlt::Producer* p = new Mlt::Producer(profile, "frei0r.ising0r"); p->set(kParamTemperature, ui->tempSpinner->text().toLatin1().constData()); p->set(kParamBorderGrowth, ui->borderGrowthSpinner->text().toLatin1().constData()); p->set(kParamSpontaneous, ui->spontGrowthSpinner->text().toLatin1().constData()); return p; }
Mlt::Producer* PlasmaWidget::producer(Mlt::Profile& profile) { Mlt::Producer* p = new Mlt::Producer(profile, "frei0r.plasma"); p->set(kParamSpeed1, ui->speed1Spinner->text().toAscii().constData()); p->set(kParamSpeed2, ui->speed2Spinner->text().toAscii().constData()); p->set(kParamSpeed3, ui->speed3Spinner->text().toAscii().constData()); p->set(kParamSpeed4, ui->speed4Spinner->text().toAscii().constData()); p->set(kParamMove1, ui->move1Spinner->text().toAscii().constData()); p->set(kParamMove2, ui->move2Spinner->text().toAscii().constData()); return p; }
Mlt::Producer* AlsaWidget::newProducer(Mlt::Profile& profile) { QString s("alsa:%1"); if (ui->lineEdit->text().isEmpty()) s = s.arg("default"); else s = s.arg(ui->lineEdit->text()); if (ui->alsaChannelsSpinBox->value() > 0) s += QString("?channels=%1").arg(ui->alsaChannelsSpinBox->value()); Mlt::Producer* p = new Mlt::Producer(profile, s.toUtf8().constData()); p->set(kBackgroundCaptureProperty, 1); p->set(kShotcutCaptionProperty, "ALSA"); return p; }
Mlt::Producer *BinController::getBinVideoProducer(const QString &id) { QString videoId = id + "_video"; if (!m_extraClipList.contains(videoId)) { // create clone QString originalId = id.section(QStringLiteral("_"), 0, 0); Mlt::Producer *original = getBinProducer(originalId); Mlt::Producer *videoOnly = cloneProducer(*original); videoOnly->set("audio_index", -1); videoOnly->set("id", videoId.toUtf8().constData()); m_extraClipList.insert(videoId, videoOnly); return videoOnly; } return m_extraClipList.value(videoId); }
Mlt::Producer* DecklinkProducerWidget::producer(Mlt::Profile& profile) { Mlt::Producer* p = new Mlt::Producer(profile, QString("consumer:decklink:%1").arg(ui->deviceCombo->currentIndex()).toAscii().constData()); if (p->is_valid()) p->set("profile", ui->profileCombo->itemData(ui->profileCombo->currentIndex()).toString().toAscii().constData()); return p; }
void ClearCommand::undo() { m_model.close(); Mlt::Producer* producer = new Mlt::Producer(MLT.profile(), "xml-string", m_xml.toUtf8().constData()); if (producer->is_valid()) { producer->set("resource", "<playlist>"); MAIN.open(producer); MLT.pause(); MAIN.seekPlaylist(0); } }
Mlt::Producer* ColorBarsWidget::producer(Mlt::Profile& profile) { Mlt::Producer* p = new Mlt::Producer(profile, "frei0r.test_pat_B"); p->set(kParamType, ui->comboBox->currentIndex()); if (profile.sample_aspect_num() == 16 && profile.sample_aspect_den() == 15) p->set(kParamAspect, map_value_backward(ASPECT_PAL, 0, 6.9999)); else if (profile.sample_aspect_num() == 64 && profile.sample_aspect_den() == 45) p->set(kParamAspect, map_value_backward(ASPECT_PAL_WIDE, 0, 6.9999)); else if (profile.sample_aspect_num() == 8 && profile.sample_aspect_den() == 9) p->set(kParamAspect, map_value_backward(ASPECT_NTSC, 0, 6.9999)); else if (profile.sample_aspect_num() == 32 && profile.sample_aspect_den() == 27) p->set(kParamAspect, map_value_backward(ASPECT_NTSC_WIDE, 0, 6.9999)); else if (profile.sample_aspect_num() == 4 && profile.sample_aspect_den() == 3) p->set(kParamAspect, map_value_backward(ASPECT_HDV, 0, 6.9999)); p->set(kShotcutCaptionProperty, ui->comboBox->currentText().toUtf8().constData()); p->set(kShotcutDetailProperty, ui->comboBox->currentText().toUtf8().constData()); return p; }
Mlt::Producer* CountProducerWidget::newProducer(Mlt::Profile& profile) { Mlt::Producer* p = new Mlt::Producer(profile, "count:"); p->set("direction", currentDirection().toLatin1().constData()); p->set("style", currentStyle().toLatin1().constData()); p->set("sound", currentSound().toLatin1().constData()); p->set("background", currentBackground().toLatin1().constData()); p->set("drop", ui->dropCheckBox->isChecked()); setLength(p, ui->durationSpinBox->value()); p->set(kShotcutCaptionProperty, ui->nameLabel->text().toUtf8().constData()); p->set(kShotcutDetailProperty, detail().toUtf8().constData()); return p; }
void BinController::replaceProducer(const QString &id, Mlt::Producer &producer) { ClipController *ctrl = m_clipList.value(id); if (!ctrl) { qDebug()<<" / // error controller not found, crashing"; return; } pasteEffects(id, producer); ctrl->updateProducer(id, &producer); replaceBinPlaylistClip(id, producer); emit prepareTimelineReplacement(id); producer.set("id", id.toUtf8().constData()); // Remove video only producer QString videoId = id + "_video"; if (m_extraClipList.contains(videoId)) { m_extraClipList.remove(videoId); } removeBinPlaylistClip("#" + id); emit replaceTimelineProducer(id); }
Mlt::Producer* Video4LinuxWidget::newProducer(Mlt::Profile& profile) { if (!profile.is_explicit()) { Mlt::Profile ntscProfile("dv_ntsc"); Mlt::Profile palProfile("dv_pal"); if (ui->v4lWidthSpinBox->value() == ntscProfile.width() && ui->v4lHeightSpinBox->value() == ntscProfile.height()) { profile.set_sample_aspect(ntscProfile.sample_aspect_num(), ntscProfile.sample_aspect_den()); profile.set_progressive(ntscProfile.progressive()); profile.set_colorspace(ntscProfile.colorspace()); profile.set_frame_rate(ntscProfile.frame_rate_num(), ntscProfile.frame_rate_den()); } else if (ui->v4lWidthSpinBox->value() == palProfile.width() && ui->v4lHeightSpinBox->value() == palProfile.height()) { profile.set_sample_aspect(palProfile.sample_aspect_num(), palProfile.sample_aspect_den()); profile.set_progressive(palProfile.progressive()); profile.set_colorspace(palProfile.colorspace()); profile.set_frame_rate(palProfile.frame_rate_num(), palProfile.frame_rate_den()); } else { profile.set_width(ui->v4lWidthSpinBox->value()); profile.set_height(ui->v4lHeightSpinBox->value()); profile.set_sample_aspect(1, 1); profile.set_progressive(1); profile.set_colorspace(601); profile.set_frame_rate(ui->v4lFramerateSpinBox->value() * 10000, 10000); } } Mlt::Producer* p = new Mlt::Producer(profile, URL().toLatin1().constData()); if (!p->is_valid()) { delete p; p = new Mlt::Producer(profile, "color:"); p->set("resource1", QString("video4linux2:%1") .arg(ui->v4lLineEdit->text()).toLatin1().constData()); p->set("error", 1); } else if (m_audioWidget) { Mlt::Producer* audio = dynamic_cast<AbstractProducerWidget*>(m_audioWidget)->newProducer(profile); Mlt::Tractor* tractor = new Mlt::Tractor; tractor->set("_profile", profile.get_profile(), 0); tractor->set_track(*p, 0); delete p; tractor->set_track(*audio, 1); delete audio; p = new Mlt::Producer(tractor->get_producer()); delete tractor; p->set("resource1", QString("video4linux2:%1") .arg(ui->v4lLineEdit->text()).toLatin1().constData()); } p->set("device", ui->v4lLineEdit->text().toLatin1().constData()); p->set("width", ui->v4lWidthSpinBox->value()); p->set("height", ui->v4lHeightSpinBox->value()); if (ui->v4lFramerateSpinBox->value() > 0) p->set("framerate", ui->v4lFramerateSpinBox->value()); p->set("standard", ui->v4lStandardCombo->currentText().toLatin1().constData()); p->set("channel", ui->v4lChannelSpinBox->value()); p->set("audio_ix", ui->v4lAudioComboBox->currentIndex()); p->set("force_seekable", 0); p->set(kBackgroundCaptureProperty, 1); p->set(kShotcutCaptionProperty, "Video4Linux"); return p; }
Mlt::Producer *DirectShowVideoWidget::producer(Mlt::Profile& profile) { #if 0 if (!profile.is_explicit()) { Mlt::Profile ntscProfile("dv_ntsc"); Mlt::Profile palProfile("dv_pal"); if (ui->v4lWidthSpinBox->value() == ntscProfile.width() && ui->v4lHeightSpinBox->value() == ntscProfile.height()) { profile.set_sample_aspect(ntscProfile.sample_aspect_num(), ntscProfile.sample_aspect_den()); profile.set_progressive(ntscProfile.progressive()); profile.set_colorspace(ntscProfile.colorspace()); profile.set_frame_rate(ntscProfile.frame_rate_num(), ntscProfile.frame_rate_den()); } else if (ui->v4lWidthSpinBox->value() == palProfile.width() && ui->v4lHeightSpinBox->value() == palProfile.height()) { profile.set_sample_aspect(palProfile.sample_aspect_num(), palProfile.sample_aspect_den()); profile.set_progressive(palProfile.progressive()); profile.set_colorspace(palProfile.colorspace()); profile.set_frame_rate(palProfile.frame_rate_num(), palProfile.frame_rate_den()); } else { profile.set_width(ui->v4lWidthSpinBox->value()); profile.set_height(ui->v4lHeightSpinBox->value()); profile.set_sample_aspect(1, 1); profile.set_progressive(1); profile.set_colorspace(601); profile.set_frame_rate(ui->v4lFramerateSpinBox->value() * 10000, 10000); } } #endif Mlt::Producer* p = 0; if (ui->videoCombo->currentIndex() > 0) { p = new Mlt::Producer(profile, QString("dshow:video=%1") .arg(ui->videoCombo->currentText()) .toLatin1().constData()); } if (ui->audioCombo->currentIndex() > 0) { Mlt::Producer* audio = new Mlt::Producer(profile, QString("dshow:audio=%1").arg(ui->audioCombo->currentText()) .toLatin1().constData()); if (p && p->is_valid() && audio->is_valid()) { Mlt::Tractor* tractor = new Mlt::Tractor; tractor->set("_profile", profile.get_profile(), 0); tractor->set("resource", p->get("resource")); tractor->set("resource2", audio->get("resource")); tractor->set_track(*p, 0); delete p; tractor->set_track(*audio, 1); delete audio; p = tractor; } else { p = audio; } } if (!p || !p->is_valid()) { delete p; p = new Mlt::Producer(profile, "color:"); if (ui->videoCombo->currentIndex() > 0) { p->set("resource", QString("dshow:video=%1") .arg(ui->videoCombo->currentText()) .toLatin1().constData()); } if (ui->audioCombo->currentIndex() > 0) { QString resource = QString("dshow:audio=%1").arg(ui->audioCombo->currentText()); if (ui->videoCombo->currentIndex() > 0) { p->set("resource2", resource.toLatin1().constData()); } else { p->set("resource", resource.toLatin1().constData()); } } p->set("error", 1); } p->set("force_seekable", 0); return p; }