- ret = sscanf(line, "[%lu.%lu] ", &sec, &nsec);
- if (ret == 2) {
+ if (sscanf(line, "[%lu.%lu] ", &sec, &usec) == 2) {
+ *ts = (uint64_t) sec * USEC_PER_SEC + (uint64_t) usec;
+ /*
+ * Default CTF clock has 1GHz frequency. Convert
+ * from usec to nsec.
+ */
+ *ts *= NSEC_PER_USEC;
+ has_timestamp = 1;
+ } else if (sscanf(line, "[%u-%u-%u %u:%u:%lu.%lu] ",
+ &year, &mon, &mday, &hour, &min,
+ &sec, &msec) == 7) {
+ time_t ep_sec;
+ struct tm ti;
+
+ memset(&ti, 0, sizeof(ti));
+ ti.tm_year = year - 1900; /* from 1900 */
+ ti.tm_mon = mon - 1; /* 0 to 11 */
+ ti.tm_mday = mday;
+ ti.tm_hour = hour;
+ ti.tm_min = min;
+ ti.tm_sec = sec;
+
+ ep_sec = babeltrace_timegm(&ti);
+ if (ep_sec != (time_t) -1) {
+ *ts = (uint64_t) ep_sec * NSEC_PER_SEC
+ + (uint64_t) msec * NSEC_PER_MSEC;
+ }
+ has_timestamp = 1;
+ }
+ if (has_timestamp) {