diplomat.utils.frame_store_api.FrameReader
- class diplomat.utils.frame_store_api.FrameReader(file: BinaryIO)[source]
Bases:
ABCThe frame reader API. Allows for reading frames from a diplomat frame store format to
TrackingDataobject.- abstract __init__(file: BinaryIO)[source]
Construct a frame read frame reader.
- Parameters:
file – The file to read frames from.
Methods
__init__(file)Construct a frame read frame reader.
close()Close this frame reader.
Get the header of this frame store.
has_next([num_frames])Checks to see if there are more frames available for reading.
read_frames([num_frames])Read frames from the frame store.
seek_frame(frame_idx)Seek to the specified frame in the frame store object.
Get the current frame this frame reader is on.
- abstract close()[source]
Close this frame reader. This does not close the file handler that this frame reader is utilizing, simply the frame reader itself.
- abstract get_header() DLFSHeader[source]
Get the header of this frame store.
- Returns:
A DLFSHeader object, which contains important metadata for this frame store.
- abstract has_next(num_frames: int = 1) bool[source]
Checks to see if there are more frames available for reading.
- Parameters:
num_frames – An integer, the number of frames to check for. Defaults to 1 frame.
- Returns:
A boolean, True if there are at least num_frames frames available for reading from the file. Otherwise, this method returns False.
- abstract read_frames(num_frames: int = 1) TrackingData[source]
Read frames from the frame store.
- Parameters:
num_frames – The number of frames to read from the frame store, and integer. Defaults to 1.
- Returns:
A DeepLabCut TrackingData object, which will contain all of the probability frames for num_frames frames.
- Throws:
ValueError if the frame reader reaches the end of the file and the number of frames requested is greater than the number of frames available in the frame store.
- seek_frame(frame_idx: int)[source]
Seek to the specified frame in the frame store object. Implementors of the FrameReader class are not required to support this method, and the default implementation of this method throws a NotImplementedError.
- Parameters:
frame_idx – The frame index that the frame reader will move to, an integer.