TuyaOS
tkl_video_enc.h
浏览该文件的文档.
1
12#ifndef __TKL_VIDEO_ENC_H__
13#define __TKL_VIDEO_ENC_H__
14
15#include "tuya_cloud_types.h"
16#include "tkl_video_in.h"
17
18#ifdef __cplusplus
19 extern "C" {
20#endif
21
22typedef enum
23{
24 TKL_VENC_0 = 0,
25 TKL_VENC_1,
26 TKL_VENC_2,
27 TKL_VENC_3,
28 TKL_VENC_4,
29 TKL_VENC_5,
30 TKL_VENC_6,
31 TKL_VENC_7,
32 TKL_VENC_MAX,
33}TKL_VENC_CHN_E;
34
35typedef enum
36{
37 TKL_VENC_MAIN = 0, // main stream
38 TKL_VENC_SUB, // sub stream
39 TKL_VENC_3RD, // 3rd stream
40 TKL_VENC_4TH, // 4th stream
41 TKL_VENC_SNAP, // snap
42 TKL_VENC_MD, // move detect
43 TKL_VENC_HD, // human detect
44 TKL_VENC_QR, // qrcode
45 TKL_VENC_TYPE_MAX,
46}TKL_VENC_TYPE_E; // stream work type
47
48typedef struct
49{
50 UINT_T enable; // 1,enable,0,disable
51 TKL_VENC_CHN_E chn; // video encode channel
52 TKL_VENC_TYPE_E type; // stream work type
53 TKL_MEDIA_CODEC_TYPE_E codectype; // codec type
54 UINT_T fps; // fps
55 UINT_T gop; // I Frame interval
56 UINT_T bitrate; // bitrate,kbps
57 UINT_T width;
58 UINT_T height;
59 UINT_T min_qp;
60 UINT_T max_qp;
62
63typedef struct
64{
65 TKL_MEDIA_FRAME_TYPE_E frametype; // bitrate,kbps
66 TKL_MEDIA_CODEC_TYPE_E codectype; // codec type
67 CHAR_T *pbuf; // frame buffer
68 UINT_T buf_size; // buffer size
69 UINT_T used_size; // used buffer size
70 UINT_T width; // frame width
71 UINT_T height; // frame height
72 UINT64_T pts; // sdk pts
73 UINT64_T timestamp; // system utc time,unit: ms
74 UINT_T seq; // frame sequence number
75 UINT_T fragment; // frame sequence's fragment 第几个分包
76 BYTE_T seq_error; // frame sequence is error 这张图片是否错误
77 BYTE_T fragment_is_last; // frame sequence's fragment is last fragment
78}TKL_VENC_FRAME_T; // video frame
79
80typedef struct
81{
82 INT32_T enable;
83 INT32_T is_dls;
85
86typedef struct
87{
88 UINT32_T pool_buff_num;
89 UINT32_T pool_buff_size;
91
101OPERATE_RET tkl_venc_init(INT32_T vi_chn, TKL_VENC_CONFIG_T *pconfig, INT32_T count);
102
112OPERATE_RET tkl_venc_get_frame(TKL_VI_CHN_E vi_chn, TKL_VENC_CHN_E venc_chn, TKL_VENC_FRAME_T *pframe);
113
122OPERATE_RET tkl_venc_get_first_snap(TKL_VI_CHN_E vi_chn, TKL_VENC_FRAME_T *pframe);
123
133OPERATE_RET tkl_venc_set_osd(TKL_VI_CHN_E vi_chn, TKL_VENC_CHN_E venc_chn, TKL_VENC_OSD_T *posd);
134
144OPERATE_RET tkl_venc_set_video_stream_buffer(TKL_VI_CHN_E vi_chn, TKL_VENC_CHN_E venc_chn, TKL_VENC_STREAM_BUFF_T *parg);
145
154OPERATE_RET tkl_venc_start(TKL_VI_CHN_E vi_chn, TKL_VENC_CHN_E venc_chn);
155
164OPERATE_RET tkl_venc_stop( TKL_VI_CHN_E vi_chn, TKL_VENC_CHN_E venc_chn);
165
173OPERATE_RET tkl_venc_uninit(TKL_VI_CHN_E vi_chn);
174
175#ifdef __cplusplus
176}
177#endif
178
179#endif
Definition: tkl_video_enc.h:49
Definition: tkl_video_enc.h:64
Definition: tkl_video_enc.h:81
Definition: tkl_video_enc.h:87
Definition: pbuf.h:186
OPERATE_RET tkl_venc_set_osd(TKL_VI_CHN_E vi_chn, TKL_VENC_CHN_E venc_chn, TKL_VENC_OSD_T *posd)
video encode set osd
OPERATE_RET tkl_venc_start(TKL_VI_CHN_E vi_chn, TKL_VENC_CHN_E venc_chn)
video encode start
OPERATE_RET tkl_venc_init(INT32_T vi_chn, TKL_VENC_CONFIG_T *pconfig, INT32_T count)
video encode init
OPERATE_RET tkl_venc_set_video_stream_buffer(TKL_VI_CHN_E vi_chn, TKL_VENC_CHN_E venc_chn, TKL_VENC_STREAM_BUFF_T *parg)
video encode stream buff pool set
OPERATE_RET tkl_venc_uninit(TKL_VI_CHN_E vi_chn)
video encode uninit
OPERATE_RET tkl_venc_get_first_snap(TKL_VI_CHN_E vi_chn, TKL_VENC_FRAME_T *pframe)
video first snap
OPERATE_RET tkl_venc_stop(TKL_VI_CHN_E vi_chn, TKL_VENC_CHN_E venc_chn)
video encode stop
OPERATE_RET tkl_venc_get_frame(TKL_VI_CHN_E vi_chn, TKL_VENC_CHN_E venc_chn, TKL_VENC_FRAME_T *pframe)
video encode get frame
video input