63 int64_t newCounter, lastCounter = -1;
65 if (!highestPacket.empty()) lastCounter = highestPacket.packetId().msTime();
67 if (pack.containsPacketCounter())
70 else if (pack.containsSampleTimeFine())
72 if (pack.containsSampleTimeCoarse())
73 newCounter = (
int64_t)pack.sampleTime64();
76 (
int32_t)pack.sampleTimeFine(), lastCounter);
78 else if (pack.containsPacketCounter8())
82 newCounter = lastCounter + 1;
88 pack.setPacketId(newCounter);
89 if (newCounter > lastCounter) highestPacket = pack;
111 int64_t dt = frameCounter - low;
136 int64_t dt = frameCounter - low;
159 int64_t low = lastTime % 864000000;
161 if (dt < (-864000000 / 2))
162 return lastTime + dt + 864000000;
163 if (dt < (864000000 / 2))
return lastTime + dt;
165 return lastTime + dt - 864000000;
static int64_t stampPacket(XsDataPacket &pack, XsDataPacket &highest)
Create 64 bit counter for a packet.
static const int64_t SC8BOUNDARY_HIGHMASK
8 bit Sample Counter boundary exclusive mask
mrpt::system::TTimeStamp now()
A shortcut for system::getCurrentTime.
static const int64_t SC8BOUNDARY
8 bit Sample Counter boundary
static const int64_t SC8BOUNDARY_HALF
8 bit Sample Counter boundary/2, used for determining SC wrapping
static int64_t calculateLargeSampleTime(int64_t frameTime, int64_t lastTime)
Calculate the new large sample time value based on frameTime and the lastTime.
static const int64_t SC8BOUNDARY_LOWMASK
8 bit Sample Counter boundary inclusive mask
static int64_t calculateLargePacketCounter(int64_t frameCounter, int64_t lastCounter)
Calculate the new large sample counter value based on frameCounter and the lastCounter.
static const int64_t MTSCBOUNDARY_LOWMASK
16 bit MT Sample Counter boundary inclusive mask
static int64_t calculateLargePacketCounter8(int64_t frameCounter, int64_t lastCounter)
Calculate the new large packet counter value based on frameCounter and the lastCounter.
static const int64_t MTSCBOUNDARY_HALF
16 bit MT Sample Counter boundary/2, used for determining SC wrapping
static const int64_t MTSCBOUNDARY
16 bit MT Sample Counter boundary
Contains data received from a device or read from a file.
static const int64_t MTSCBOUNDARY_HIGHMASK
16 bit MT Sample Counter boundary exclusive mask