DVP_CAMERA APIs

[English]

重要

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 config

  • bk_dvp_camera_encode_config() - change encode image upper and lower size or close auto encode

  • dvp_camera_i2c_read_uint8() - master read dvp senor register value by byte

  • dvp_camera_i2c_read_uint16() - master read dvp senor register value by double byte

  • dvp_camera_i2c_read_uint8() - master write dvp senor register value by byte

  • dvp_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

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

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