我正在尝试使用Decklink sdk从HDMI输入中获取图像,我使用的是Windows 7 64位,Visual Studio C#Express 2010和EmguCV 2.4.0。
我的设置是
_BMDDisplayModeSupport displayModeSupport; IDeckLinkDisplayMode displayMode = null;
_BMDDisplayMode setDisplayMode = _BMDDisplayMode .bmdModeHD720p60;
_BMDPixelFormat setPixelFormat = _BMDPixelFormat .bmdFormat8BitYUV;
_BMDVideoInputFlags setInputFlag = _BMDVideoInputFlags .bmdVideoInputFlagDefault;
_deckLinkInput.DoesSupportVideoMode(setDisplayMode, setPixelFormat, setInputFlag, out displayModeSupport, out displayMode);
_deckLinkInput.SetScreenPreviewCallback( this );
try
{
_deckLinkInput.DisableAudioInput();
_deckLinkInput.EnableVideoInput(setDisplayMode, setPixelFormat, setInputFlag);
}
catch (Exception em)
{
Console .WriteLine("deck link init failed: " + em.Message);
}
_deckLinkInput.SetCallback( this );
我已启用回调功能,我可能会看到框架进入我的电脑
int frameCount = 0;
public void VideoInputFrameArrived( IDeckLinkVideoInputFrame video, IDeckLinkAudioInputPacket audio)
{
IntPtr pData;
video.GetBytes( out pData);
frameCount++;
System.Runtime.InteropServices. Marshal .ReleaseComObject(video);
}
现在我想将pData转移到MIplimage,我该怎么做? 我想我必须将帧从YUV传输到RBGA,然后将RBGA帧传输到MIplimage。 我看到使用DirectShow解决问题的示例,但我不熟悉它。 有什么办法搞清楚吗?感谢。