holaz

ho un problemino ...

sto scrivendo un software di acqusizione video su linux e sto usando dei buffer per acquisire i dati dalla scheda d'acquisizione video alla memoria

il codice è questo

codice:
        if (ioctl(video_fd, VIDIOC_QUERYBUF, &buffer) == -1)
        {
                perror("VIDIOC_QUERYBUF");
                exit(EXIT_FAILURE);
        }

        buffers[i].length = buffer.length;
        
        printf("%2i: %i/%li\n", i, buffer.length, sz);
        
        buffers[i].start = mmap(NULL, buffer.length, PROT_READ | PROT_WRITE, MAP_SHARED, video_fd, sz);

        if (buffers[i].start == MAP_FAILED)
        {
                perror("mmap");
                exit(EXIT_FAILURE);
        }
l'errore che mi restituisce perror è
mmap: Permission denied (ci sta l'mmap davanti per via di perror)

ovvero errno è impostato su 13

i parametri buffer.length e sz corrispondono rispettivamente a 233472 e 4096

video_fd è il File Descriptor del device e funziona perfettamente perché eseguo tutto le operazioni senza problemi

ora non so proprio cosa possa essere