Поделиться через


Метод IVMRSurfaceAllocator::P repareSurface (strmif.h)

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

Метод PrepareSurface подготавливает поверхность DirectDraw к декодированию следующего видеокадра.

Синтаксис

HRESULT PrepareSurface(
  [in] DWORD_PTR            dwUserID,
  [in] LPDIRECTDRAWSURFACE7 lpSurface,
  [in] DWORD                dwSurfaceFlags
);

Параметры

[in] dwUserID

Определенный приложением DWORD_PTR файл cookie, который однозначно идентифицирует этот экземпляр VMR для использования в сценариях, когда один экземпляр allocator-presenter используется с несколькими экземплярами VMR.

[in] lpSurface

Задает поверхность DirectDraw.

[in] dwSurfaceFlags

Двойное слово, содержащее флаги поверхности. См. заметки.

Возвращаемое значение

Если метод завершается успешно, возвращает значение S_OK. В противном случае функция возвращает код ошибки.

Комментарии

Единственным флагом, который в настоящее время проверяет vmr, является AM_GBF_NOTASYNCPOINT (0x00000002), который указывает, что вы не собираетесь заполнять этот буфер точкой синхронизации (ключевым кадром).

Требования

Требование Значение
Минимальная версия клиента Windows XP с пакетом обновления 1 (SP1) [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header strmif.h (включая Dshow.h)
Библиотека Strmiids.lib

См. также раздел

Интерфейс IVMRSurfaceAllocator

Использование отрисовщика для смешанного видео