[英]Getting a frame from a Blackmagic device
我正在尝试使用Balckagic SDK。 而且我无法获得设备“ DeckLink SDI”的框架
void get_video(IDeckLink* decklink){
HRESULT result;
IDeckLinkInput* decklinkinput = NULL;
BSTR name = NULL;
IDeckLinkDisplayModeIterator* displayModeIterator = NULL;
IDeckLinkInputCallback* theCallback = NULL;
IDeckLinkVideoInputFrame* decklinkInputVideoframe =NULL;
IDeckLinkDisplayMode* displayMode = NULL;
IDeckLinkVideoInputFrame* inputVideoFrame;
IDeckLinkAudioInputPacket* inputAudioPacket;
IBMDStreamingDeviceInput* capture;
IDeckLinkVideoFrame* deckLinkVideoFrame = NULL;
unsigned long avaibleFrames = NULL;
result = decklink->QueryInterface(IID_IDeckLinkInput,(void**) &decklinkinput);
result = decklinkinput->GetDisplayModeIterator(&displayModeIterator);
result = decklinkinput->SetCallback(theCallback);
result = decklinkinput->EnableVideoInput(BMDDisplayMode::bmdModeHD1080i50,BMDPixelFormat::bmdFormat8BitYUV,bmdVideoInputEnableFormatDetection);
result = decklinkinput->DisableAudioInput();
result = decklinkinput->StartStreams();
decklinkinput->GetAvailableVideoFrameCount(&avaibleFrames);
cout<<"Number of avaible frames " << avaibleFrames<<endl;
result = decklinkinput->SetCallback(theCallback);
theCallback->VideoInputFrameArrived(inputVideoFrame, inputAudioPacket);
result = decklinkinput->StopStreams();
}
而且我没有语法错误,我得到的只是fram的数量为0。而且我不知道如何保存框架。 非常感谢您的帮助。
看一下代码示例。 过程:
现在,每当有框架可用时,Decklink SDK就会使用刚处理的框架调用已注册的回调函数。 从上面的帖子中,我感觉到您不了解回调的概念。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.