HRESULT CDeckLinkGLWidget::QueryInterface(REFIID iid, LPVOID *ppv)
{
- Q_UNUSED(iid);
+ Q_UNUSED(iid)
*ppv = NULL;
return E_NOINTERFACE;
}
} else {
QImage image(videoFrame->GetWidth(), videoFrame->GetHeight(), QImage::Format_ARGB32_Premultiplied);
//convert from uyvy422 to rgba
- CaptureHandler::yuv2rgb((uchar *)frameBytes, (uchar *)image.bits(), videoFrame->GetWidth(), videoFrame->GetHeight());
+ CaptureHandler::uyvy2rgb((uchar *)frameBytes, (uchar *)image.bits(), videoFrame->GetWidth(), videoFrame->GetHeight());
image.save(capturePath);
emit frameSaved(capturePath);
}
videoFrame->Release();
}
+void DeckLinkCaptureDelegate::setAnalyse(bool isOn)
+{
+ m_analyseFrame = isOn;
+}
+
HRESULT DeckLinkCaptureDelegate::VideoInputFrameArrived(IDeckLinkVideoInputFrame* videoFrame, IDeckLinkAudioInputPacket* audioFrame)
{
IDeckLinkVideoFrame* rightEyeFrame = NULL;
doCaptureFrame.clear();
QtConcurrent::run(this, &DeckLinkCaptureDelegate::slotProcessFrame);
}
+ if (m_analyseFrame) {
+ QImage image(videoFrame->GetWidth(), videoFrame->GetHeight(), QImage::Format_ARGB32_Premultiplied);
+ //convert from uyvy422 to rgba
+ videoFrame->GetBytes(&frameBytes);
+ CaptureHandler::uyvy2rgb((uchar *)frameBytes, (uchar *)image.bits(), videoFrame->GetWidth(), videoFrame->GetHeight());
+ emit gotFrame(image);
+ }
if (videoOutputFile != -1) {
- videoFrame->GetBytes(&frameBytes);
+ if (!m_analyseFrame) videoFrame->GetBytes(&frameBytes);
write(videoOutputFile, frameBytes, videoFrame->GetRowBytes() * videoFrame->GetHeight());
if (rightEyeFrame) {
HRESULT DeckLinkCaptureDelegate::VideoInputFormatChanged(BMDVideoInputFormatChangedEvents events, IDeckLinkDisplayMode *mode, BMDDetectedVideoInputFormatFlags)
{
- Q_UNUSED(events);
- Q_UNUSED(mode);
+ Q_UNUSED(events)
+ Q_UNUSED(mode)
return S_OK;
}
}
delegate = new DeckLinkCaptureDelegate();
+ delegate->setAnalyse(m_analyseFrame);
connect(delegate, SIGNAL(gotTimeCode(ulong)), this, SIGNAL(gotTimeCode(ulong)));
+ connect(delegate, SIGNAL(gotFrame(QImage)), this, SIGNAL(gotFrame(QImage)));
connect(delegate, SIGNAL(gotMessage(const QString &)), this, SIGNAL(gotMessage(const QString &)));
connect(delegate, SIGNAL(frameSaved(const QString)), this, SIGNAL(frameSaved(const QString)));
deckLinkInput->SetCallback(delegate);
if (previewView) previewView->hideOverlay();
}
+void BmdCaptureHandler::setDevice(const QString , QString)
+{
+}
+
void BmdCaptureHandler::hidePreview(bool hide)
{
if (previewView) previewView->setHidden(hide);