Improve FrameContainer and FrameSelector to be more memory efficient
- FrameContainers can now load a subset of themselves from an HDF5 file
- FrameSelectors now can handle
bob.io.video.readerinstances to avoid loading the whole video into memory.
For example, you can do:
path = '.../fc.hdf5' with bob.io.base.HDF5File(path) as f: # load only a subset of the FrameContainer fc = bob.bio.video.FrameContainer().load(f, selection_style="spread", max_number_of_frames=20)
path = '.../video.mp4' fs = bob.bio.video.FrameSelector(selection_style="spread", max_number_of_frames=20) fc = fs(bob.io.video.reader(path)) # only loads 20 frames into memory