Skip to content

tracker

Tracker(camera, callback_thread_closed=None, callback_new_tracking_position=None) ¤

Bases: object

Source code in motiontracker\tracker.py
32
33
34
35
36
37
38
39
40
41
def __init__(
    self,
    camera: BaseCamera,
    callback_thread_closed=None,
    callback_new_tracking_position=None,
):
    """Start the background camera thread if it isn't running yet."""
    Tracker.camera = camera
    Tracker.callback_thread_closed = callback_thread_closed
    Tracker.callback_new_tracking_position = callback_new_tracking_position

get_frame(timeout=None) ¤

Return the current camera frame.

Source code in motiontracker\tracker.py
67
68
69
70
71
72
73
74
75
76
77
78
79
80
def get_frame(self, timeout=None):
    """Return the current camera frame."""
    # if the camera is off just return the dummy image
    if Tracker.thread is None or Tracker.stop_tracking_flag:
        log.warn("Tracking thread has not started! Sending Dummy Image from camera")
        return Tracker.camera.get_frame()

    log.debug("Inside Tracker Get Frame, Waiting for Event")
    success = Tracker.event.wait(timeout=timeout)
    if not success:
        log.debug("Tracker frame took too long, raising exception")
        raise RuntimeError("No tracking frame received")
    Tracker.event.clear()
    return Tracker.track_frame