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

#directx #directshow #video-processing #directx-9 #direct3d9

#directx #directshow #обработка видео #directx-9 #direct3d9

Вопрос:

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

Кто-нибудь знает о каких-либо методах или примерах, как это делается?

Ответ №1:

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

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

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

Обратите внимание, что этот пример не поддерживает изменение свойств отображения монитора во время выполнения примера.

Путь

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

Исполняемый файл: (корень SDK)SamplesC DirectShowBinTexture3D.exe

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

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

Комментарии:

1. У меня есть SDK от июня 2010, но его там нет.

2. Вы должны получить более старую текстуру (см. Ответ), чтобы получить образец. Позже он был удален из SDK.

3. Я загрузил «Обновление Microsoft Windows SDK для Windows Vista и .NET Framework 3.0», и в нем есть нужные мне заголовки. Я также нашел образцы онлайн

4. Я нигде не могу найти Texture3D образец. Тем не менее, я нашел Texture3D9 Sample , который есть в Windows SDK версии 6.1: microsoft.com/en-us/download/details.aspx?id=24826