|
|
|
@ -120,19 +120,17 @@ def replay_service(s, msgs): |
|
|
|
|
|
|
|
|
|
def replay_cameras(lr, frs, disable_tqdm=False): |
|
|
|
|
eon_cameras = [ |
|
|
|
|
("roadCameraState", DT_MDL, eon_f_frame_size, VisionStreamType.VISION_STREAM_ROAD, True), |
|
|
|
|
("driverCameraState", DT_DMON, eon_d_frame_size, VisionStreamType.VISION_STREAM_DRIVER, False), |
|
|
|
|
("roadCameraState", DT_MDL, eon_f_frame_size, VisionStreamType.VISION_STREAM_ROAD), |
|
|
|
|
("driverCameraState", DT_DMON, eon_d_frame_size, VisionStreamType.VISION_STREAM_DRIVER), |
|
|
|
|
] |
|
|
|
|
tici_cameras = [ |
|
|
|
|
("roadCameraState", DT_MDL, tici_f_frame_size, VisionStreamType.VISION_STREAM_ROAD, False), |
|
|
|
|
("wideRoadCameraState", DT_MDL, tici_e_frame_size, VisionStreamType.VISION_STREAM_WIDE_ROAD, False), |
|
|
|
|
("driverCameraState", DT_DMON, tici_d_frame_size, VisionStreamType.VISION_STREAM_DRIVER, False), |
|
|
|
|
("roadCameraState", DT_MDL, tici_f_frame_size, VisionStreamType.VISION_STREAM_ROAD), |
|
|
|
|
("wideRoadCameraState", DT_MDL, tici_e_frame_size, VisionStreamType.VISION_STREAM_WIDE_ROAD), |
|
|
|
|
("driverCameraState", DT_DMON, tici_d_frame_size, VisionStreamType.VISION_STREAM_DRIVER), |
|
|
|
|
] |
|
|
|
|
|
|
|
|
|
def replay_camera(s, stream, dt, vipc_server, frames, size, use_extra_client): |
|
|
|
|
def replay_camera(s, stream, dt, vipc_server, frames, size): |
|
|
|
|
services = [(s, stream)] |
|
|
|
|
if use_extra_client: |
|
|
|
|
services.append(("wideRoadCameraState", VisionStreamType.VISION_STREAM_WIDE_ROAD)) |
|
|
|
|
pm = messaging.PubMaster([s for s, _ in services]) |
|
|
|
|
rk = Ratekeeper(1 / dt, print_delay_threshold=None) |
|
|
|
|
|
|
|
|
@ -154,12 +152,12 @@ def replay_cameras(lr, frs, disable_tqdm=False): |
|
|
|
|
vipc_server.send(stream, img, msg.frameId, msg.timestampSof, msg.timestampEof) |
|
|
|
|
|
|
|
|
|
init_data = [m for m in lr if m.which() == 'initData'][0] |
|
|
|
|
cameras = tici_cameras if (init_data.initData.deviceType == 'tici') else eon_cameras |
|
|
|
|
cameras = tici_cameras if (init_data.initData.deviceType in ['tici', 'tizi']) else eon_cameras |
|
|
|
|
|
|
|
|
|
# init vipc server and cameras |
|
|
|
|
p = [] |
|
|
|
|
vs = VisionIpcServer("camerad") |
|
|
|
|
for (s, dt, size, stream, use_extra_client) in cameras: |
|
|
|
|
for (s, dt, size, stream) in cameras: |
|
|
|
|
fr = frs.get(s, None) |
|
|
|
|
|
|
|
|
|
frames = None |
|
|
|
@ -171,10 +169,8 @@ def replay_cameras(lr, frs, disable_tqdm=False): |
|
|
|
|
frames.append(img.flatten().tobytes()) |
|
|
|
|
|
|
|
|
|
vs.create_buffers(stream, 40, False, size[0], size[1]) |
|
|
|
|
if use_extra_client: |
|
|
|
|
vs.create_buffers(VisionStreamType.VISION_STREAM_WIDE_ROAD, 40, False, size[0], size[1]) |
|
|
|
|
p.append(multiprocessing.Process(target=replay_camera, |
|
|
|
|
args=(s, stream, dt, vs, frames, size, use_extra_client))) |
|
|
|
|
args=(s, stream, dt, vs, frames, size))) |
|
|
|
|
|
|
|
|
|
vs.start_listener() |
|
|
|
|
return vs, p |
|
|
|
@ -307,7 +303,7 @@ def regen_and_save(route, sidx, daemons="all", upload=False, use_route_meta=Fals |
|
|
|
|
lr = LogReader(f"cd:/{route.replace('|', '/')}/{sidx}/rlog.bz2") |
|
|
|
|
fr = FrameReader(f"cd:/{route.replace('|', '/')}/{sidx}/fcamera.hevc") |
|
|
|
|
device_type = next(iter(lr)).initData.deviceType |
|
|
|
|
if device_type == 'tici': |
|
|
|
|
if device_type in ['tici', 'tizi']: |
|
|
|
|
wfr = FrameReader(f"cd:/{route.replace('|', '/')}/{sidx}/ecamera.hevc") |
|
|
|
|
else: |
|
|
|
|
wfr = None |
|
|
|
|