Я создал плагин Unity для своего приложения UWP, который преобразует необработанные пакеты h264 в данные RGB и отображает их в виде текстуры.Я использовал FFMPEG для этого, и он отлично работает.
int framefinished = avcodec_send_packet(m_pCodecCtx, &packet);
framefinished = avcodec_receive_frame(m_pCodecCtx, m_pFrame);
// YUV to RGB conversion and render to texture after this
Теперь я пытаюсь перейти на аппаратное декодирование с использованием DirectX11 DXVA2.0.
Используя это: https://docs.microsoft.com/en-us/windows/desktop/medfound/supporting-direct3d-11-video-decoding-in-media-foundation
Мне удалось создать декодер (ID3D11VideoDecoder), но я не знаю, как передать ему необработанные пакеты H264 и получить данные YUV или NV12 в качестве вывода.(Или, если возможно, визуализировать вывод непосредственно в текстуру, поскольку я могу получить указатель ID3D11Texture2D)
, поэтому мой вопрос: как вы отправляете необработанные пакеты h264 в этот декодер и получаете выходные данные из него?
Кроме того, это для работы в реальном времени, поэтому я пытаюсь достичь минимальной задержки.
Заранее спасибо!