linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Not able to capture video frames
@ 2010-07-30 11:30 Sudhindra Nayak
  2010-07-31 11:32 ` Jean-Francois Moine
  0 siblings, 1 reply; 5+ messages in thread
From: Sudhindra Nayak @ 2010-07-30 11:30 UTC (permalink / raw)
  To: video4linux-list


Hi all,

I'm using the 'Omnivision' ov538 camera bridge processor along with an
ov10620 CMOS sensor. I'm using a driver which I got from the following link:

http://lwn.net/Articles/308358/

I've modified the driver by inserting printk statements in the driver code
to understand the flow of control between functions. I've also changed the
arguments passed to the 'sccb_reg_write' function to values corresponding to
the ov10620 sensor. 

I'm using a v4l2 example code as my application along with the above
mentioned driver. The example code can be found at the below link:

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

When I run the application after inserting the driver, it calls the
open_device(), init_device() and start_capturing() functions and then enters
the mainloop() function. In the mainloop() function, the select() function
call times out after 2 seconds and I'm not able to capture any video frames.

I'm also receiving some errors like:

gspca: ISOC data error: [3] len=56, status=-71
gspca: ISOC data error: [4] len=12, status=-71

This repeats with different values for 'len' and the value in [ ].

Any solutions??


-----
Regards,

Sudhindra Nayak
-- 
View this message in context: http://video4linux-list.1448896.n2.nabble.com/Not-able-to-capture-video-frames-tp5354598p5354598.html
Sent from the video4linux-list mailing list archive at Nabble.com.

--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Not able to capture video frames
  2010-07-30 11:30 Not able to capture video frames Sudhindra Nayak
@ 2010-07-31 11:32 ` Jean-Francois Moine
  2010-08-04 11:27   ` Sudhindra Nayak
  0 siblings, 1 reply; 5+ messages in thread
From: Jean-Francois Moine @ 2010-07-31 11:32 UTC (permalink / raw)
  To: Sudhindra Nayak; +Cc: video4linux-list

[-- Attachment #1: Type: text/plain, Size: 2044 bytes --]

On Fri, 30 Jul 2010 04:30:51 -0700 (PDT)
Sudhindra Nayak <sudhindra.nayak@gmail.com> wrote:

> I'm using the 'Omnivision' ov538 camera bridge processor along with an
> ov10620 CMOS sensor. I'm using a driver which I got from the
> following link:
> 
> http://lwn.net/Articles/308358/
> 
> I've modified the driver by inserting printk statements in the driver
> code to understand the flow of control between functions. I've also
> changed the arguments passed to the 'sccb_reg_write' function to
> values corresponding to the ov10620 sensor. 
> 
> I'm using a v4l2 example code as my application along with the above
> mentioned driver. The example code can be found at the below link:
> 
> http://v4l2spec.bytesex.org/spec/capture-example.html
> 
> When I run the application after inserting the driver, it calls the
> open_device(), init_device() and start_capturing() functions and then
> enters the mainloop() function. In the mainloop() function, the
> select() function call times out after 2 seconds and I'm not able to
> capture any video frames.
> 
> I'm also receiving some errors like:
> 
> gspca: ISOC data error: [3] len=56, status=-71
> gspca: ISOC data error: [4] len=12, status=-71
> 
> This repeats with different values for 'len' and the value in [ ].

Hi Sudhindra,

First, the mailing list for linux video is now
linux-media@vger.kernel.org.

Then, the ov534 which appeared in lwn is rather old. The last gspca
stable version may be found at LinuxTv.org, and there is a test version
as a tarball in my home page (see below).

The error in the ISOC messages are set by the webcam. It means that the
initialization is not complete/correct. To facilitate your job, I join
a Tcl script which parses the output of sniffbin (USB sniffer on ms-win)
giving a more compact and readable trace.

BTW, I could include your driver in the Linux kernel as soon as it will
work...

Best regards.

-- 
Ken ar c'hentañ	|	      ** Breizh ha Linux atav! **
Jef		|		http://moinejf.free.fr/

[-- Attachment #2: parsnoop.tcl --]
[-- Type: text/x-tcl, Size: 5060 bytes --]

#!/bin/sh
# -*- tcl -*- \
exec tclsh "$0" ${1+"$@"}

proc usage {} {
	puts "Parse a ms-win USB snoop
Usage:
	parsnoop \[options\] <usbsnoop file>
Options:
	-nb	Don't display the Bulk/Interrupt messages
	-ni	Don't display the Isochronous messages
	-t	Display the delta time between exchanges"
	exit
}

proc isoc {fd} {
	global deltatime noisoc
	set in 0
	while {[gets $fd line] >= 0} {
		switch -regexp -- $line {
		    "  URB " break
		    StartFrame {
			if {[string compare [lindex $line 2] 00000000] != 0} {
				set in 1
			}
		    }
		    TransferBufferLength {
			set l [lindex $line 2]
		    }
		    NumberOfPackets {
			set n [lindex $line 2]
		    }
		}
	}
	if {!$in || $noisoc} {
		return $line
	}
	puts -nonewline $deltatime
	puts [format "<isoc \[%d\] l:%d" 0x$n 0x$l]
	return $line
}

proc vendor {fd} {
# outgoing message
	global deltatime
	set out 0
	set b {}
	while {[gets $fd line] >= 0} {
		switch -regexp -- $line {
		    "  URB " break
		    DIRECTION_OUT {
			set out 1
		    }
		    TransferBufferLength {
#			set l 0x[lindex $line 3]
		    }
		    00000..0: {
			if {$out} {
				if {[string length $b] != 0} {
					append b "\n\t\t  "
				}
				append b [lrange $line 1 end]
			}
		    }
		    "Request" {
			set r [format %02x 0x[lindex $line 2]]
		    }
		    "Value" {
			set v [format %04x 0x[lindex $line 2]]
		    }
		    "Index" {
			set i [format %04x 0x[lindex $line 2]]
		    }
		}
	}
	if {$out} {
		puts -nonewline $deltatime
		puts " SET $r $v $i $b"
	}
	return $line
}

proc ctrl {fd} {
# incoming message
	global deltatime
	set in 0
	set b {}
	set setup 0
	while {[gets $fd line] >= 0} {
		switch -regexp -- $line {
		    "  URB " break
		    DIRECTION_IN {
			set in 1
		    }
		    SetupPacket {
			set setup 1
		    }
		    "  00000" {
			if {!$in} continue
			if {!$setup} {
				if {[string length $b] == 0} {
					set b [lrange $line 1 end]
				} else {
					append b "\n<\t\t  "
					append b [lrange $line 1 end]
				}
			} else {
				set r [lindex $line 2]
				set v [lindex $line 4][lindex $line 3]
				set i [lindex $line 6][lindex $line 5]
			}
		    }
		}
	}
	if {$in} {
		puts -nonewline $deltatime
		puts "<GET $r $v $i $b"
	}
	return $line
}

proc interf {fd} {
# select interface
	global deltatime
	set i {??}
	set a {??}
	while {[gets $fd line] >= 0} {
		switch -regexp -- $line {
		    "  URB " break
		    InterfaceNumber {
			set i [format %02x 0x[lindex $line 3]]
		    }
		    AlternateSetting {
			set a [format %02x 0x[lindex $line 3]]
		    }
		}
	}
	puts -nonewline $deltatime
	puts " intf $i alt $a"
	return $line
}

proc feature {fd} {
	global deltatime
	while {[gets $fd line] >= 0} {
		switch -regexp -- $line {
		    "  URB " break
		}
	}
puts -nonewline $deltatime
puts "feature"
	return $line
}

proc transf {fd} {
# bulk or interrupt transfer
	global deltatime nobulk
	set in 0
	set b {}
	while {[gets $fd line] >= 0} {
		switch -regexp -- $line {
		    DIRECTION_IN {
			set in 1
		    }
		    "  000000" {
			if {!$nobulk} {
			    if {[string length $b] == 0} {
				set b [lrange $line 1 end]
			    } else {
				append b "\n\t      "
				append b [lrange $line 1 end]
			    }
			}
		    }
		    "  00000100" {
			if {!$nobulk} {
				append b "\n\t      ..."
			}
		    }
		    "  URB " break
		}
	}
	if {$nobulk || [string length $b] == 0} {
		return $line
	}
	puts -nonewline $deltatime
	if {$in} {
		puts "<Bulk/Int IN  $b"
	} else {
		puts " Bulk/Int OUT $b"
	}
	return $line
}

proc main {argv} {
	global nowtime prevtime withtime deltatime nobulk noisoc
	set withtime 0
	set nobulk 0
	set noisoc 0
	set deltatime {}
	set fn {}
	foreach a $argv {
		switch -- $a {
		    -t {
			set withtime 1
		    }
		    -nb {
			set nobulk 1
		    }
		    -ni {
			set noisoc 1
		    }
		    default {
			if {[string length $fn] != 0} usage
			set fn $a
		    }
		}
	}
	if {[string length $fn] == 0} usage
	if {[catch {open $fn r} fd]} {
		puts "cannot open '$fn'"
		exit 1
	}
	set nowtime 0
	set prevtime 0
	set nisoc 0
	while {[gets $fd line] >= 0} {
		set isoc 0
		switch -regexp -- $line {
		    URB_FUNCTION_ISOCH_TRANSFER {
			set line [isoc $fd]
			set isoc 1
			incr nisoc
		    }
		    URB_FUNCTION_VENDOR {
			set line [vendor $fd]
		    }
		    URB_FUNCTION_CONTROL_TRANSFER {
			set line [ctrl $fd]
		    }
		    URB_FUNCTION_SELECT_INTERFACE {
			set line [interf $fd]
		    }
		    URB_FUNCTION_SET_FEATURE_TO_DEVICE {
			set line [feature $fd]
		    }
		    URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER {
			set line [transf $fd]
		    }
		}
		if {!$noisoc && !$isoc && $nisoc != 0} {
			puts -nonewline $deltatime
			puts "$nisoc isoc"
			set nisoc 0
		}
		if {[regexp {\[([0-9]+) ms\]} $line dum ntime]} {
			set prevtime $nowtime
			set nowtime $ntime
			if {[string first down $line] > 0} {
				if {$withtime} {
					set deltatime [format "%4d " \
						[expr {$nowtime - $prevtime}]]
				} elseif {$nowtime > $prevtime + 2} {
					puts "== +[expr {$nowtime - $prevtime}] ms"
				}
			}
			if {$nowtime > $prevtime + 200} {
				puts "== \[$nowtime ms\]"
			}
		}
	}
}

main $argv

[-- Attachment #3: Type: text/plain, Size: 164 bytes --]

--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Not able to capture video frames
  2010-07-31 11:32 ` Jean-Francois Moine
