Gabriel A. Devenyi wrote: > Marcel van Beurden wrote: >> Sounds great! After installing the jpeg libs I could build it and run >> it. But when I run it, it hangs after printing this: >> >> [EMAIL PROTECTED]:~/download/uvccapture-0.4$ ./uvccapture -v >> Using videodevice: /dev/video0 >> Saving images to: snap.jpg >> Image size: 320x240 >> Taking snapshot every 0 seconds >> Taking images using mmap >> Resetting camera settings >> Camera brightness level is 127 >> Camera contrast level is 32 >> Camera saturation level is 32 >> Camera gain level is 0 >> >> When I press ctrl-C, it prints "Exiting...", but it still hangs. I can >> only kill the process. And no snap.jpg either... :-( > > Try adding an additional -v to the call to increase verbosity, it looks > like its hanging at uvcGrab, if this is true, it should hang right after > printing "Grabbing Frame". If you have strace could you please post the > output of "strace ./uvccapture -v -v" thanks.
This is what I get: execve("./uvccapture", ["./uvccapture", "-v", "-v"], [/* 23 vars */]) = 0 uname({sys="Linux", node="debian", ...}) = 0 brk(0) = 0x804d000 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xa7f0a000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xa7f09000 open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=33396, ...}) = 0 mmap2(NULL, 33396, PROT_READ, MAP_PRIVATE, 3, 0) = 0xa7f00000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/usr/lib/libjpeg.so.62", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360#\0"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0644, st_size=127488, ...}) = 0 mmap2(NULL, 130444, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xa7ee0000 mmap2(0xa7eff000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1e) = 0xa7eff000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/tls/libc.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260O\1"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=1270928, ...}) = 0 mmap2(NULL, 1276892, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xa7da8000 mmap2(0xa7ed6000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12e) = 0xa7ed6000 mmap2(0xa7ede000, 7132, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xa7ede000 close(3) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xa7da7000 mprotect(0xa7ed6000, 20480, PROT_READ) = 0 set_thread_area({entry_number:-1 -> 6, base_addr:0xa7da76c0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0 munmap(0xa7f00000, 33396) = 0 rt_sigaction(SIGINT, {0x8048c30, [INT], SA_RESTART}, {SIG_DFL}, 8) = 0 rt_sigaction(SIGQUIT, {0x8048c30, [QUIT], SA_RESTART}, {SIG_DFL}, 8) = 0 rt_sigaction(SIGKILL, {0x8048c30, [KILL], SA_RESTART}, {SIG_DFL}, 8) = -1 EINVAL (Invalid argument) rt_sigaction(SIGTERM, {0x8048c30, [TERM], SA_RESTART}, {SIG_DFL}, 8) = 0 rt_sigaction(SIGABRT, {0x8048c30, [ABRT], SA_RESTART}, {SIG_DFL}, 8) = 0 rt_sigaction(SIGTRAP, {0x8048c30, [TRAP], SA_RESTART}, {SIG_DFL}, 8) = 0 write(2, "Using videodevice: /dev/video0\n", 31Using videodevice: /dev/video0 ) = 31 write(2, "Saving images to: snap.jpg\n", 27Saving images to: snap.jpg ) = 27 write(2, "Image size: 320x240\n", 20Image size: 320x240 ) = 20 write(2, "Taking snapshot every 0 seconds\n", 32Taking snapshot every 0 seconds ) = 32 write(2, "Taking images using mmap\n", 25Taking images using mmap ) = 25 brk(0) = 0x804d000 brk(0x806e000) = 0x806e000 open("/dev/video0", O_RDWR) = 3 ioctl(3, VIDIOC_QUERYCAP or VT_OPENQRY, 0x804d018) = 0 ioctl(3, VIDIOC_S_FMT or VT_RELDISP, 0x804d080) = 0 ioctl(3, VIDIOC_REQBUFS or VT_DISALLOCATE, 0x804d190) = 0 ioctl(3, VIDIOC_QUERYBUF or VT_RESIZE, 0x804d14c) = 0 mmap2(NULL, 42666, PROT_READ, MAP_SHARED, 3, 0) = 0xa7d9c000 ioctl(3, VIDIOC_QUERYBUF or VT_RESIZE, 0x804d14c) = 0 mmap2(NULL, 42666, PROT_READ, MAP_SHARED, 3, 0xb) = 0xa7d91000 ioctl(3, VIDIOC_QUERYBUF or VT_RESIZE, 0x804d14c) = 0 mmap2(NULL, 42666, PROT_READ, MAP_SHARED, 3, 0x16) = 0xa7d86000 ioctl(3, VIDIOC_QUERYBUF or VT_RESIZE, 0x804d14c) = 0 mmap2(NULL, 42666, PROT_READ, MAP_SHARED, 3, 0x21) = 0xa7d7b000 ioctl(3, VIDIOC_QUERYBUF or VT_RESIZE, 0x804d14c) = 0 mmap2(NULL, 42666, PROT_READ, MAP_SHARED, 3, 0x2c) = 0xa7d70000 ioctl(3, VIDIOC_QUERYBUF or VT_RESIZE, 0x804d14c) = 0 mmap2(NULL, 42666, PROT_READ, MAP_SHARED, 3, 0x37) = 0xa7d65000 ioctl(3, VIDIOC_QUERYBUF or VT_RESIZE, 0x804d14c) = 0 mmap2(NULL, 42666, PROT_READ, MAP_SHARED, 3, 0x42) = 0xa7d5a000 ioctl(3, VIDIOC_QUERYBUF or VT_RESIZE, 0x804d14c) = 0 mmap2(NULL, 42666, PROT_READ, MAP_SHARED, 3, 0x4d) = 0xa7d4f000 ioctl(3, VIDIOC_QUERYBUF or VT_RESIZE, 0x804d14c) = 0 mmap2(NULL, 42666, PROT_READ, MAP_SHARED, 3, 0x58) = 0xa7d44000 ioctl(3, VIDIOC_QUERYBUF or VT_RESIZE, 0x804d14c) = 0 mmap2(NULL, 42666, PROT_READ, MAP_SHARED, 3, 0x63) = 0xa7d39000 ioctl(3, VIDIOC_QUERYBUF or VT_RESIZE, 0x804d14c) = 0 mmap2(NULL, 42666, PROT_READ, MAP_SHARED, 3, 0x6e) = 0xa7d2e000 ioctl(3, VIDIOC_QUERYBUF or VT_RESIZE, 0x804d14c) = 0 mmap2(NULL, 42666, PROT_READ, MAP_SHARED, 3, 0x79) = 0xa7d23000 ioctl(3, VIDIOC_QUERYBUF or VT_RESIZE, 0x804d14c) = 0 mmap2(NULL, 42666, PROT_READ, MAP_SHARED, 3, 0x84) = 0xa7d18000 ioctl(3, VIDIOC_QUERYBUF or VT_RESIZE, 0x804d14c) = 0 mmap2(NULL, 42666, PROT_READ, MAP_SHARED, 3, 0x8f) = 0xa7d0d000 ioctl(3, VIDIOC_QUERYBUF or VT_RESIZE, 0x804d14c) = 0 mmap2(NULL, 42666, PROT_READ, MAP_SHARED, 3, 0x9a) = 0xa7d02000 ioctl(3, VIDIOC_QUERYBUF or VT_RESIZE, 0x804d14c) = 0 mmap2(NULL, 42666, PROT_READ, MAP_SHARED, 3, 0xa5) = 0xa7cf7000 ioctl(3, VIDIOC_QBUF, 0x804d14c) = 0 ioctl(3, VIDIOC_QBUF, 0x804d14c) = 0 ioctl(3, VIDIOC_QBUF, 0x804d14c) = 0 ioctl(3, VIDIOC_QBUF, 0x804d14c) = 0 ioctl(3, VIDIOC_QBUF, 0x804d14c) = 0 ioctl(3, VIDIOC_QBUF, 0x804d14c) = 0 ioctl(3, VIDIOC_QBUF, 0x804d14c) = 0 ioctl(3, VIDIOC_QBUF, 0x804d14c) = 0 ioctl(3, VIDIOC_QBUF, 0x804d14c) = 0 ioctl(3, VIDIOC_QBUF, 0x804d14c) = 0 ioctl(3, VIDIOC_QBUF, 0x804d14c) = 0 ioctl(3, VIDIOC_QBUF, 0x804d14c) = 0 ioctl(3, VIDIOC_QBUF, 0x804d14c) = 0 ioctl(3, VIDIOC_QBUF, 0x804d14c) = 0 ioctl(3, VIDIOC_QBUF, 0x804d14c) = 0 ioctl(3, VIDIOC_QBUF, 0x804d14c) = 0 mmap2(NULL, 155648, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xa7cd1000 mmap2(NULL, 159744, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xa7caa000 write(2, "Resetting camera settings\n", 26Resetting camera settings ) = 26 ioctl(3, MATROXFB_TVOQUERYCTRL or VIDIOC_QUERYCTRL, 0xafd1e5d4) = 0 ioctl(3, MATROXFB_S_TVOCTRL or VIDIOC_S_CTRL, 0xafd1e618) = 0 ioctl(3, MATROXFB_TVOQUERYCTRL or VIDIOC_QUERYCTRL, 0xafd1e5d4) = 0 ioctl(3, MATROXFB_S_TVOCTRL or VIDIOC_S_CTRL, 0xafd1e618) = 0 ioctl(3, MATROXFB_TVOQUERYCTRL or VIDIOC_QUERYCTRL, 0xafd1e5d4) = 0 ioctl(3, MATROXFB_S_TVOCTRL or VIDIOC_S_CTRL, 0xafd1e618) = 0 ioctl(3, MATROXFB_TVOQUERYCTRL or VIDIOC_QUERYCTRL, 0xafd1e5d4) = 0 ioctl(3, MATROXFB_S_TVOCTRL or VIDIOC_S_CTRL, 0xafd1e618) = 0 ioctl(3, MATROXFB_TVOQUERYCTRL or VIDIOC_QUERYCTRL, 0xafd1e5d4) = 0 ioctl(3, MATROXFB_G_TVOCTRL or VIDIOC_G_CTRL, 0xafd1e618) = 0 write(2, "Camera brightness level is 127\n", 31Camera brightness level is 127 ) = 31 ioctl(3, MATROXFB_TVOQUERYCTRL or VIDIOC_QUERYCTRL, 0xafd1e5d4) = 0 ioctl(3, MATROXFB_G_TVOCTRL or VIDIOC_G_CTRL, 0xafd1e618) = 0 write(2, "Camera contrast level is 32\n", 28Camera contrast level is 32 ) = 28 ioctl(3, MATROXFB_TVOQUERYCTRL or VIDIOC_QUERYCTRL, 0xafd1e5d4) = 0 ioctl(3, MATROXFB_G_TVOCTRL or VIDIOC_G_CTRL, 0xafd1e618) = 0 write(2, "Camera saturation level is 32\n", 30Camera saturation level is 32 ) = 30 ioctl(3, MATROXFB_TVOQUERYCTRL or VIDIOC_QUERYCTRL, 0xafd1e5d4) = 0 ioctl(3, MATROXFB_G_TVOCTRL or VIDIOC_G_CTRL, 0xafd1e618) = 0 write(2, "Camera gain level is 0\n", 23Camera gain level is 0 ) = 23 time(NULL) = 1154087871 write(2, "Grabbing frame\n", 15Grabbing frame ) = 15 ioctl(3, VIDIOC_STREAMON, 0xafd1e618) = 0 ioctl(3, VIDIOC_DQBUF, 0x804d14c) = ? ERESTARTSYS (To be restarted) --- SIGTERM (Terminated) @ 0 (0) --- write(2, "Exiting...\n", 11Exiting... ) = 11 sigreturn() = ? (mask now []) ioctl(3, VIDIOC_DQBUF, 0x804d14c) = ? ERESTARTSYS (To be restarted) --- SIGWINCH (Window changed) @ 0 (0) --- ioctl(3, VIDIOC_DQBUF This trace can also be found on: http://mrcl.xs4all.nl/strace_uvccapture.log > Hrm, I should change the output re: "Taking snapshot every 0 seconds" > since thats not true, it'll take one shot and exit. As long as the code is correct... :-) Marcel _______________________________________________ Linux-uvc-devel mailing list Linux-uvc-devel@lists.berlios.de http://bat.berlios.de/mailman/listinfo/linux-uvc-devel