DVP_CAMERA APIs
重要
The DVP_CAMERA API v1.0 is the lastest stable DVP_CAMERA APIs. All new applications should use DVP_CAMERA API v1.0.
DVP_CAMERA Interface
Current software version support peripherals, please refer to Support Peripherals
DVP_CAMERA API Categories
Most of DVP_CAMERA APIs can be categoried as:
DVP_CAMERA APIs
The common APIs are prefixed with bk_camera, e.g. bk_dvp_camera_driver_init() etc.
- DVP_CAMERA APIs:
bk_dvp_camera_driver_init()- init dvp camera(power on sensor, begin to sample image)bk_dvp_camera_driver_deinit()- deinit dvp camera(power off sensor)bk_dvp_camera_get_device()- get current dvp dendor configbk_dvp_camera_encode_config()- change encode image upper and lower size or close auto encodedvp_camera_i2c_read_uint8()- master read dvp senor register value by bytedvp_camera_i2c_read_uint16()- master read dvp senor register value by double bytedvp_camera_i2c_read_uint8()- master write dvp senor register value by bytedvp_camera_i2c_write_uint16()- master write dvp senor register value by double byte
API Reference
Header File
Functions
-
const dvp_sensor_config_t **get_sensor_config_devices_list(void)
-
int get_sensor_config_devices_num(void)
-
const dvp_sensor_config_t *get_sensor_config_interface_by_id(sensor_id_t id)
-
void bk_dvp_set_devices_list(const dvp_sensor_config_t **list, uint16_t size)
This API set dvp camera device list.
- 返回
void
-
const dvp_sensor_config_t *bk_dvp_detect(void)
enumerate dvp camera
This API will auto detect dvp sensor, and init sensor, i2c module, psram, dma, ect.
@attation 1. bk_dvp_camera_driver_init api include bk_dvp_camera_enumerate function
- 参数
config – process for sensor data
- 返回
dvp_sensor_config: sensor ptr
NULL: not found
-
bk_err_t bk_dvp_init(camera_handle_t *handle, dvp_config_t *cfg, bk_dvp_callback_t *cb)
Init the camera.
This API will auto detect dvp sensor, and init sensor, jpeg module, i2c module, psram, dma, ect.
- 参数
handle – output handle
config – process for sensor data
cb – frame buffer ops callback @attation 1. you need make sure upper module exist.
- 返回
kNoErr: succeed
others: other errors.
-
bk_err_t bk_dvp_deinit(camera_handle_t *handle)
Deinit the camera.
This API will deinit sensor, jpeg module, i2c module, psram, dma, ect.
- 参数
handle – output handle when open
- 返回
kNoErr: succeed
others: other errors.
-
media_camera_device_t *bk_dvp_camera_get_device(void)
Get current use camera.
This API will called after bk_dvp_camera_driver_init
- 返回
dvp_camera_device_t *: succeed
NULL: current no sensor work.
-
bk_err_t bk_dvp_camera_power_enable(uint8_t enable)
dvp power on
This API called by user, before calling bk_dvp_driver_init, you should power on dvp
@attation 1. This api config ctrl by marco VIDEO_GPIO_CTRL_LDO_ENABLE
- 参数
enable – power up/down:1/0
- 返回
BK_OK: succeed
others: other errors.
-
const dvp_sensor_config_t *bk_dvp_get_sensor_auto_detect(void)
auto detect dvp camera
This API called by user, before use dvp camera
@attation 1. This api return a pointer for dvp camera sensor config
- 返回
get current dvp config(type)
return NULL
-
bk_err_t bk_dvp_h264_idr_reset(void)
regenerate idr frame
This API called by user, once call this api, will regenerate idr frame
@attation 1. This api only effect in camera is working, and work in h264 mode or h264&yuv mode,
- 返回
BK_OK: succeed
others: other errors.
API Typedefs
Header File
Structures
-
struct dvp_config_t
-
struct bk_dvp_callback_t
Public Members
-
void *(*frame_init)(uint16_t sensor_id, uint8_t camera_type, uint16_t image_format)
init frame buffer
-
int (*frame_deinit)(void *node)
deinit frame buffer
-
int (*frame_clear)(void *node)
clear frame buffer
-
int (*frame_complete)(uint16_t image_format, void *node, frame_buffer_t *buffer)
dvp notify upper layer a complete frame ready
-
frame_buffer_t *(*frame_malloc)(uint16_t image_format, void *node, uint32_t size)
malloc jpeg psram buffer
-
void *(*frame_init)(uint16_t sensor_id, uint8_t camera_type, uint16_t image_format)
-
struct dvp_sensor_config_t
dvp sensor configure
Public Members
-
char *name
sensor name
-
media_ppi_t def_ppi
sensor default resolution
-
frame_fps_t def_fps
sensor default fps
-
mclk_freq_t clk
sensor work clk in config fps and ppi
-
pixel_format_t fmt
sensor input data format
-
sync_level_t vsync
sensor vsync active level
-
sync_level_t hsync
sensor hsync active level
-
uint16_t id
sensor type, sensor_id_t
-
uint16_t address
sensor write register address by i2c
-
uint16_t fps_cap
sensor support fps
-
uint16_t ppi_cap
sensor support resoultions
-
bool (*detect)(void)
auto detect used dvp sensor
-
int (*init)(void)
init dvp sensor
-
int (*set_ppi)(media_ppi_t ppi)
set resolution of sensor
-
int (*set_fps)(frame_fps_t fps)
set fps of sensor
-
int (*power_down)(void)
power down or reset of sensor
-
int (*dump_register)(media_ppi_t ppi)
dump sensor register
-
void (*read_register)(bool enable)
read sensor register when write
-
char *name
Macros
-
GC_QVGA_USE_SUBSAMPLE
Enumerations
-
enum sensor_id_t
dvp sensor id type
Values:
-
enumerator ID_UNKNOW
-
enumerator ID_PAS6329
-
enumerator ID_OV7670
-
enumerator ID_PAS6375
-
enumerator ID_GC0328C
-
enumerator ID_BF2013
-
enumerator ID_GC0308C
-
enumerator ID_HM1055
-
enumerator ID_GC2145
-
enumerator ID_OV2640
-
enumerator ID_GC0308
-
enumerator ID_TVP5150
-
enumerator ID_SC101
-
enumerator ID_UNKNOW