TuyaOS
tkl_video_in.h
浏览该文件的文档.
1
13#ifndef __TKL_VIDEO_IN_H__
14#define __TKL_VIDEO_IN_H__
15
16#include "tuya_cloud_types.h"
17#include "tkl_media.h"
18#include "tkl_isp.h"
19
20#ifdef __cplusplus
21 extern "C" {
22#endif
23
24typedef struct
25{
26 // 1个IIC+host 对应一个video设备 hardware_port[0] + host_port[0] 构造成1个video设备
27 UINT32_T * hardware_port; // 存放iic
28 UINT32_T * host_port; // 存放host dvp or mipi
29 UINT32_T haraware_source_num; // 一共有多少对 iic + host
30
31 // 视频内存池的分配方法 在RTOS系统有片外的PSRAM 所以需要支持这个
32 void (*v_mem_free)(void *);
33 void *(*v_mem_malloc)(UINT32_T size);
34
36
37typedef struct
38{
39 UINT32_T page;
40 UINT32_T reg_index;
41 UINT32_T val;
43
44typedef enum
45{
46 TKL_VI_SENSOR_TYPE_IIC,
47 TKL_VI_SENSOR_TYPE_SPI,
48}TKL_VI_SENSOR_CBUS_TYPE_E;
49
50typedef struct
51{
52 CHAR_T conf[128]; // isp conf path
53 CHAR_T conf1[128]; // isp conf1 path
54 CHAR_T conf2[128]; // isp conf2 path
55 CHAR_T conf3[128]; // isp conf3 path
56 CHAR_T version[32]; // version num
57 CHAR_T name[16]; // isp sensor num
58 TKL_ISP_DN_SWITCH_CONFIG_T isp_dn_switch_config; // ADN switch config
59 TKL_VI_SENSOR_CBUS_TYPE_E sensor_type; // sensor control bus type
60 INT32_T addr; // sensor address
61 INT32_T width;
62 INT32_T height;
64
65typedef struct
66{
67 INT32_T enable; // 1,enable,0,disable
68 TKL_VI_CHN_E chn; // video input channel
69 INT32_T mirror; // mirror defaults
70 INT32_T filp; // filp defaults
71 TKL_VI_ISP_CONFIG_T isp; // isp config
72 VOID * pdata; // reserver data
74
75typedef struct
76{
77 FLOAT_T x; // 矩形框x坐标 | [0.0 - 1.0]
78 FLOAT_T y; // 矩形框y坐标 | [0.0 - 1.0]
79 FLOAT_T width; // 矩形框宽度 | [0.0 - 1.0]
80 FLOAT_T height; // 矩形框高度 | [0.0 - 1.0]
82
83typedef struct
84{
85 TKL_VI_RECT_T draw_rect; // coordinate region
86 FLOAT_T score; // score | [0.0 - 1.0]
87 TKL_MEDIA_DETECT_TYPE_E type; // 目标类型,人形,宠物,火焰等
89
90typedef struct
91{
92 INT32_T count;
93 TKL_VI_DETECT_TARGET_T target[TKL_VI_TARGET_MAX];
95
96typedef struct
97{
98 INT32_T sensitivity;
100
109OPERATE_RET tkl_vi_init(TKL_VI_CONFIG_T *pconfig, INT32_T count);
110
119OPERATE_RET tkl_vi_set_mirror_flip(TKL_VI_CHN_E chn, TKL_VI_MIRROR_FLIP_E flag);
120
129OPERATE_RET tkl_vi_get_mirror_flip(TKL_VI_CHN_E chn, TKL_VI_MIRROR_FLIP_E *flag);
130
136OPERATE_RET tkl_vi_uninit(VOID);
137
146OPERATE_RET tkl_vi_sensor_reg_set( TKL_VI_CHN_E chn, TKL_VI_SENSOR_REG_CONFIG_T *parg);
147
156OPERATE_RET tkl_vi_sensor_reg_get( TKL_VI_CHN_E chn, TKL_VI_SENSOR_REG_CONFIG_T *parg);
157
165OPERATE_RET tkl_vi_detect_start(TKL_VI_CHN_E chn, TKL_MEDIA_DETECT_TYPE_E type);
166
174OPERATE_RET tkl_vi_detect_stop(TKL_VI_CHN_E chn, TKL_MEDIA_DETECT_TYPE_E type);
175
185OPERATE_RET tkl_vi_detect_get_result(TKL_VI_CHN_E chn, TKL_MEDIA_DETECT_TYPE_E type, TKL_VI_DETECT_RESULT_T *presult);
186
196OPERATE_RET tkl_vi_detect_set(TKL_VI_CHN_E chn, TKL_MEDIA_DETECT_TYPE_E type, TKL_VI_DETECT_PARAM_T *pparam);
197
198#ifdef __cplusplus
199}
200#endif
201
202#endif
Definition: tkl_isp.h:80
Definition: tkl_video_in.h:66
Definition: tkl_video_in.h:97
Definition: tkl_video_in.h:91
Definition: tkl_video_in.h:84
Definition: tkl_video_in.h:25
Definition: tkl_video_in.h:51
Definition: tkl_video_in.h:76
Definition: tkl_video_in.h:38
Audio and video generic type definition header file
OPERATE_RET tkl_vi_detect_stop(TKL_VI_CHN_E chn, TKL_MEDIA_DETECT_TYPE_E type)
detect stop
OPERATE_RET tkl_vi_sensor_reg_set(TKL_VI_CHN_E chn, TKL_VI_SENSOR_REG_CONFIG_T *parg)
set sensor reg value
OPERATE_RET tkl_vi_uninit(VOID)
vi uninit
OPERATE_RET tkl_vi_get_mirror_flip(TKL_VI_CHN_E chn, TKL_VI_MIRROR_FLIP_E *flag)
vi get mirror and flip
OPERATE_RET tkl_vi_detect_set(TKL_VI_CHN_E chn, TKL_MEDIA_DETECT_TYPE_E type, TKL_VI_DETECT_PARAM_T *pparam)
set detection param
OPERATE_RET tkl_vi_init(TKL_VI_CONFIG_T *pconfig, INT32_T count)
vi init
OPERATE_RET tkl_vi_detect_start(TKL_VI_CHN_E chn, TKL_MEDIA_DETECT_TYPE_E type)
detect start
OPERATE_RET tkl_vi_sensor_reg_get(TKL_VI_CHN_E chn, TKL_VI_SENSOR_REG_CONFIG_T *parg)
get sensor reg value
OPERATE_RET tkl_vi_detect_get_result(TKL_VI_CHN_E chn, TKL_MEDIA_DETECT_TYPE_E type, TKL_VI_DETECT_RESULT_T *presult)
get detection results
OPERATE_RET tkl_vi_set_mirror_flip(TKL_VI_CHN_E chn, TKL_VI_MIRROR_FLIP_E flag)
vi set mirror and flip