On Mar 15, 2007, at 9:22 PM, Fernando Urbina wrote:
my code is using the isochronous low latency technique based on
IOUSBLowLatencyIsocFrames and reads them before the callback for
that USB packet is triggered. Only those which have frStatus !=
kUSBLowLatencyIsochTransferKey, of course.
The question is - is it guaranteed that the frames passed to the
callback have the same status and byte counter fields that those I
read directly?
For some reason, on very few machines (ppc mostly), there seems to
be different information from both contexts. But only after hours
of streaming. Any hints, anyone?
The should be the same -- it's the same buffer. So, if they are
different, then somehow we are overwriting it in between.
The thing that scares me the most is that I'm actually happen to see
a lot *more* data arriving in the callbacks that I see when polling
the frame lists. Otherwise I would have thought about lost interrupts.
Next thing is, this happens just out of a sudden after several hours
of smooth streaming where everything is fine, e.g. where the same
amount of data is read from both contexts. From the moment on it
happend the first time, things are rapidly getting worse within
another minute.
Also, this does not happen at all (even after days) on around 20
Machines I tested on, including G4s, single and dual G5s, x86 based
machines, quad Xeons and many more. Could that be caused by any kind
of hardware issue in a certain series of G4 Powerbooks?
I would look at your TDs and any possible errors you get when this
happens... sounds like a nasty one to figure out.
I do check all the status fields and only read the length of packages
which have their frStatus set to kIOReturnSuccess or
kIOReturnUnderrun, in both cases. So even if there was an error,
there should still be the same amount of data, right?
Daniel
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Usb mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/usb/email@hidden