From: Stefan R. <st...@s5...> - 2008-12-14 22:20:43
|
Dan Dennedy wrote: [Adrian Knoth wrote:] >>> Pieter: I now get tons of >>> >>> 08953618222: Warning (IsoHandler.cpp)[ 451] putPacket: reconstructed CTR counter >>> discrepancy >>> 08953618237: Warning (IsoHandler.cpp)[ 453] putPacket: ingredients: 4810, 68100 >>> 00, 89900D1, 8AEBA6F, 693A0D1, 3, 4, 3, 105824465 >>> 08953618255: Warning (IsoHandler.cpp)[ 454] putPacket: diffcy = 8086 ... >>> Could that be due to the low split timeout or is it more likely >>> indicating erroneous data in the callback? ... > I was just doing some testing for the polling issues, and I noticed > that dvgrab is reporting a lot of dropped frames on the new firewire > stack whereas it is not on ieee1394. One thing which may play a role is how the cycle counter is passed up from the kernel to userspace. With raw1394, libraw1394 calls ihandle->iso_recv_handler(..., info->cycle, ...) with an info->cycle which belongs to the respective packet --- if I'm not mistaken. With juju, libraw1394 calls fwhandle->iso.recv_handler(..., cycle, ...) with cycle initially set from the timeStamp of the packet which triggered the interrupt, and then simply incremented for each following packet --- which yields imprecise cycle values. David Moore's patch "Include iso timestamp in headers when header_size > 4" http://git.kernel.org/?p=linux/kernel/git/ieee1394/linux1394-2.6.git;a=commitdiff;h=66b273d025b41289d21fa4914a430e063d95e4b2 will allow us to change libraw1394 and libdc1394 to pick up the timeStamp of each packet. To do that, we also need to increment FW_CDEV_VERSION in <linux/firewire-cdev.h>, the library needs to check for the ABI version, on kernels with a suitable ABI version it needs to configure the iso context to split off 8 or more bytes, and in the iso receive event handler it needs to obtain the timeStamp from the second header quadlet. Disclaimer: Everything what I wrote may be bogus. I don't actually know what's going on. -- Stefan Richter -=====-==--- ==-- -===- http://arcgraph.de/sr/ |