What about something likeI’m using 1.47, so I would expect this issue to apply. However, I don’t think this is what I am experiencing.
Right now I am testing out a fix which initially appears to work but I have to fully verify it.
void my_class::calculate_packet_statistics ( const struct pcap_pkthdr *header ) {
frame_interval_.intervalTimeStamp_ = system_clock::from_time_t( static_cast<time_t>( header->ts.tv_sec ) );
// Cast to a duration using the system_clock’s tick period.
system_clock::duration us_duration = duration_cast< system_clock::duration >( microseconds( header->ts.tv_usec ) );
frame_interval_.intervalTimeStamp_ += us_duration;
…
}
I would have thought my previous implementation would have done this cast implicitly, but that doesn’t appear to be the case. I’ll let you know if this works.
frame_interval_.intervalTimeStamp_ =
system_clock::from_time_t(
static_cast<time_t>(
header->ts.tv_sec ) ) +
nanoseconds(
header->ts.tv_usec);