|
|
@ -15,6 +15,25 @@ extern ExitHandler do_exit; |
|
|
|
|
|
|
|
|
|
|
|
namespace { |
|
|
|
namespace { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// TODO: make this more generic
|
|
|
|
|
|
|
|
CameraInfo cameras_supported[CAMERA_ID_MAX] = { |
|
|
|
|
|
|
|
[CAMERA_ID_IMX298] = { |
|
|
|
|
|
|
|
.frame_width = FRAME_WIDTH, |
|
|
|
|
|
|
|
.frame_height = FRAME_HEIGHT, |
|
|
|
|
|
|
|
.frame_stride = FRAME_WIDTH*3, |
|
|
|
|
|
|
|
.bayer = false, |
|
|
|
|
|
|
|
.bayer_flip = false, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
[CAMERA_ID_OV8865] = { |
|
|
|
|
|
|
|
.frame_width = 1632, |
|
|
|
|
|
|
|
.frame_height = 1224, |
|
|
|
|
|
|
|
.frame_stride = 2040, // seems right
|
|
|
|
|
|
|
|
.bayer = false, |
|
|
|
|
|
|
|
.bayer_flip = 3, |
|
|
|
|
|
|
|
.hdr = false |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
void camera_init(VisionIpcServer * v, CameraState *s, int camera_id, unsigned int fps, cl_device_id device_id, cl_context ctx, VisionStreamType rgb_type, VisionStreamType yuv_type) { |
|
|
|
void camera_init(VisionIpcServer * v, CameraState *s, int camera_id, unsigned int fps, cl_device_id device_id, cl_context ctx, VisionStreamType rgb_type, VisionStreamType yuv_type) { |
|
|
|
assert(camera_id < ARRAYSIZE(cameras_supported)); |
|
|
|
assert(camera_id < ARRAYSIZE(cameras_supported)); |
|
|
|
s->ci = cameras_supported[camera_id]; |
|
|
|
s->ci = cameras_supported[camera_id]; |
|
|
@ -54,25 +73,6 @@ void run_frame_stream(CameraState &camera, const char* frame_pkt) { |
|
|
|
|
|
|
|
|
|
|
|
} // namespace
|
|
|
|
} // namespace
|
|
|
|
|
|
|
|
|
|
|
|
// TODO: make this more generic
|
|
|
|
|
|
|
|
CameraInfo cameras_supported[CAMERA_ID_MAX] = { |
|
|
|
|
|
|
|
[CAMERA_ID_IMX298] = { |
|
|
|
|
|
|
|
.frame_width = FRAME_WIDTH, |
|
|
|
|
|
|
|
.frame_height = FRAME_HEIGHT, |
|
|
|
|
|
|
|
.frame_stride = FRAME_WIDTH*3, |
|
|
|
|
|
|
|
.bayer = false, |
|
|
|
|
|
|
|
.bayer_flip = false, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
[CAMERA_ID_OV8865] = { |
|
|
|
|
|
|
|
.frame_width = 1632, |
|
|
|
|
|
|
|
.frame_height = 1224, |
|
|
|
|
|
|
|
.frame_stride = 2040, // seems right
|
|
|
|
|
|
|
|
.bayer = false, |
|
|
|
|
|
|
|
.bayer_flip = 3, |
|
|
|
|
|
|
|
.hdr = false |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void cameras_init(VisionIpcServer *v, MultiCameraState *s, cl_device_id device_id, cl_context ctx) { |
|
|
|
void cameras_init(VisionIpcServer *v, MultiCameraState *s, cl_device_id device_id, cl_context ctx) { |
|
|
|
camera_init(v, &s->road_cam, CAMERA_ID_IMX298, 20, device_id, ctx, |
|
|
|
camera_init(v, &s->road_cam, CAMERA_ID_IMX298, 20, device_id, ctx, |
|
|
|
VISION_STREAM_RGB_BACK, VISION_STREAM_YUV_BACK); |
|
|
|
VISION_STREAM_RGB_BACK, VISION_STREAM_YUV_BACK); |
|
|
|