magscope.videoprocessing#
Attributes#
Classes#
Abstract base class for processes in the MagScope |
|
Process objects represent activity that is run in a separate process |
Module Contents#
- class magscope.videoprocessing.VideoProcessorManager[source]#
Bases:
magscope.processes.ManagerProcessBaseAbstract base class for processes in the MagScope
Subclass requirements: * Each subclass should have a unique name. * There should only be one instance of each subclass (singleton). * The class name is used for consistent inter-process identification.
- _workers: list[VideoWorker] = [][source]#
- set_settings(settings: magscope.settings.MagScopeSettings)[source]#
- report_profile_length() None[source]#
Arm a one-shot profile-length report for a future processed frame.
The request intentionally rides along with the normal worker task queue instead of probing the current
VideoBuffercontents immediately. This keeps the result tied to video processed after the request arrives and ensures only one worker handles the request at a time via a normal task-local flag.
- report_zlut_profile_length(bead_ids: tuple[int, Ellipsis] = (), bead_rois: tuple[tuple[int, int, int, int], Ellipsis] = ()) None[source]#
- _process_profile_length_reports() None[source]#
Forward the first successful worker measurement back to the UI.
Workers only enqueue successful measurements, so leaving the pending flag armed causes later normal processing tasks to keep carrying the request until one succeeds.
- arm_zlut_sweep_capture(step_index: int, motor_z_value: float, remaining_profiles_per_bead: int, earliest_timestamp: float, bead_ids: tuple[int, Ellipsis] = (), bead_rois: tuple[tuple[int, int, int, int], Ellipsis] = ()) None[source]#
- class magscope.videoprocessing.VideoWorker(tasks: multiprocessing.queues.Queue, locks: dict[str, multiprocessing.synchronize.Lock], reserved_stacks: ValueTypeUI32, completed_stacks: ValueTypeUI64, busy_count: ValueTypeUI8, gpu_lock: multiprocessing.Lock, profile_length_queue: multiprocessing.queues.Queue | None, warning_queue: multiprocessing.queues.Queue | None, zlut_capture_complete_queue: multiprocessing.queues.Queue | None, zlut_profile_length_queue: multiprocessing.queues.Queue | None, live_profile_enabled: ValueTypeUI8, live_profile_bead: ValueTypeInt)[source]#
Bases:
multiprocessing.ProcessProcess objects represent activity that is run in a separate process
The class is analogous to threading.Thread
- _busy_count: ValueTypeUI8[source]#
- _video_buffer: magscope.datatypes.VideoBuffer | None = None[source]#
- _tracks_buffer: magscope.datatypes.MatrixBuffer | None = None[source]#
- _zlut_sweep_dataset: magscope.datatypes.ZLUTSweepDataset | None = None[source]#