Question

J'essaie d'écrire un pilote compatible V4L2 pour un appareil photo spécial que je possède, mais l'appareil ne semble pas particulièrement convivial avec le système tampon de V4L2.Au lieu des tampons alloués séparément, il souhaite un seul bloc de mémoire contigu capable de contenir un ensemble de tampons (généralement 4), puis il fournit un registre d'état vous indiquant quel est le plus récent (mis à jour après chaque trame DMA). à l'hôte).Il n'a donc besoin que d'un seul gros morceau de mémoire alloué au DMA pour fonctionner, et non de 4 probablement séparés.

Comment puis-je l'utiliser avec V4L ?Tout ce que je vois VIDIOC_CREATE_BUFS, VIDIOC_REQBUFS et c'est le cas de l'allocation interne des tampons, et je ne peux rien obtenir de basé sur V4L (comme qv4l2 travailler sans succès QBUF et DQBUF qui utilise leur structure interne.

Comment cela peut-il être fait?

Était-ce utile?

La solution

Juste pour terminer, j'ai finalement trouvé une solution dans le pilote "meye".J'ai supprimé tout VB2 et écrit mes propres reqbuf, querybuf, qbuf et dqbuf, ainsi que mes propres routines mmap pour gérer l'allocation.Et tout fonctionne !

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top