@@ -528,7 +528,17 @@ def _get_signal_size(self, block_index, seg_index, stream_index):
528528 f' stream { stream_index } ' )
529529
530530 def _get_signal_t_start (self , block_index , seg_index , stream_index ):
531- return self ._sigs_t_start [seg_index ] - self .global_t_start
531+
532+ stream_id = self .header ['signal_streams' ][stream_index ]['id' ]
533+ stream_mask = self .header ['signal_channels' ]['stream_id' ] == stream_id
534+
535+ # use first channel of stream as all channels in stream have a common t_start
536+ channel = self .header ['signal_channels' ][stream_mask ][0 ]
537+
538+ data = self ._sigs_memmaps [seg_index ][(channel ['name' ], channel ['id' ])]
539+ absolute_t_start = data ['timestamp' ][0 ]
540+
541+ return absolute_t_start / 1e6 - self .global_t_start
532542
533543 def _get_analogsignal_chunk (self , block_index , seg_index , i_start , i_stop ,
534544 stream_index , channel_indexes ):
@@ -569,7 +579,6 @@ def _get_analogsignal_chunk(self, block_index, seg_index, i_start, i_stop,
569579 stream_id = self .header ['signal_streams' ][stream_index ]['id' ]
570580 stream_mask = self .header ['signal_channels' ]['stream_id' ] == stream_id
571581
572- # channel_streams = self.
573582 channel_ids = self .header ['signal_channels' ][stream_mask ][channel_indexes ]['id' ]
574583 channel_names = self .header ['signal_channels' ][stream_mask ][channel_indexes ]['name' ]
575584
0 commit comments