writer: add helper to replace time range

This is useful so that we can overwrite the time range in the file when
muxing together multiple streams.
This commit is contained in:
Christian Hergert
2018-05-18 11:28:15 +01:00
parent 12f627a7bd
commit 7c03499484
2 changed files with 33 additions and 0 deletions

View File

@ -1188,3 +1188,33 @@ sp_capture_writer_request_counter (SpCaptureWriter *self,
return ret;
}
gboolean
_sp_capture_writer_set_time_range (SpCaptureWriter *self,
gint64 start_time,
gint64 end_time)
{
ssize_t ret;
g_assert (self != NULL);
do_start:
ret = pwrite (self->fd,
&start_time,
sizeof (start_time),
G_STRUCT_OFFSET (SpCaptureFileHeader, time));
if (ret < 0 && errno == EAGAIN)
goto do_start;
do_end:
ret = pwrite (self->fd,
&end_time,
sizeof (end_time),
G_STRUCT_OFFSET (SpCaptureFileHeader, end_time));
if (ret < 0 && errno == EAGAIN)
goto do_end;
return TRUE;
}

View File

@ -116,6 +116,9 @@ gboolean sp_capture_writer_splice (SpCaptureWriter *
gboolean _sp_capture_writer_splice_from_fd (SpCaptureWriter *self,
int fd,
GError **error) G_GNUC_INTERNAL;
gboolean _sp_capture_writer_set_time_range (SpCaptureWriter *self,
gint64 start_time,
gint64 end_time) G_GNUC_INTERNAL;
#ifndef SP_DISABLE_GOBJECT
# define SP_TYPE_CAPTURE_WRITER (sp_capture_writer_get_type())