From: Philippe De Muyter <phdm@ma...> - 2008-03-26 10:35:38
I try to switch my libdc1394-based program from the old linux stack to the new
My program relies on timestamps being correctly given for each frame,
and fails because libdc1394/dc1394/juju/capture.c:platform_capture_dequeue
currently has :
f->frame.timestamp = 0;
for each frame.
Will that be fixed or is there a big technical problem to give correct
timestamps with the juju stack ?
From: David Moore <dcm@MIT.EDU> - 2008-03-26 16:20:56
On Wed, 2008-03-26 at 11:35 +0100, Philippe De Muyter wrote:
> My program relies on timestamps being correctly given for each frame,
> and fails because libdc1394/dc1394/juju/capture.c:platform_capture_dequeue
> currently has :
> f->frame.timestamp = 0;
> for each frame.
> Will that be fixed or is there a big technical problem to give correct
> timestamps with the juju stack ?
It will be fixed eventually, but requires changes to both the kernel and
libdc1394. I've been meaning to get to this for a while but haven't
quite got to it yet.
It's not quite as simple as you might think since Juju handles
everything at the packet-level instead of the frame level. The basic
idea is that we need to expose the bus timestamp portion of the packet
headers to userspace. Currently, we only expose the iso header. Once
that's patched in the kernel, we then correlate the bus timestamps with
the clock timestamps (the same way Mac OS support does it).
I'll write a proposal shortly to the linux1394-devel list on the change
I am suggesting for the kernel. It doesn't require the juju API to
change, but requires only the semantics of the API to change.