blob: 99859fe2d1fedfdd28b40dcb234e5b7e55daa9ab [file] [log] [blame] [edit]
from intervaltree import IntervalTree, Interval
from utils import bitstream
class SegmentMap(object):
def __init__(self, grid):
self.segment_tree = IntervalTree()
for bits_info in grid.iter_all_frames():
self.segment_tree.add(
Interval(
begin=bits_info.bits.base_address,
end=bits_info.bits.base_address + bits_info.bits.frames,
data=bits_info,
))
def segment_info_for_frame(self, frame):
""" Return all bits info that match frame address. """
for frame in self.segment_tree[frame]:
yield frame.data