Add camera_t

This commit is contained in:
Kamil Trzcinski
2022-04-05 09:17:57 +02:00
parent 0dd713fcaa
commit 94df5c155c
9 changed files with 314 additions and 175 deletions

49
cmd/camera.h Normal file
View File

@ -0,0 +1,49 @@
#pragma once
#include "hw/links.h"
#include "hw/device.h"
#define MAX_DEVICES 20
#define MAX_HTTP_METHODS 20
#define CAMERA_DEVICE_CAMERA 0
typedef struct camera_s {
union {
device_t *devices[MAX_DEVICES];
struct {
device_t *camera;
struct {
device_t *codec_jpeg;
device_t *codec_h264;
};
union {
struct {
device_t *isp_srgb;
device_t *isp_yuuv;
device_t *isp_yuuv_low;
} isp;
struct {
device_t *isp;
} legacy_isp;
};
};
};
link_t links[MAX_DEVICES];
unsigned width, height;
unsigned nbufs;
} camera_t;
#define CAMERA(DEVICE) camera->devices[DEVICE]
void camera_init(camera_t *camera);
void camera_close(camera_t *camera);
int camera_open(camera_t *camera, const char *path);
int camera_configure_srgb_isp(camera_t *camera, bool use_half);
int camera_configure_srgb_legacy_isp(camera_t *camera);
int camera_set_params(camera_t *camera);
int camera_run(camera_t *camera);