diff options
author | Takashi Sakamoto <o-takashi@sakamocchi.jp> | 2021-12-17 16:49:51 +0900 |
---|---|---|
committer | 坂本 貴史 <o-takashi@sakamocchi.jp> | 2021-12-18 14:53:09 +0900 |
commit | eb5d3a1809da9280c6f91afe9f5d925055dea8cf (patch) | |
tree | fcd7f5c5e537cdba871ef25dc5a12c164103defd /samples | |
parent | d61bafc7e6ca43f90f017217c7016217fcac9c53 (diff) | |
download | libhinoko-eb5d3a1809da9280c6f91afe9f5d925055dea8cf.tar.gz |
samples: add helper function to parse timestamp in content IR multichannel context
This commit refactors IR multichannel context sample program for
timestamp processing.
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Diffstat (limited to 'samples')
-rwxr-xr-x | samples/iso-rx-multiple | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/samples/iso-rx-multiple b/samples/iso-rx-multiple index fba58f4..a9514c5 100755 --- a/samples/iso-rx-multiple +++ b/samples/iso-rx-multiple @@ -50,6 +50,12 @@ class IsoRxMultiple(Hinoko.FwIsoRxMultiple): self.__timer.cancel() print(error) + @staticmethod + def __ohci1394_tstamp_to_isoc_cycle(tstamp): + sec = (tstamp & 0x0000e000) >> 13 + cycle = tstamp & 0x00001fff + return (sec, cycle) + def do_interrupted(self, count): for i in range(count): data = self.get_payload(i) @@ -59,8 +65,7 @@ class IsoRxMultiple(Hinoko.FwIsoRxMultiple): frames = unpack('>{0}I'.format(len(data[4:-4]) // 4), data[4:-4]) tstamp = unpack('<I', data[-4:])[0] - sec = (tstamp & 0x0000e000) >> 13 - cycle = tstamp & 0x00001fff + sec, cycle = self.__ohci1394_tstamp_to_isoc_cycle(tstamp) print('{0:d},{1:d},{2:08x},{3[0]:08x},{3[1]:08x},{4}'.format(sec, cycle, iso_header, frames, i)) for i, frame in enumerate(frames): |