Рендеринг видео в текстуру Direct3D 9.0c
Я пытался воспроизвести видео в своем приложении Direct3D и пытался сделать это с помощью DirectShow. Моя проблема в том, что я не могу найти, как получить данные фрейма для помещения в текстуру (ISampleGrabber не будет установлен).
Кто-нибудь знает какие-либо методы или примеры этого?
1 ответ
ISampleGrabber
доступно во всех версиях Windows, выпущенных за последние 15 с лишним лет- Найдите "Обновление 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, что вряд ли полезно.