From d986006630ff005375daa77662bb8b5d77990d14 Mon Sep 17 00:00:00 2001 From: Shelby Merrick Date: Fri, 1 Oct 2021 11:02:54 -0400 Subject: [PATCH] Added sparse range support --- tools/fseqinfo.py | 69 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 47 insertions(+), 22 deletions(-) diff --git a/tools/fseqinfo.py b/tools/fseqinfo.py index 6c45ed007..6299df0fb 100644 --- a/tools/fseqinfo.py +++ b/tools/fseqinfo.py @@ -1,3 +1,11 @@ +############################################################################ +# # +# fseqinfo.py - A tool for dumping FSEQ header information # +# Usage: fseqinfo.py -h # +# From the ESPixelStick project: https://github.com/forkineye/ESPixelStick # +# # +############################################################################ + import sys, os, argparse, json from struct import unpack, calcsize from glob import glob @@ -57,6 +65,18 @@ def parse_header(filename): header['num_comp'] = (header['compression'] & 0xF0) | header['num_comp'] header['compression'] = header['compression'] & 0xF + # Sparse ranges + if header['num_sparse']: + header['sparse'] = [{}] + # Skip over compression blocks and iterate sparse ranges + file.seek(header['num_comp'] * 8, 1) + for sr in range(header['num_sparse']): + sparse_start, *_ = unpack('