LINUX.ORG.RU

Ищу C++ обертку над v4l (можно Qt)


0

1

$SUBJ

UPD: Подскажите что надо курить, чтобы реализовать банальный захват с камеры используя сабжевую либу. ТАм много частей, пока не понял что смотреть.



Последнее исправление: flareguner (всего исправлений: 2)

Ответ на: комментарий от com

Да, где-то на просторах интернета видел обвязку gstreamer для Qt. Кто-то начинал пилить. Да и phonon может его в качестве бэкэнда. Так что чисто гипотетически есть вероятность того что можно открыть v4l устройство с помощью Qt.

com
()
Ответ на: комментарий от com

Если найду в себе силы разобраться в этом дерьме -напишу Qt враппер для v4l.

flareguner
() автор топика

Ищу C++ обертку над v4l (можно Qt)

Ну ты совсем ленивый...

UPD: Подскажите что надо курить, чтобы реализовать банальный захват с камеры используя сабжевую либу. ТАм много частей, пока не понял что смотреть.

http://v4l2spec.bytesex.org/spec/capture-example.html

mv ★★★★★
()
Ответ на: комментарий от flareguner

Глупо. За час на основе этого кода я написал для себя нечто с таким интерфейсом:

typedef enum webcam_io_method {
        WEBCAM_IO_METHOD_READ,
        WEBCAM_IO_METHOD_MMAP,
        WEBCAM_IO_METHOD_USERPTR,
        WEBCAM_IO_METHOD_AUTO
} webcam_io_method_t;

struct webcam {
        int fd;

        webcam_io_method_t io;

        struct webcam_image_buffer *buffers;
        int n_buffers;

        unsigned char *img_data;
        int img_data_len;

        int width, height;

        struct v4lconvert_data *v4lconvert_data;
        struct v4l2_format *fmt, *src_fmt;
};

struct webcam* webcam_open(const char *dev, webcam_io_method_t mode, int w, int h); /* Open device */
int webcam_close(struct webcam* wc); /* Close device */
int webcam_wait_frame(struct webcam* wc, int secs); /* Wait for next frame, maximum secs seconds */
int webcam_start_capturing(struct webcam *wc); /* Start capturing */
int webcam_stop_capturing(struct webcam *wc); /* Stop capturing */

rymis ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.