I'm developing an application which merges Optitrack tracking data in real time with other data sources. One important consideration for this purpose is clock synchronization, in particular understanding of latencies. I cannot use the hardware SMPTE sync. The only thing I think I'm missing is the processing delay, i.e. the time from when the frame was taken to when it is put on the network.
I'm having a hard time making sense of the information provided by the NatNet library. We have:
Code: Select all
typedef struct
{
int iFrame; // host defined frame number
...
float fLatency; // host defined time delta between capture and send
unsigned int Timecode; // SMPTE timecode (if available)
unsigned int TimecodeSubframe; // timecode sub-frame data
double fTimestamp; // FrameGroup timestamp
...
} sFrameOfMocapData;
Motive prints a "latency" value in its status bar. I'm not sure about the meaning of that. It sure seems to be what I want, but I didn't find a comparable entry in the NatNet data types.