capture: add 64-bit time stamp for start time

We keep the start time as a iso8601 string, which is useful, but not
enough for relative timestamps to the epoch (start time). Include a
clock time in the same clock domain.
This commit is contained in:
Christian Hergert
2016-04-15 04:48:04 -07:00
parent f72306f5a8
commit ad5f855a2b
4 changed files with 15 additions and 1 deletions

View File

@ -783,3 +783,14 @@ handle_errno:
return FALSE;
}
gint64
sp_capture_reader_get_start_time (SpCaptureReader *self)
{
g_return_val_if_fail (self != NULL, 0);
if (self->endian != G_BYTE_ORDER)
return GUINT64_SWAP_LE_BE (self->header.time);
return self->header.time;
}

View File

@ -33,6 +33,7 @@ SpCaptureReader *sp_capture_reader_ref (SpCapt
void sp_capture_reader_unref (SpCaptureReader *self);
const gchar *sp_capture_reader_get_filename (SpCaptureReader *self);
const gchar *sp_capture_reader_get_time (SpCaptureReader *self);
gint64 sp_capture_reader_get_start_time (SpCaptureReader *self);
gboolean sp_capture_reader_skip (SpCaptureReader *self);
gboolean sp_capture_reader_peek_type (SpCaptureReader *self,
SpCaptureFrameType *type);

View File

@ -67,7 +67,8 @@ typedef struct
guint32 little_endian : 1;
guint32 padding : 23;
gchar capture_time[64];
gchar suffix[184];
gint64 time;
gchar suffix[176];
} SpCaptureFileHeader;
typedef struct

View File

@ -396,6 +396,7 @@ sp_capture_writer_new_from_fd (int fd,
#endif
header->padding = 0;
g_strlcpy (header->capture_time, nowstr, sizeof header->capture_time);
header->time = SP_CAPTURE_CURRENT_TIME;
memset (header->suffix, 0, sizeof header->suffix);
self->pos += sizeof *header;