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


Встроенные функции камеры

Драйвер камеры (или, в качестве альтернативы, через DMFT) может присоединить встроенный атрибут камеры к хранилищу атрибутов потока с помощью MFStreamExtension_PinholeCameraIntrinsics или присоединиться к хранилищу атрибутов кадра мультимедиа с помощью MFSampleExtension_PinholeCameraIntrinsics. Если он присоединен к хранилищу атрибутов потока, значения встроенных элементов камеры не изменяются во время потоковой передачи камеры. Если он присоединен к хранилищу атрибутов кадра мультимедиа, то значение встроенных элементов может изменяться для каждого кадра.

Для двух указанных выше атрибутов значение должно быть структурой типа MFPinholeCameraIntrinsics, которая сообщает список встроенных моделей камеры. Каждая запись в этом списке имеет тип MFPinholeCameraIntrinsic_IntrinsicModel, содержащий разрешение (ширину или высоту), модель точечных значений и модель искажения MFCameraIntrinsic_DistortionModel .

При использовании MFPinholeCameraIntrinsics с хранилищем атрибутов потока этот список должен содержать по крайней мере одну и, возможно, много встроенных моделей. Система выбирает встроенную модель на основе формата активной потоковой передачи кадров, сопоставляя ширину и высоту кадров. Если найдено точное совпадение, будут использоваться встроенные компоненты. В противном случае будут использоваться первые встроенные элементы с одинаковыми пропорциями, например, если список содержит две записи, 640x480 и 1920x1080 соответственно. При потоковой передаче с форматом мультимедиа 1280x720 будут использоваться встроенные компоненты 1080p с правильным масштабированием.

При использовании MFPinholeCameraIntrinsics с хранилищем атрибутов кадра мультимедиа этот список должен содержать ровно одну встроенную модель с тем же разрешением, что и разрешение кадра.