diff --git a/bob/io/stream/stream.py b/bob/io/stream/stream.py index 505aefd434bb9057b80976124d8f062c4b00aee2..70cf3df397e8adbbaac2ebbf2cd9800a3047b746 100644 --- a/bob/io/stream/stream.py +++ b/bob/io/stream/stream.py @@ -862,7 +862,16 @@ class StreamSave(StreamFilter): raise ValueError("Output file is not a valid StreamFile.") def put(self, data, timestamp=None): - self.file.put_frame(self.name, data) + """Pass data and timestamp to the :obj:`~bob.io.stream.StreamFile` to write to disk. + + Parameters + ---------- + data : :obj:`numpy.ndarray` + data to write to file. + timestamp : int or float + Timestamp of `data`, by default None. + """ + self.file.put_frame(self.name, data, timestamp) ################################################################################ diff --git a/bob/io/stream/stream_file.py b/bob/io/stream/stream_file.py index e31ad4978547ef80214ced8b459950dceed041d0..34f8e2971cf3c5c4752a0af0e4d1fe3040b35162 100644 --- a/bob/io/stream/stream_file.py +++ b/bob/io/stream/stream_file.py @@ -200,7 +200,7 @@ class StreamFile: # TODO rotate if requested return data - def put_frame(self, name, data): + def put_frame(self, name, data, timestamp=None): """Appends `data` (a frame of a stream) to the hdf5 file. Parameters @@ -211,3 +211,9 @@ class StreamFile: Data frame to append. """ self.hdf5_file.append(name, data) + if timestamp is not None: + try: + previous_timestamps = self.hdf5_file.get_attribute("timestamps", name) + except RuntimeError: # No previous timestamps + previous_timestamps = [] + self.hdf5_file.set_attribute("timestamps", np.append(previous_timestamps, timestamp), name)