J'ai essayé de coder un framegrabber pour une caméra firewire, en utilisant libdc1394. L'initialisation de la caméra est effectuée correctement, le mode vidéo est défini sur le DC1394_VIDEO_MODE_640x480_YUV422
pris en charge et le cadre est saisi sans aucune erreur.Problème avec le cadre capturé sur libdc1394
Le problème est, cependant, que la trame qui est retournée se compose de 640x480x1.5 octets, ce qui est en fait l'emballage YUV411. La structure de la trame vidéo indique également que le mode vidéo utilisé était YUV411.
Mais les données ne décodent pas réellement avec YUV411. Au lieu de YUV422 décodage produit une image valide, mais la région inférieure de l'image est manquante, évidemment en raison des données de trame manquant les derniers octets (YUV422 est de 16 bits par pixel, YUV411 est de 12 bits par pixel).
Maintenant, la caméra est conforme à la norme IIDC v1.30 et libdc1394 la prend en charge. Le seul mode vidéo pris en charge (comme indiqué par libdc1394) est utilisé et c'est celui que le manuel de l'appareil photo indique que la caméra utilise.
Je n'ai pas trouvé de solution à ce problème en recherchant sur Google. Des indices?