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

Reply via email to