Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование в *nix (http://forum.oszone.net/forumdisplay.php?f=35)
-   -   веб-камера через video4linux2 (http://forum.oszone.net/showthread.php?t=168249)

pva 22-02-2010 23:13 1353628

веб-камера через video4linux2
 
Почему не идёт передачи данных? делаю всё по инструкции http://v4l2spec.bytesex.org/spec/book1.htm
/dev/video0 открылся, на рвзные запросы реагирует, отвечает что всё в порядке. Но потока данных нет :(
Код:

        {
                v4l2_requestbuffers reqbuf = {};
                //memset (&reqbuf, 0, sizeof (reqbuf));
                reqbuf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
                reqbuf.memory = V4L2_MEMORY_USERPTR;

                _logged(ioctl(_hvideo, VIDIOC_REQBUFS, &reqbuf), "request buffers");
       
                v4l2_buffer buffer = {};
//                memset (&map_buffer, 0, sizeof (map_buffer));
                buffer.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
                buffer.memory = V4L2_MEMORY_USERPTR;
                buffer.m.userptr = reinterpret_cast<long unsigned>(&frame_buffer[0]);
                buffer.length        = frame_buffer.size()*4;

                _logged(ioctl(_hvideo, VIDIOC_STREAMON, &reqbuf), "start stream");

                _logged(ioctl(_hvideo, VIDIOC_QBUF, &buffer), "queue buffer");
               
                sleep(10);
                //copy(frame_buffer.begin(), frame_buffer.end(), ostream_iterator<long,char>(cout, ", "));

                _logged(ioctl(_hvideo, VIDIOC_DQBUF, &buffer), "dequeue buffer");

                _logged(ioctl(_hvideo, VIDIOC_STREAMOFF, &reqbuf), "stop stream");

        }

между тем камера работает (проверял cheese, ffmpeg)


Время: 23:11.

Время: 23:11.
© OSzone.net 2001-