Функция 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 |