}
}
-Render::Render(const QString & rendererName, int winid, QString profile, QWidget *parent) :
+Render::Render(Kdenlive::MONITORID rendererName, int winid, QString profile, QWidget *parent) :
AbstractRender(rendererName, parent),
m_name(rendererName),
m_mltConsumer(NULL),
m_mltConsumer->connect(*m_mltProducer);
m_mltProducer->set_speed(0.0);
m_refreshTimer.setSingleShot(true);
- m_refreshTimer.setInterval(50);
+ m_refreshTimer.setInterval(70);
connect(&m_refreshTimer, SIGNAL(timeout()), this, SLOT(refresh()));
}
return 0;
}
-const QString & Render::rendererName() const
-{
- return m_name;
-}
-
void Render::emitFrameUpdated(Mlt::Frame& frame)
{
mlt_image_format format = mlt_image_rgb24a;
const uchar* image = frame.get_image(format, width, height);
QImage qimage(width, height, QImage::Format_RGB888);
memcpy(qimage.bits(), image, width * height * 3);*/
- emit frameUpdated(qimage);
+ emit frameUpdated(qimage.rgbSwapped());
}
void Render::emitFrameNumber()
return QString();
}
+//static
+bool Render::getBlackMagicDeviceList(KComboBox *devicelist)
+{
+ Mlt::Profile profile;
+ Mlt::Producer bm(profile, "decklink");
+ int found_devices = 0;
+ if (bm.is_valid()) found_devices = bm.get_int("devices");
+ if (found_devices <= 0) {
+ devicelist->setEnabled(false);
+ return false;
+ }
+ for (int i = 0; i < found_devices; i++) {
+ char *tmp = qstrdup(QString("device.%1").arg(i).toUtf8().constData());
+ devicelist->addItem(bm.get(tmp));
+ delete[] tmp;
+ }
+ return true;
+}
+
+bool Render::getBlackMagicOutputDeviceList(KComboBox *devicelist)
+{
+ Mlt::Profile profile;
+ Mlt::Consumer bm(profile, "decklink");
+ int found_devices = 0;
+ if (bm.is_valid()) found_devices = bm.get_int("devices");
+ if (found_devices <= 0) {
+ devicelist->setEnabled(false);
+ return false;
+ }
+ for (int i = 0; i < found_devices; i++) {
+ char *tmp = qstrdup(QString("device.%1").arg(i).toUtf8().constData());
+ devicelist->addItem(bm.get(tmp));
+ delete[] tmp;
+ }
+ return true;
+}
+
#include "renderer.moc"