45 lines
1.3 KiB
C
45 lines
1.3 KiB
C
#ifndef _OSD_H_
|
||
#define _OSD_H_
|
||
|
||
#include "video/video.h"
|
||
#include "system/sys_time.h"
|
||
|
||
#define OSD_OSD_1BIT_MODE 0x1
|
||
#define OSD_OSD_2BIT_MODE 0x2
|
||
#define OSD_OSD_16BIT_MODE 0x3
|
||
|
||
struct osd_cfg {
|
||
struct video_osd_attr attr;
|
||
struct video_text_osd text_osd;
|
||
void *rtc_fd;
|
||
char *osd_buf;
|
||
u32 osd_size;
|
||
u8 update;
|
||
u8 enable;
|
||
u16 src_width;
|
||
u16 src_height;
|
||
u8 format_str[64];
|
||
};
|
||
|
||
extern char *osd_buf_addr;
|
||
extern int sys_time_format(char *str, int str_len, struct sys_time *time);
|
||
extern void osd_close(void *isc);
|
||
extern int osd_buff_update(void *isc, char id);
|
||
extern void osd_init(void *isc);
|
||
extern void osd_en(void *isc, u8 enable);
|
||
extern int osd_attr_set(void *isc, struct video_osd_attr *osd_attr);
|
||
extern int osd_attr_get(void *isc, struct video_osd_attr *osd_attr);
|
||
extern int osd_set_src_width_height(void *isc, u16 w, u16 h);
|
||
|
||
//使用例子:osd_buf_ram_set(osd_buf_base), OSD的格式长度如strlen("yyyy-nn-dd hh:mm:ss")
|
||
//buf地址要在内部sram(buf大小:字宽*字高*格式长度/8,如:32*16*strlen("yyyy-nn-dd hh:mm:ss"))/8
|
||
extern void osd_buf_ram_set(void *buf);
|
||
|
||
#define OSD_DEFAULT_WIDTH 16 //与net_video_rec请求的OSD宽相同
|
||
#define OSD_DEFAULT_HEIGHT 32 //与net_video_rec请求的OSD高相同
|
||
|
||
extern const unsigned char osd_text_str[];
|
||
extern const unsigned char osd_text_tab16[66][64] ALIGNED(64);
|
||
|
||
#endif
|