Рендеринг видео в Direct3D 9.0c текстуру - PullRequest
1 голос
/ 13 ноября 2011

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

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

1 Ответ

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

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

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

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

Путь

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

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

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

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

...