Есть ли какие-нибудь хорошие примеры, показывающие, как рендерить IMFSample
вывод декодера H.264? В моем сценарии используется поток H.264 с разрешением 4K, и компьютер, на который я нацелен, будет принимать только 1080p с использованием буферов DXGI. Но декодер H.264 будет обрабатывать 4K, поэтому мне нужно найти способ передать этот NV12 IMFSample
непосредственно в рендерер DirectX 11. Я уже пробовал использовать образец DX11VideoRenderer, но он терпит неудачу из-за того, что этот конкретный IMFSample
не имеет IMFDXGIBuffer
интерфейса.
Похоже, что в DX11VideoRenderer вход IMFDXGIBuffer
относится к типу NV12, и его можно успешно визуализировать на оборудовании. Кажется логичным, что не-DXGI-буфер типа NV12 тоже должен быть приемлемым?
Возможно, мне нужно создать ID3D11Texture2D
текстуру или ресурс типа NV12? Я нашел примеры того, как создать текстуру из файла, но не о том, как создать текстуру из образца, что могло бы быть даже более полезным. И если я могу создать текстуру NV12, как определить значения SysMemPitch
и SysMemSlicePitch
в структуре D3D11_SUBRESOURCE_DATA
для NV12?
Любая помощь могла бы быть полезна! Спасибо.
memcpy
сD3D11_MAPPED_SUBRESOURCE
в коде ссылки заменяетCreateVideoProcessorInputView
,CreateVideoProcessorOutputView
иVideoProcessorBlt
, которые, как я вижу, используются в примере DX11VideoRenderer? - person Gary G.   schedule 20.05.2018