From 0a866b261827a1e2743734b47edb901bc768149f Mon Sep 17 00:00:00 2001 From: Justin Newberry Date: Mon, 29 Jan 2024 13:10:55 -0500 Subject: [PATCH] Webcam: prepare to make camerad a PythonProcess (#31202) * webcam * support /dev/* syntax * support strings old-commit-hash: 75d3e5fb4e16c0407cbf7a9b4df08939fa0fe660 --- tools/webcam/camera.py | 4 ++++ tools/webcam/camerad.py | 9 +++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/tools/webcam/camera.py b/tools/webcam/camera.py index 22438f0c98..d1d61b64d7 100644 --- a/tools/webcam/camera.py +++ b/tools/webcam/camera.py @@ -3,6 +3,10 @@ import numpy as np class Camera: def __init__(self, cam_type_state, stream_type, camera_id): + try: + camera_id = int(camera_id) + except ValueError: # allow strings, ex: /dev/video0 + pass self.cam_type_state = cam_type_state self.stream_type = stream_type self.cur_frame_id = 0 diff --git a/tools/webcam/camerad.py b/tools/webcam/camerad.py index caf044e7b6..ce33473f9a 100755 --- a/tools/webcam/camerad.py +++ b/tools/webcam/camerad.py @@ -25,7 +25,7 @@ class Camerad: self.cameras = [] for c in CAMERAS: - cam = Camera(c.msg_name, c.stream_type, int(c.cam_id)) + cam = Camera(c.msg_name, c.stream_type, c.cam_id) assert cam.cap.isOpened(), f"Can't find camera {c}" self.cameras.append(cam) self.vipc_server.create_buffers(c.stream_type, 20, False, cam.W, cam.H) @@ -63,6 +63,11 @@ class Camerad: for t in threads: t.join() -if __name__ == "__main__": + +def main(): camerad = Camerad() camerad.run() + + +if __name__ == "__main__": + main()