MFT для видеопроцессоров

MFT видеопроцессор — это преобразование Microsoft Media Foundation (MFT), которое выполняет преобразование пространств цветов, изменение размера видео, деинтерлакирование, преобразование частоты кадров, поворот, обрезку, распаковка пространственного левого и правого представлений и зеркало.

CLSID

CLSID_VideoProcessorMFT

Интерфейсы

Форматы входных данных

  • MFVideoFormat_ARGB32
  • MFVideoFormat_AYUV
  • MFVideoFormat_I420
  • MFVideoFormat_IYUV
  • MFVideoFormat_NV11
  • MFVideoFormat_NV12
  • MFVideoFormat_RGB24
  • MFVideoFormat_RGB32
  • MFVideoFormat_RGB555
  • MFVideoFormat_RGB565
  • MFVideoFormat_RGB8
  • MFVideoFormat_UYVY
  • MFVideoFormat_v410
  • MFVideoFormat_Y216
  • MFVideoFormat_Y41P
  • MFVideoFormat_Y41T
  • MFVideoFormat_Y42T
  • MFVideoFormat_YUY2
  • MFVideoFormat_YV12
  • MFVideoFormat_YVYU

Форматы выходных данных

  • MFVideoFormat_ARGB32
  • MFVideoFormat_AYUV
  • MFVideoFormat_I420
  • MFVideoFormat_IYUV
  • MFVideoFormat_NV12
  • MFVideoFormat_RGB24
  • MFVideoFormat_RGB32
  • MFVideoFormat_RGB555
  • MFVideoFormat_RGB565
  • MFVideoFormat_UYVY
  • MFVideoFormat_Y216
  • MFVideoFormat_YUY2
  • MFVideoFormat_YV12

Не все сочетания форматов входных и выходных данных поддерживаются. Чтобы проверить, поддерживается ли преобразование, задайте тип входных данных и вызовите МВФTransform::GetOutputAvailableType.

Дополнительные сведения об этих форматах см. в разделе Идентификаторы GUID подтипа видео.

Замечания

Экземпляр видеопроцессоров можно создать одним из следующих способов:

  • Вызывая MFTEnumEx. Обработчик видео зарегистрирован в категории MFT_CATEGORY_VIDEO_PROCESSOR .
  • Вызывая COM-функцию CoCreateInstance, передав ее CLSID_VideoProcessorMFT CLSID.

Следующие замечания относятся к работе с исходными прямоугольниками и прямоугольниками назначения в MFT обработчика видео. Исходные и целевые прямоугольники задаются с помощью МВФVideoProcessorControl::SetDestinationRectangle и SetSourceRectangle, а иногда и с МВФMediaEngineEx::UpdateVideoStream.

  • Исходный прямоугольник должен быть выровнен и округлен, чтобы соответствовать требованиям цветового формата кадра, входного в процессор видео. Это важно, так как такие форматы, как 420 и 422, имеют требования к измерениям и смещениям, к которым можно получить доступ. Например, исходный прямоугольник {1, 0, 319, 240} (слева, сверху, справа, вниз) округляется до {2, 0, 320, 240}, когда входной формат равен 420.
  • Целевой и исходный прямоугольник всегда будут зажаты, чтобы поместиться внутри соответствующих кадров — исходный прямоугольник к исходному кадру и целевому прямоугольнику к целевому кадру. Это означает, что отрицательные значения не являются значимыми— они всегда будут зажаты на 0.
  • Исходный прямоугольник находится в системе координат целевого кадра, минус любой прямоугольник назначения. Это означает, что преобразования, такие как поворот, являются "отложенными" на исходном прямоугольнике. Таким образом, вам не нужно знать, был ли видео повернут или распакована 3D. Например, можно нарисовать прямоугольник поверх тега видео, взять относительные координаты (относительно тега видео), нормализовать их (диапазон от 0 до 1) и передать их в качестве исходного прямоугольника, и они должны работать должным образом, даже если видео поворачивается.

Процессор видео поддерживает обработку видео с ускорением GPU с помощью Microsoft Direct3D 11. Дополнительные сведения см. в MF_SA_D3D11_AWARE.

Стереоскопическое видео

Обработчик видео поддерживает операцию распаковки представления в трехмерных видеокадрах:

Если входной кадр содержит два представления, упакованные в один кадр, обработчик видео может разделить представления на отдельные буферы или извлечь базовое представление и вывести его карта втором представлении. Чтобы включить распаковку представления, задайте для атрибута MF_ENABLE_3DVIDEO_OUTPUT значение MF3DVideoOutputType_Stereo или MF3DVideoOutputType_BaseView.

Requirements

Требование Значение
Верхний колонтитул
Камера uicontrol.h

См. также

Процессоры цифровых сигналов