Webcam: prepare to make camerad a PythonProcess (#31202)

* webcam

* support /dev/* syntax

* support strings
old-commit-hash: 75d3e5fb4e
chrysler-long2
Justin Newberry 1 year ago committed by GitHub
parent 06f868aa59
commit 0a866b2618
  1. 4
      tools/webcam/camera.py
  2. 9
      tools/webcam/camerad.py

@ -3,6 +3,10 @@ import numpy as np
class Camera: class Camera:
def __init__(self, cam_type_state, stream_type, camera_id): 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.cam_type_state = cam_type_state
self.stream_type = stream_type self.stream_type = stream_type
self.cur_frame_id = 0 self.cur_frame_id = 0

@ -25,7 +25,7 @@ class Camerad:
self.cameras = [] self.cameras = []
for c in 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}" assert cam.cap.isOpened(), f"Can't find camera {c}"
self.cameras.append(cam) self.cameras.append(cam)
self.vipc_server.create_buffers(c.stream_type, 20, False, cam.W, cam.H) self.vipc_server.create_buffers(c.stream_type, 20, False, cam.W, cam.H)
@ -63,6 +63,11 @@ class Camerad:
for t in threads: for t in threads:
t.join() t.join()
if __name__ == "__main__":
def main():
camerad = Camerad() camerad = Camerad()
camerad.run() camerad.run()
if __name__ == "__main__":
main()

Loading…
Cancel
Save