Как 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.

Благодарю.

0 ответов

Другие вопросы по тегам