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


Примеры видео

Образец видео представляет собой специализированную реализацию интерфейса IMFSample для использования с улучшенным видеообработчиком (EVR). Чтобы создать экземпляр этого объекта, вызовите функцию MFCreateVideoSampleFromSurface. Функция принимает указатель на поверхность Direct3D и возвращает указатель на интерфейс IMFSample. Следующие типы объектов должны выделять примеры с помощью этой функции:

Пример видео-объекта реализует следующие интерфейсы:

Если параметр pUnkSurfaceMFCreateVideoSampleFromSurface не равенNULL, полученный видеопример содержит один буфер мультимедиа, который инкапсулирует поверхность Direct3D. Этот объект буфера имеет ограниченные функциональные возможности:

Единственным способом доступа к поверхности из буфера является вызов IMFGetService::GetServiceс помощью идентификатора службы MR_BUFFER_SERVICE.

Если параметр pUnkSurfaceNULL, образец видео создается без буферов мультимедиа. Чтобы буферизовать образец, сделайте следующее:

  1. Создайте поверхность Direct3D.

  2. Создайте буфер поверхности, вызвав MFCreateDXSurfaceBuffer. Для получения дополнительной информации см. буфер поверхности DirectX.

  3. Добавьте буфер в пример, вызвав IMFSample::AddBuffer.

Используйте этот подход, если требуется доступ к памяти поверхности через интерфейс IMF2DBuffer.

мультимедийные буферы

примеры мультимедиа