aboutsummaryrefslogtreecommitdiffstats
path: root/samples
diff options
context:
space:
mode:
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>2021-12-17 16:49:51 +0900
committer坂本 貴史 <o-takashi@sakamocchi.jp>2021-12-18 14:53:09 +0900
commiteb5d3a1809da9280c6f91afe9f5d925055dea8cf (patch)
treefcd7f5c5e537cdba871ef25dc5a12c164103defd /samples
parentd61bafc7e6ca43f90f017217c7016217fcac9c53 (diff)
downloadlibhinoko-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-xsamples/iso-rx-multiple9
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):