DualCameraState -> MultiCameraState

pull/2048/head
ZwX1616 5 years ago
parent 7b3f9b5f8c
commit f8090865c3
  1. 10
      selfdrive/camerad/cameras/camera_frame_stream.cc
  2. 12
      selfdrive/camerad/cameras/camera_frame_stream.h
  3. 12
      selfdrive/camerad/cameras/camera_qcom.cc
  4. 12
      selfdrive/camerad/cameras/camera_qcom.h
  5. 10
      selfdrive/camerad/cameras/camera_qcom2.c
  6. 12
      selfdrive/camerad/cameras/camera_qcom2.h
  7. 8
      selfdrive/camerad/cameras/camera_webcam.cc
  8. 12
      selfdrive/camerad/cameras/camera_webcam.h
  9. 2
      selfdrive/camerad/main.cc
  10. 2
      selfdrive/camerad/test/camera/test.c

@ -51,7 +51,7 @@ void camera_init(CameraState *s, int camera_id, unsigned int fps) {
tbuffer_init2(&s->camera_tb, FRAME_BUF_COUNT, "frame", camera_release_buffer, s); tbuffer_init2(&s->camera_tb, FRAME_BUF_COUNT, "frame", camera_release_buffer, s);
} }
void run_frame_stream(DualCameraState *s) { void run_frame_stream(MultiCameraState *s) {
int err; int err;
Context * context = Context::create(); Context * context = Context::create();
SubSocket * recorder_sock = SubSocket::create(context, "frame"); SubSocket * recorder_sock = SubSocket::create(context, "frame");
@ -121,7 +121,7 @@ CameraInfo cameras_supported[CAMERA_ID_MAX] = {
}, },
}; };
void cameras_init(DualCameraState *s) { void cameras_init(MultiCameraState *s) {
memset(s, 0, sizeof(*s)); memset(s, 0, sizeof(*s));
camera_init(&s->rear, CAMERA_ID_IMX298, 20); camera_init(&s->rear, CAMERA_ID_IMX298, 20);
@ -141,7 +141,7 @@ void cameras_init(DualCameraState *s) {
void camera_autoexposure(CameraState *s, float grey_frac) {} void camera_autoexposure(CameraState *s, float grey_frac) {}
void cameras_open(DualCameraState *s, VisionBuf *camera_bufs_rear, void cameras_open(MultiCameraState *s, VisionBuf *camera_bufs_rear,
VisionBuf *camera_bufs_focus, VisionBuf *camera_bufs_stats, VisionBuf *camera_bufs_focus, VisionBuf *camera_bufs_stats,
VisionBuf *camera_bufs_front) { VisionBuf *camera_bufs_front) {
assert(camera_bufs_rear); assert(camera_bufs_rear);
@ -155,11 +155,11 @@ void cameras_open(DualCameraState *s, VisionBuf *camera_bufs_rear,
camera_open(&s->rear, camera_bufs_rear, true); camera_open(&s->rear, camera_bufs_rear, true);
} }
void cameras_close(DualCameraState *s) { void cameras_close(MultiCameraState *s) {
camera_close(&s->rear); camera_close(&s->rear);
} }
void cameras_run(DualCameraState *s) { void cameras_run(MultiCameraState *s) {
set_thread_name("frame_streaming"); set_thread_name("frame_streaming");
run_frame_stream(s); run_frame_stream(s);
cameras_close(s); cameras_close(s);

@ -40,17 +40,17 @@ typedef struct CameraState {
} CameraState; } CameraState;
typedef struct DualCameraState { typedef struct MultiCameraState {
int ispif_fd; int ispif_fd;
CameraState rear; CameraState rear;
CameraState front; CameraState front;
} DualCameraState; } MultiCameraState;
void cameras_init(DualCameraState *s); void cameras_init(MultiCameraState *s);
void cameras_open(DualCameraState *s, VisionBuf *camera_bufs_rear, VisionBuf *camera_bufs_focus, VisionBuf *camera_bufs_stats, VisionBuf *camera_bufs_front); void cameras_open(MultiCameraState *s, VisionBuf *camera_bufs_rear, VisionBuf *camera_bufs_focus, VisionBuf *camera_bufs_stats, VisionBuf *camera_bufs_front);
void cameras_run(DualCameraState *s); void cameras_run(MultiCameraState *s);
void cameras_close(DualCameraState *s); void cameras_close(MultiCameraState *s);
void camera_autoexposure(CameraState *s, float grey_frac); void camera_autoexposure(CameraState *s, float grey_frac);
#ifdef __cplusplus #ifdef __cplusplus
} // extern "C" } // extern "C"

@ -268,7 +268,7 @@ static int imx179_s5k3p8sp_apply_exposure(CameraState *s, int gain, int integ_li
return err; return err;
} }
void cameras_init(DualCameraState *s) { void cameras_init(MultiCameraState *s) {
memset(s, 0, sizeof(*s)); memset(s, 0, sizeof(*s));
char project_name[1024] = {0}; char project_name[1024] = {0};
@ -527,7 +527,7 @@ static void imx298_ois_calibration(int ois_fd, uint8_t* eeprom) {
static void sensors_init(DualCameraState *s) { static void sensors_init(MultiCameraState *s) {
int err; int err;
int sensorinit_fd = -1; int sensorinit_fd = -1;
@ -1805,7 +1805,7 @@ static void front_start(CameraState *s) {
void cameras_open(DualCameraState *s, VisionBuf *camera_bufs_rear, VisionBuf *camera_bufs_focus, VisionBuf *camera_bufs_stats, VisionBuf *camera_bufs_front) { void cameras_open(MultiCameraState *s, VisionBuf *camera_bufs_rear, VisionBuf *camera_bufs_focus, VisionBuf *camera_bufs_stats, VisionBuf *camera_bufs_front) {
int err; int err;
struct ispif_cfg_data ispif_cfg_data; struct ispif_cfg_data ispif_cfg_data;
@ -2029,7 +2029,7 @@ static void ops_term() {
static void* ops_thread(void* arg) { static void* ops_thread(void* arg) {
int err; int err;
DualCameraState *s = (DualCameraState*)arg; MultiCameraState *s = (MultiCameraState*)arg;
set_thread_name("camera_settings"); set_thread_name("camera_settings");
@ -2101,7 +2101,7 @@ static void* ops_thread(void* arg) {
return NULL; return NULL;
} }
void cameras_run(DualCameraState *s) { void cameras_run(MultiCameraState *s) {
int err; int err;
pthread_t ops_thread_handle; pthread_t ops_thread_handle;
@ -2213,7 +2213,7 @@ void cameras_run(DualCameraState *s) {
cameras_close(s); cameras_close(s);
} }
void cameras_close(DualCameraState *s) { void cameras_close(MultiCameraState *s) {
camera_close(&s->rear); camera_close(&s->rear);
camera_close(&s->front); camera_close(&s->front);
} }

@ -106,19 +106,19 @@ typedef struct CameraState {
} CameraState; } CameraState;
typedef struct DualCameraState { typedef struct MultiCameraState {
int device; int device;
int ispif_fd; int ispif_fd;
CameraState rear; CameraState rear;
CameraState front; CameraState front;
} DualCameraState; } MultiCameraState;
void cameras_init(DualCameraState *s); void cameras_init(MultiCameraState *s);
void cameras_open(DualCameraState *s, VisionBuf *camera_bufs_rear, VisionBuf *camera_bufs_focus, VisionBuf *camera_bufs_stats, VisionBuf *camera_bufs_front); void cameras_open(MultiCameraState *s, VisionBuf *camera_bufs_rear, VisionBuf *camera_bufs_focus, VisionBuf *camera_bufs_stats, VisionBuf *camera_bufs_front);
void cameras_run(DualCameraState *s); void cameras_run(MultiCameraState *s);
void cameras_close(DualCameraState *s); void cameras_close(MultiCameraState *s);
void camera_autoexposure(CameraState *s, float grey_frac); void camera_autoexposure(CameraState *s, float grey_frac);
void actuator_move(CameraState *s, uint16_t target); void actuator_move(CameraState *s, uint16_t target);

@ -788,7 +788,7 @@ static void camera_open(CameraState *s, VisionBuf* b) {
} }
void cameras_init(DualCameraState *s) { void cameras_init(MultiCameraState *s) {
camera_init(&s->rear, CAMERA_ID_AR0231, 1, 20); // swap left/right camera_init(&s->rear, CAMERA_ID_AR0231, 1, 20); // swap left/right
printf("rear initted \n"); printf("rear initted \n");
camera_init(&s->wide, CAMERA_ID_AR0231, 0, 20); camera_init(&s->wide, CAMERA_ID_AR0231, 0, 20);
@ -802,7 +802,7 @@ void cameras_init(DualCameraState *s) {
#endif #endif
} }
void cameras_open(DualCameraState *s, VisionBuf *camera_bufs_rear, VisionBuf *camera_bufs_focus, VisionBuf *camera_bufs_stats, VisionBuf *camera_bufs_front, VisionBuf *camera_bufs_wide) { void cameras_open(MultiCameraState *s, VisionBuf *camera_bufs_rear, VisionBuf *camera_bufs_focus, VisionBuf *camera_bufs_stats, VisionBuf *camera_bufs_front, VisionBuf *camera_bufs_wide) {
int ret; int ret;
LOG("-- Opening devices"); LOG("-- Opening devices");
@ -900,7 +900,7 @@ static void camera_close(CameraState *s) {
tbuffer_stop(&s->camera_tb); tbuffer_stop(&s->camera_tb);
} }
static void cameras_close(DualCameraState *s) { static void cameras_close(MultiCameraState *s) {
camera_close(&s->rear); camera_close(&s->rear);
camera_close(&s->wide); camera_close(&s->wide);
camera_close(&s->front); camera_close(&s->front);
@ -919,7 +919,7 @@ struct video_event_data {
uint64_t tv_usec; uint64_t tv_usec;
}; };
void cameras_run(DualCameraState *s) { void cameras_run(MultiCameraState *s) {
// start devices // start devices
LOG("-- Start devices"); LOG("-- Start devices");
@ -1055,7 +1055,7 @@ void camera_autoexposure(CameraState *s, float grey_frac) {
} }
#ifdef NOSCREEN #ifdef NOSCREEN
void sendrgb(DualCameraState *s, uint8_t* dat, int len, uint8_t cam_id) { void sendrgb(MultiCameraState *s, uint8_t* dat, int len, uint8_t cam_id) {
int err, err2; int err, err2;
int scale = 6; int scale = 6;
int old_width = FRAME_WIDTH; int old_width = FRAME_WIDTH;

@ -72,7 +72,7 @@ typedef struct CameraState {
} CameraState; } CameraState;
typedef struct DualCameraState { typedef struct MultiCameraState {
int device; int device;
int video0_fd; int video0_fd;
@ -87,14 +87,14 @@ typedef struct DualCameraState {
#endif #endif
pthread_mutex_t isp_lock; pthread_mutex_t isp_lock;
} DualCameraState; } MultiCameraState;
void cameras_init(DualCameraState *s); void cameras_init(MultiCameraState *s);
void cameras_open(DualCameraState *s, VisionBuf *camera_bufs_rear, VisionBuf *camera_bufs_focus, VisionBuf *camera_bufs_stats, VisionBuf *camera_bufs_front, VisionBuf *camera_bufs_wide); void cameras_open(MultiCameraState *s, VisionBuf *camera_bufs_rear, VisionBuf *camera_bufs_focus, VisionBuf *camera_bufs_stats, VisionBuf *camera_bufs_front, VisionBuf *camera_bufs_wide);
void cameras_run(DualCameraState *s); void cameras_run(MultiCameraState *s);
void camera_autoexposure(CameraState *s, float grey_frac); void camera_autoexposure(CameraState *s, float grey_frac);
#ifdef NOSCREEN #ifdef NOSCREEN
void sendrgb(DualCameraState *s, uint8_t* dat, int len, uint8_t cam_id); void sendrgb(MultiCameraState *s, uint8_t* dat, int len, uint8_t cam_id);
#endif #endif
#ifdef __cplusplus #ifdef __cplusplus

@ -221,7 +221,7 @@ CameraInfo cameras_supported[CAMERA_ID_MAX] = {
}, },
}; };
void cameras_init(DualCameraState *s) { void cameras_init(MultiCameraState *s) {
memset(s, 0, sizeof(*s)); memset(s, 0, sizeof(*s));
camera_init(&s->rear, CAMERA_ID_LGC920, 20); camera_init(&s->rear, CAMERA_ID_LGC920, 20);
@ -241,7 +241,7 @@ void cameras_init(DualCameraState *s) {
void camera_autoexposure(CameraState *s, float grey_frac) {} void camera_autoexposure(CameraState *s, float grey_frac) {}
void cameras_open(DualCameraState *s, VisionBuf *camera_bufs_rear, void cameras_open(MultiCameraState *s, VisionBuf *camera_bufs_rear,
VisionBuf *camera_bufs_focus, VisionBuf *camera_bufs_stats, VisionBuf *camera_bufs_focus, VisionBuf *camera_bufs_stats,
VisionBuf *camera_bufs_front) { VisionBuf *camera_bufs_front) {
assert(camera_bufs_rear); assert(camera_bufs_rear);
@ -255,12 +255,12 @@ void cameras_open(DualCameraState *s, VisionBuf *camera_bufs_rear,
camera_open(&s->rear, camera_bufs_rear, true); camera_open(&s->rear, camera_bufs_rear, true);
} }
void cameras_close(DualCameraState *s) { void cameras_close(MultiCameraState *s) {
camera_close(&s->rear); camera_close(&s->rear);
camera_close(&s->front); camera_close(&s->front);
} }
void cameras_run(DualCameraState *s) { void cameras_run(MultiCameraState *s) {
set_thread_name("webcam_thread"); set_thread_name("webcam_thread");
int err; int err;

@ -39,17 +39,17 @@ typedef struct CameraState {
} CameraState; } CameraState;
typedef struct DualCameraState { typedef struct MultiCameraState {
int ispif_fd; int ispif_fd;
CameraState rear; CameraState rear;
CameraState front; CameraState front;
} DualCameraState; } MultiCameraState;
void cameras_init(DualCameraState *s); void cameras_init(MultiCameraState *s);
void cameras_open(DualCameraState *s, VisionBuf *camera_bufs_rear, VisionBuf *camera_bufs_focus, VisionBuf *camera_bufs_stats, VisionBuf *camera_bufs_front); void cameras_open(MultiCameraState *s, VisionBuf *camera_bufs_rear, VisionBuf *camera_bufs_focus, VisionBuf *camera_bufs_stats, VisionBuf *camera_bufs_front);
void cameras_run(DualCameraState *s); void cameras_run(MultiCameraState *s);
void cameras_close(DualCameraState *s); void cameras_close(MultiCameraState *s);
void camera_autoexposure(CameraState *s, float grey_frac); void camera_autoexposure(CameraState *s, float grey_frac);
#ifdef __cplusplus #ifdef __cplusplus
} // extern "C" } // extern "C"

@ -164,7 +164,7 @@ struct VisionState {
VisionBuf wide_camera_bufs[FRAME_BUF_COUNT]; VisionBuf wide_camera_bufs[FRAME_BUF_COUNT];
DualCameraState cameras; MultiCameraState cameras;
zsock_t *terminate_pub; zsock_t *terminate_pub;

@ -34,7 +34,7 @@ void tbuffer_stop(TBuffer *tb) {
} }
int main() { int main() {
DualCameraState s; MultiCameraState s;
cameras_init(&s); cameras_init(&s);
VisionBuf camera_bufs_rear[0x10] = {0}; VisionBuf camera_bufs_rear[0x10] = {0};
VisionBuf camera_bufs_focus[0x10] = {0}; VisionBuf camera_bufs_focus[0x10] = {0};

Loading…
Cancel
Save