Я занимался исследованиями весь день и не продвинулся далеко. Я нахожусь в Windows 7, использую directx 11. (Мой окончательный результат должен быть кадром видео на текстуре DX11). Я хочу декодировать некоторые очень большие видеофайлы H.264, а ЦП (с использованием libav) этого не делает. отрезать это.
Я рассмотрел возможности hwaccel libav с использованием DXVA2, но столкнулся с препятствием, когда мне нужно было создать IDirectXVideoDecoder, который можно создать только с помощью интерфейса D3D9. (чего у меня нет в DX11)
Всякий раз, когда я просматривал документацию DXVA, она не ссылалась на DX11, было ли это удалено в DX10 или 11? (Не могу найти ни подтверждения этому, ни где-либо еще, что говорило бы, что DXVA2 является избыточным, возможно, что он был заменен DXVA-HD?)
Затем я заглянул в SDK media Foundation, так как это похоже на то, что я должен использовать для DX11 ... Но ни один из типов не существует в моих заголовках (в документах говорится, что нужно просто включить ‹d3d11.h›, но это ничего не дает). Они также указывают как минимум Windows 8 для его использования.
Я считаю, что для использования MF мне нужен Windows 8 SDK, который теперь включает все библиотеки / заголовки directx.
Таким образом, это оставляет пробел с Windows 7 ... Можно ли получить аппаратное ускорение декодирования видео? и если да, то какой API я должен использовать?
Изменить: В качестве еще одного продолжения моя реализация MediaFoundation (и AVF, android, magic leap и т.д.) находится в моем проекте с открытым исходным кодом https://github.com/NewChromantics/PopH264 Edit2: Но я не знаю, поддерживает ли он win7 :)