Доступ к устройству Direct3D внутри VMR9 - PullRequest
0 голосов
/ 13 ноября 2010

У меня есть фильтр видео декодера, который живет внутри графика с VMR9 или EVR в качестве видео рендерера.

VMR9 и EVR используют Direct3D для фактического рендеринга.С помощью EVR я могу относительно легко получить доступ к устройству D3D (я просто прошу его, используя IMFGetService :: GetService).

Однако VMR9 не предоставляет IMFGetService, и, в более общем смысле, IMFGetService, по-видимому, специфичен для Vista и выше, как и вся архитектура DXVA2.

Есть ли способ получить доступ к устройству Direct3Dвнутри VMR9?

1 Ответ

1 голос
/ 14 ноября 2010

у вас будет доступ к поверхностям dmd vmr9, если вы предоставите собственную реализацию распределителя / презентатора.

Посмотрите страницу msdn в режиме vmr без рендеринга.

http://msdn.microsoft.com/en-us/library/dd390957(VS.85).aspx

Вызов GetSurface - это то, что вам нужно для получения поверхности d3d: http://msdn.microsoft.com/en-us/library/dd390502(v=VS.85).aspx

GetSurface является частью интерфейса IVMRSurfaceAllocator9.

...