@ 2010-08-04 11:27   ` Sudhindra Nayak
  0 siblings, 0 replies; 5+ messages in thread
From: Sudhindra Nayak @ 2010-08-04 11:27 UTC (permalink / raw)
  To: video4linux-list


Hi Jean,

First of all, thanks for the response. 

I'm using the above mentioned driver and the test application on an
AT91SAM9G45-EKES evaluation kit and not on the PC. Does your solution hold
good for the ARM9 based kit too?

I downloaded the test version of the 'gspca' driver from your home page as
you mentioned in your previous mail. I'm now using the new gspca driver ,
header files and the new ov534 driver. I've changed the arguments in the
'sensor_init' array to correspond to the OV10620 sensor values. 

But when I run the application, I get the following:

gspca: [a.out] open
gspca: frame alloc frsz: 614400
gspca: reqbufs st:0 c:4
gspca: mmap start:4013e000 size:614400
gspca: mmap start:401d4000 size:614400
gspca: mmap start:4026a000 size:614400
gspca: mmap start:40300000 size:614400
gspca: qbuf 0
gspca: qbuf 1
gspca: qbuf 2
gspca: qbuf 3
gspca: no transfer endpoint found
VIDIOC_STREAMON error 5, Input/outgspca: [a.out] close
pgspca: frame free
ut error
gspca: close done


I'm getting an I/O error here. The usb interface seems to be working fine
since I tested it with a pen drive. Can you please help me out. I'm
including the 'strace' ouput below for your reference:


execve("./a.out", ["./a.out"], [/* 13 vars */]) = 0
brk(0)                                  = 0x13000
uname({sys="Linux", node="at91sam9g45ekes", ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x4001c000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or
directory)
open("/var/run/ld.so.cache", O_RDONLY)  = -1 ENOENT (No such file or
directory)
open("/lib/tls/v5l/fast-mult/half/libc.so.6", O_RDONLY) = -1 ENOENT (No such
file or directory)
stat64("/lib/tls/v5l/fast-mult/half", 0xbee35220) = -1 ENOENT (No such file
or directory)
open("/lib/tls/v5l/fast-mult/libc.so.6", O_RDONLY) = -1 ENOENT (No such file
or directory)
stat64("/lib/tls/v5l/fast-mult", 0xbee35220) = -1 ENOENT (No such file or
directory)
open("/lib/tls/v5l/half/libc.so.6", gspca: [a.out] open
O_RDONLY) = -1 ENOENT (No such file or directory)
sgspca: frame alloc frsz: 614400
tat64("/lib/tls/v5l/gspca: reqbufs st:0 c:4
half", 0xbee35220) = -1 ENOENT (No such file or directory)
gspca: mmap start:4013e000 size:614400
open("/lib/tls/v5l/libc.so.6", O_RDONLY) = -1 ENOENT (gspca: mmap
start:401d4000 size:614400
No such file or directory)
stat64("/lib/tls/v5l", 0xbee35220)      = -1 ENOENT (No such file or
directory)
open("/lib/tls/fast-mult/half/libc.so.6", O_RDONLY) = -1 ENOENT (No such
file or directory)
stat64("/lib/tls/fast-mult/half", 0xbee35220) = -1 ENOENT (No such file or
directory)
open("/lib/tls/fast-mult/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/lib/tls/fast-mult", 0xbee35220) = -1 ENOENT (No such file or
directory)
open("/lib/tls/half/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/lib/tls/half", 0xbee35220)     = -1 ENOENT (No such file or
directory)
open("/lib/tls/libc.so.6", O_RDONLY)    = -1 ENOENT (No such file or
directory)
stat64("/lib/tls", 0xbee35220)          = -1 ENOENT (No such file or
directory)
open("/lib/v5l/fast-mult/half/libc.so.6", O_RDONLY) = -1 ENOENT (No such
file or directory)
stat64("/lib/v5l/fast-mult/half", 0xbee35220) = -1 ENOENT (No such file or
directory)
open("/lib/v5l/fast-mult/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/lib/v5l/fast-mult", 0xbee35220) = -1 ENOENT (No such file or
directory)
open("/lib/v5l/half/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/lib/v5l/half", 0xbee35220)     = -1 ENOENT (No such file or
directory)
open("/lib/v5l/libc.so.6", O_RDONLY)    = -1 ENOENT (No such file or
directory)
stat64("/lib/v5l", 0xbee35220)          = -1 ENOENT (No such file or
directory)
open("/lib/fast-mult/half/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/lib/fast-mult/half", 0xbee35220) = -1 ENOENT (No such file or
directory)
open("/lib/fast-mult/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/lib/fast-mult", 0xbee35220)    = -1 ENOENT (No such file or
directory)
open("/lib/half/libc.so.6", O_RDONLY)   = -1 ENOENT (No such file or
directory)
stat64("/lib/half", 0xbee35220)         = -1 ENOENT (No such file or
directory)
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\220K\1\000"..., 512)
= 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1111536, ...}) = 0
mmap2(NULL, 1147328, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x40025000
mprotect(0x40130000, 32768, PROT_NONE)  = 0
mmap2(0x40138000, 12288, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x10b) = 0x40138000
mmap2(0x4013b000, 8640, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4013b000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x4001d000
syscall_983045(0x4001d090, 0x4001d090, 0x68c, 0x4001d768, 0x40024060,
0x40024000, 0, 0xf0005, 0x60, 0xffff565c, 0, 0xbee35aec, 0, 0xbee357e8,
0x40010e24, 0x40001fc4, 0x20000010, 0x4001d090, 0xb575, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0) = 0
mprotect(0x40138000, 8192, PROT_READ)   = 0
mprotect(0x40023000, 4096, PROT_READ)   = 0
fstat64(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(4, 64), ...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B115200 opost isig icanon echo
...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x4001e000
write(1, "Opening Device\n", 15Opening Device
)        = 15
stat64("/dev/video", {st_mode=S_IFCHR|0660, st_rdev=makedev(81, 0), ...}) =
0
open("/dev/video", O_RDWR|O_NONBLOCK)   = 3
write(1, "Initializing Device\n", 20Initializing Device
)   = 20
ioctl(3, VIDIOC_QUERYCAP or VT_OPENQRY, 0xbee35bec) = 0
ioctl(3, VIDIOC_CROPCAP, 0xbee35bc0)    = -1 EINVAL (Invalid argument)
ioctl(3, VIDIOC_S_FMT or VT_RELDISP, 0xbee35ae0) = 0
ioctl(3, VIDIOC_REQBUFS or VT_DISALLOCATE, 0xbee35aac) = 0
brk(0)                                  = 0x13000
brk(0x34000)                            = 0x34000
ioctl(3, VIDIOC_QUERYBUF or VT_RESIZE, 0xbee35a68) = 0
mmap2(NULL, 614400, PROT_READ|PROT_WRITgspca: mmap start:4026a000
size:614400
E, MAP_SHARED, 3, 0) = 0x4013e000
ioctl(3, VIDIOC_QUERgspca: mmap start:40300000 size:614400
YBUF or VT_RESIZE, 0xbee35a68) = 0
mmap2(NULL, 614400, Pgspca: qbuf 0
ROT_READ|Pgspca: qbuf 1
ROT_WRITE,gspca: qbuf 2
 MAP_SHARED, 3, 0x96) = 0x40gspca: qbuf 3
1d4000
iogspca: no transfer endpoint found
ctl(3, VIDIOC_QUERYBUF or VT_RESIZE, 0xbee35a68) = 0
mmapgspca: [a.out] close
2gspca: frame free
(NULL, 614400,gspca: close done
 PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x12c) = 0x4026a000
ioctl(3, VIDIOC_QUERYBUF or VT_RESIZE, 0xbee35a68) = 0
mmap2(NULL, 614400, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x1c2) = 0x40300000
write(1, "Capturing Frames\n", 17Capturing Frames
)      = 17
ioctl(3, VIDIOC_QBUF, 0xbee35c0c)       = 0
ioctl(3, VIDIOC_QBUF, 0xbee35c0c)       = 0
ioctl(3, VIDIOC_QBUF, 0xbee35c0c)       = 0
ioctl(3, VIDIOC_QBUF, 0xbee35c0c)       = 0
ioctl(3, VIDIOC_STREAMON, 0xbee35c50)   = -1 EIO (Input/output error)
write(2, "VIDIOC_STREAMON error 5, Input/o"..., 44VIDIOC_STREAMON error 5,
Input/output error
) = 44
io_submit(0x1, 0x1, 0xfbad2088 <unfinished ... exit status 1>
Process 1053 detached 

-----
Regards,

Sudhindra Nayak
-- 
View this message in context: http://video4linux-list.1448896.n2.nabble.com/Not-able-to-capture-video-frames-tp5354598p5372108.html
Sent from the video4linux-list mailing list archive at Nabble.com.

--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Not able to capture video frames
       [not found] <AANLkTim5YmSsvhub3+t0_QX0k84xZgPy1FS5=9COfEzH@mail.gmail.com>
@ 2010-08-05 11:19 ` Jean-Francois Moine
       [not found]   ` <AANLkTinEbSe=d7TESEzzd8MZ5tPExrN4U9LvHrgm7FYf@mail.gmail.com>
  0 siblings, 1 reply; 5+ messages in thread
From: Jean-Francois Moine @ 2010-08-05 11:19 UTC (permalink / raw)
  To: Sudhindra Nayak; +Cc: linux-media

On Thu, 5 Aug 2010 11:34:28 +0530
Sudhindra Nayak <sudhindra.nayak@gmail.com> wrote:

> As you requested, I'm including the lsusb output below:

Hi Sudhindra,

The USB information indicate that the webcam uses uses isochronous
transfer. The driver ov534 you used as a base uses bulk transfer. So,
you must either remove the 'cam->bulk..' in sd_conf() or change your
base driver to ov519. In any case, don't forget to adjust the pkt_scan
function...

Best regards.

-- 
Ken ar c'hentañ	|	      ** Breizh ha Linux atav! **
Jef		|		http://moinejf.free.fr/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Not able to capture video frames
       [not found]   ` <AANLkTinEbSe=d7TESEzzd8MZ5tPExrN4U9LvHrgm7FYf@mail.gmail.com>
