Mlt::Frame frame(frame_ptr);
if (frame.get_double("_speed") == 0) self->emitConsumerStopped();
else if (frame.get_double("_speed") < 0.0 && mlt_frame_get_position(frame_ptr) <= 0) {
self->pause();
self->emitConsumerStopped(true);
}
Mlt::Frame frame(frame_ptr);
if (frame.get_double("_speed") == 0) self->emitConsumerStopped();
else if (frame.get_double("_speed") < 0.0 && mlt_frame_get_position(frame_ptr) <= 0) {
self->pause();
self->emitConsumerStopped(true);
}
}
Render::Render(Kdenlive::MONITORID rendererName, int winid, QString profile, QWidget *parent) :
AbstractRender(rendererName, parent),
requestedSeekPosition(SEEK_INACTIVE),
}
Render::Render(Kdenlive::MONITORID rendererName, int winid, QString profile, QWidget *parent) :
AbstractRender(rendererName, parent),
requestedSeekPosition(SEEK_INACTIVE),
connect(&m_refreshTimer, SIGNAL(timeout()), this, SLOT(refresh()));
connect(this, SIGNAL(multiStreamFound(const QString &,QList<int>,QList<int>,stringMap)), this, SLOT(slotMultiStreamProducerFound(const QString &,QList<int>,QList<int>,stringMap)));
connect(this, SIGNAL(checkSeeking()), this, SLOT(slotCheckSeeking()));
connect(&m_refreshTimer, SIGNAL(timeout()), this, SLOT(refresh()));
connect(this, SIGNAL(multiStreamFound(const QString &,QList<int>,QList<int>,stringMap)), this, SLOT(slotMultiStreamProducerFound(const QString &,QList<int>,QList<int>,stringMap)));
connect(this, SIGNAL(checkSeeking()), this, SLOT(slotCheckSeeking()));
m_mltConsumer->set("terminate_on_pause", 0);
m_mltConsumer->set("deinterlace_method", "onefield");
m_mltConsumer->set("rescale", "nearest");
m_mltConsumer->set("buffer", "1");
m_mltConsumer->set("real_time", KdenliveSettings::mltthreads());
}
m_mltConsumer->set("terminate_on_pause", 0);
m_mltConsumer->set("deinterlace_method", "onefield");
m_mltConsumer->set("rescale", "nearest");
m_mltConsumer->set("buffer", "1");
m_mltConsumer->set("real_time", KdenliveSettings::mltthreads());
}
KMessageBox::information(qApp->activeWindow(), i18n("Your project's profile %1 is not compatible with the blackmagic output card. Please see supported profiles below. Switching to normal video display.", m_mltProfile->description()));
}
}
KMessageBox::information(qApp->activeWindow(), i18n("Your project's profile %1 is not compatible with the blackmagic output card. Please see supported profiles below. Switching to normal video display.", m_mltProfile->description()));
}
}
QString videoDriver = KdenliveSettings::videodrivername();
if (!videoDriver.isEmpty()) {
if (videoDriver == "x11_noaccel") {
QString videoDriver = KdenliveSettings::videodrivername();
if (!videoDriver.isEmpty()) {
if (videoDriver == "x11_noaccel") {
if (m_mltConsumer) {
m_mltConsumer->set("terminate_on_pause", 0);
m_mltConsumer->set("deinterlace_method", "onefield");
if (m_mltConsumer) {
m_mltConsumer->set("terminate_on_pause", 0);
m_mltConsumer->set("deinterlace_method", "onefield");
if (KdenliveSettings::external_display() && m_activeProfile == profileName) return 1;
QString videoDriver = KdenliveSettings::videodrivername();
QString currentDriver = m_mltConsumer->get("video_driver");
if (KdenliveSettings::external_display() && m_activeProfile == profileName) return 1;
QString videoDriver = KdenliveSettings::videodrivername();
QString currentDriver = m_mltConsumer->get("video_driver");
requestedSeekPosition = time;
m_mltProducer->seek(time);
//m_mltConsumer->purge();
requestedSeekPosition = time;
m_mltProducer->seek(time);
//m_mltConsumer->purge();
{
int currentPos = m_mltConsumer->position();
if (currentPos == requestedSeekPosition) requestedSeekPosition = SEEK_INACTIVE;
emit rendererPosition(currentPos);
{
int currentPos = m_mltConsumer->position();
if (currentPos == requestedSeekPosition) requestedSeekPosition = SEEK_INACTIVE;
emit rendererPosition(currentPos);
QImage qimage(width, height, QImage::Format_ARGB32_Premultiplied);
memcpy(qimage.scanLine(0), image, width * height * 4);
QImage qimage(width, height, QImage::Format_ARGB32_Premultiplied);
memcpy(qimage.scanLine(0), image, width * height * 4);