Compartilhar via


Intrínsecos da câmera

Um driver de câmera (ou, como alternativa, por meio da DMFT) pode anexar um atributo de intrínsecos de câmera a um repositório de atributos de fluxo usando MFStreamExtension_PinholeCameraIntrinsics ou anexar a um repositório de atributos de quadro de mídia usando MFSampleExtension_PinholeCameraIntrinsics. Se ele estiver anexado a um repositório de atributos de fluxo, os valores dos intrínsecos da câmera não serão alterados durante o streaming da câmera. Se ele estiver anexado a um repositório de atributos de quadro de mídia, o valor intrínseco poderá ser alterado para cada quadro.

Para os dois atributos acima, o valor deve ser uma estrutura do tipo MFPinholeCameraIntrinsics, que relata uma lista de modelos intrínsecos da câmera. Cada entrada nessa lista é com o tipo MFPinholeCameraIntrinsic_IntrinsicModel, contendo uma resolução (largura/altura), um modelo pinhole e MFCameraIntrinsic_DistortionModel modelo de distorção.

Ao usar MFPinholeCameraIntrinsics com um repositório de atributos de fluxo, essa lista deve conter pelo menos um e, possivelmente, muitos modelos intrínsecos. O sistema escolherá o modelo intrínseco com base no formato de quadro de streaming ativamente, correspondendo à largura e à altura dos quadros. Se uma correspondência exata for encontrada, os intrínsecos serão usados. Caso contrário, os primeiros intrínsecos com a mesma taxa de proporção serão usados, por exemplo, quando a lista contiver duas entradas, 640x480 e 1920x1080, respectivamente. Se o streaming tiver um formato de mídia 1280x720, os intrínsecos de 1080p serão usados com dimensionamento adequado.

Ao usar MFPinholeCameraIntrinsics com um repositório de atributos de quadro de mídia, essa lista deve conter exatamente um modelo intrínseco com a mesma resolução que a resolução de quadros.