Re: [libdc1394-devel] dc1394_dma_setup_format7_capture() & QUERY_FROM_CAMERA
Capture and control API for IIDC compliant cameras
Brought to you by:
ddouxchamps,
gordp
From: Damien D. <d.d...@te...> - 2003-09-15 12:07:06
|
Hi Ralf, On Fri, 2003-09-05 at 22:02, Ralf Ebeling wrote: > Hi, >=20 > one of our customers run into trouble when using the function > dc1394_dma_setup_format7_capture() and QUERY_FROM_CAMERA as a > parameter. He wrote his own software and didn't use Coriander... >=20 > > dc1394_dma_setup_format7_capture(handle, > > /* node */ node, > > /* channel */ 0, > > /* capture mode */ MODE_FORMAT7_4, > > /* speed */ SPEED_400, > > /* bytes per packet */ (unsigned int)QUERY_FROM_CAMERA, > > /* left */ (unsigned int)QUERY_FROM_CAMERA, > > /* top */ (unsigned int)QUERY_FROM_CAMERA, > > /* width */ (unsigned int)QUERY_FROM_CAMERA, > > /* height */ (unsigned int)QUERY_FROM_CAMERA, > > /* DMA buffers */ DMA_BUFFERS, > > &camera_); >=20 > If QUERY_FROM_CAMERA is used the function reads the format7 register > IMAGE_SIZE, IMAGE_POSITION and BytesPerPackage. As stated by the IIDC > spec 1.30 these register are initialized with 0x0. I checked 1.30 and could not find this initialization requirement. Which page contains this information? > If someone didn't write valid values to the above mentioned registers, > capturing images could fail... Indeed...=20 > I would suggest: > - to read IMAGE_SIZE_INQ > - to set IMAGE_SIZE to IMAGE_SIZE_INQ, if IMAGE_POSITION is 0 or > to calculate an adequate value, if IMAGE_POSITION is not 0 I have patched libdc to handle this 0x0 init value: if the value is zero the maximum size is used (taking the image position into account). > - to read MaxBytesPerPacket after setting size and position (be- > cause it depends on the size and color coding) > - to set BytesPerPackets to MaxBytesPerPacket, if BytesPerPacket > is 0 and to validate BytesPerPacket if it was set by the user Reading back the code I think we already do that in the switch statement at line 453 of dc1394_format7.c. Cheers, Damien --=20 _ Damien Douxchamps (=B0- PhD Student / Research Assistant //\ Image Processing Group, Telecom Laboratory, UCL, Belgium V_/_ http://www.tele.ucl.ac.be/MEMBERS/Douxchamps_Damien_e.html |