Как я могу настроить видео до указанного размера в режиме без рендеринга VMR9? - PullRequest
1 голос
/ 14 февраля 2011

Я хочу настроить видео для отображения в указанном окне, например, 320 * 240.

Я должен использовать режим VMR-9 Renderless для рендеринга на поверхность. Я использую метод IVMRMixerControl9-> SetOutputRect () для настройки размера видео. Так что я должен получить родной размер видео. Но я не знаю как.

Метод GetOutputRect всегда возвращает 0 и 1. Методы get_VideoHeight и get_VideoWidth возвращают E_NOINTERFACE. Но я делаю filterGraph с видеофайлом.

У меня неправильная идея или есть другой метод?

Заранее спасибо!

1 Ответ

2 голосов
/ 15 февраля 2011

Не уверен, поможет ли это вам, но вы смотрели на безоконный режим VMR?Вы можете указать дескриптор окна (например, UserControl) для отображения видео.В интерфейсе IVMRWindowlessControl9 вы можете вызвать GetNativeVideoSize, чтобы получить собственный размер окна и установить размер оттуда, а затем вызвать SetVideoPosition, чтобы указать, куда видео должно идти.В моем случае я использую ClientRectangle UserControl в качестве целевого прямоугольника и собственный размер видео в качестве исходного прямоугольника.

...