@ 2010-08-17 18:01     ` Jean-Francois Moine
  0 siblings, 0 replies; 5+ messages in thread
From: Jean-Francois Moine @ 2010-08-17 18:01 UTC (permalink / raw)
  To: Sudhindra Nayak; +Cc: linux-media

On Tue, 17 Aug 2010 17:50:58 +0530
Sudhindra Nayak <sudhindra.nayak@gmail.com> wrote:

> As you suggested I removed the 'cam->bulk....' part in the sd_config
> function. Also, can you please explain how you arrived at the
> sd_pkt_scan function? I'm not able to understand the bit
> manipulations that you have performed in the sd_pkt_scan function.
> Also, you did mention that the sd_pkt_scan function needs to be
> modified. Can you please elaborate on the changes that need to be
> done to the sd_pkt_scan function?
> 
> As I'd mentioned earlier, I'm using the 'ov534.c' code with the ov538
> bridge processor. Will there be any change in the sd_pkt_scan
> function with respect to ov538?
	[snip]
> functions and then enters the mainloop() function. In the mainloop()
> function, the select() function call times out after 2 seconds and
> I'm not able to capture any video frames.
> 
> Any suggestions??

Hi Sudhindra,

The ov534 sends images in UVC format, i.e. each packet contains a
12 bytes header and a part of the image. In the header, the 1st byte
contains various indicators, of which the bit 1 (0x02) marks the end
of the image.

To code your sd_pkt_scan(), you have to search in the ms-windows traces
how the images are fragmented, how you may find the start and end of
image and whether some data have to be discarded in the packets.

The last problem to solve is to find how are encoded the images. You
may know it looking also in the ms-winsows traces or, when the driver
will work, in the received images. If you want, I may send you a small
program which displays raw images (done by 'svv -rg') forcing the
encoding.

Good luck!

-- 
Ken ar c'hentañ	|	      ** Breizh ha Linux atav! **
Jef		|		http://moinejf.free.fr/

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2010-08-17 18:00 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-07-30 11:30 Not able to capture video frames Sudhindra Nayak
2010-07-31 11:32 ` Jean-Francois Moine
2010-08-04 11:27   ` Sudhindra Nayak
     [not found] <AANLkTim5YmSsvhub3+t0_QX0k84xZgPy1FS5=9COfEzH@mail.gmail.com>
2010-08-05 11:19 ` Jean-Francois Moine
     [not found]   ` <AANLkTinEbSe=d7TESEzzd8MZ5tPExrN4U9LvHrgm7FYf@mail.gmail.com>
2010-08-17 18:01     ` Jean-Francois Moine

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).