Как Intel Media SDK использует d3d9 для рендеринга кадров
Я учусь использовать Intel Media SDK для декодирования потока h264, но я запутался, как Intel Media SDK отрисовывает рис с помощью d3d9.
Проблема в том, как скопировать данные декодированного изображения в mfxFrameSurface1:: mfxFrameData:: mfxMemId. посмотрите код, dxMemId->first является трансом к поверхности d3d. но почему он может это сделать?
mfxHDLPair* dxMemId = (mfxHDLPair*)pSurface->Data.MemId;
hr = m_pD3DD9->StretchRect((IDirect3DSurface9*)dxMemId->first, NULL, pBackBuffer, NULL, D3DTEXF_LINEAR);
Он декодирует кадр:
sts = m_pmfxDEC->DecodeFrameAsync(pBitstream, &(m_pCurrentFreeSurface->frame), &pOutSurface, &(m_pCurrentFreeOutputSurface->syncp));
DecodeFramAsync просто вызывает API:MFXVideoDECODE_DecodeFrameAsync.
Благодарю.