Рендеринг видео в текстуру Direct3D 9.0c

Я пытался воспроизвести видео в своем приложении Direct3D и пытался сделать это с помощью DirectShow. Моя проблема в том, что я не могу найти, как получить данные фрейма для помещения в текстуру (ISampleGrabber не будет установлен).

Кто-нибудь знает какие-либо методы или примеры этого?

1 ответ

Решение
  1. ISampleGrabber доступно во всех версиях Windows, выпущенных за последние 15 с лишним лет
  2. Найдите "Обновление Microsoft® DirectX® 9.0 SDK (октябрь 2004 г.)", в котором содержится пример приложения, которое выполняет именно то, что вам нужно:

Описание образца Texture3D

Рисует видео на текстурной поверхности Microsoft® Direct3D.

Примечание. Этот образец не поддерживает изменение свойств экрана монитора во время его работы.

Дорожка

Источник: (SDK root)\Samples\C++\DirectShow\Players\Texture3D

Исполняемый файл: (корень SDK)\Samples\C++\DirectShow\Bin\Texture3D.exe

ОБНОВИТЬ. Несмотря на то, что Sample Grabber существовал во многих версиях Windows, он был окончательно удален вместе с другими фильтрами, размещенными qedit.dll в самых последних версиях операционных систем (в частности, Windows Server 2008). Тем, чье приложение зависит от этого API, следует рассмотреть возможность замены с использованием образца Grabber из более старых SDK. То же самое относится к тем, кто нуждается в этом фильтре из-за большого количества ссылок в Интернете и учебных пособий о том, как использовать его для получения доступа к медиапотокам.

Фильтр был удален бесшумно и без какой-либо замены. Microsoft предполагает, что Media Foundation является альтернативным вариантом и преемником DirectShow, что вряд ли полезно.

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