Функция MFCreateMediaBufferFromMediaType (mfapi.h)

Выделяет буфер системной памяти, оптимальный для указанного типа мультимедиа.

Синтаксис

HRESULT MFCreateMediaBufferFromMediaType(
  [in]  IMFMediaType   *pMediaType,
  [in]  LONGLONG       llDuration,
  [in]  DWORD          dwMinLength,
  [in]  DWORD          dwMinAlignment,
  [out] IMFMediaBuffer **ppBuffer
);

Параметры

[in] pMediaType

Указатель на интерфейс IMFMediaType типа носителя.

[in] llDuration

Длительность выборки. Это значение является обязательным для аудиоформатов.

[in] dwMinLength

Минимальный размер буфера в байтах. Фактический размер буфера может быть больше. Укажите ноль, чтобы выделить размер буфера по умолчанию для типа носителя.

[in] dwMinAlignment

Минимальное выравнивание памяти для буфера. Укажите ноль, чтобы использовать выравнивание памяти по умолчанию.

[out] ppBuffer

Получает указатель на интерфейс IMFMediaBuffer . Вызывающий объект должен освободить интерфейс .

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

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

Комментарии

Если формат видео распознается, функция создает двухмерный буфер, реализующий интерфейс IMF2DBuffer2 . В противном случае создается линейный буфер. Чтобы получить интерфейс IMF2DBuffer2 , вызовите QueryInterface для указателя, возвращаемого в ppBuffer. Если метод QueryInterface завершается ошибкой, используйте интерфейс IMFMediaBuffer для доступа к буферной памяти.

Для аудиоформатов функция выделяет буфер, который достаточно большой, чтобы содержать образцы звука llDuration или dwMinLength, в зависимости от того, какой размер больше.

Эта функция всегда выделяет системную память. Для поверхностей Direct3D используйте функцию MFCreateDXGISurfaceBuffer или MFCreateDXSurfaceBuffer .

Требования

   
Минимальная версия клиента Windows 8 [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2012 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header mfapi.h
Библиотека Mfplat.lib
DLL Mfplat.dll

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

Функции Media Foundation