96 lines
2.5 KiB
C
Executable File
96 lines
2.5 KiB
C
Executable File
/**
|
|
Image operation module.
|
|
|
|
This module supports rendering osds and masks on video frame.
|
|
|
|
@file videosprite.h
|
|
@ingroup mIAppVideosprite
|
|
|
|
Copyright Novatek Microelectronics Corp. 2018. All rights reserved.
|
|
*/
|
|
#ifndef _VIDEO_SPRITE_INTERNAL_H_
|
|
#define _VIDEO_SPRITE_INTERNAL_H_
|
|
|
|
#include <kwrap/type.h>
|
|
#include "kflow_common/type_vdo.h"
|
|
|
|
typedef enum {
|
|
VDS_QS_NULL,
|
|
VDS_QS_IME_STAMP,
|
|
VDS_QS_IME_MASK,
|
|
VDS_QS_IME_EXT_STAMP,
|
|
VDS_QS_IME_EXT_MASK,
|
|
VDS_QS_ENC_EXT_STAMP,
|
|
VDS_QS_ENC_EXT_MASK,
|
|
VDS_QS_ENC_COE_STAMP,
|
|
VDS_QS_ENC_JPG_STAMP,
|
|
VDS_QS_VO_STAMP,
|
|
VDS_QS_VO_MASK,
|
|
ENUM_DUMMY4WORD(VDS_QUERY_STAGE)
|
|
} VDS_QUERY_STAGE;
|
|
|
|
typedef enum _VDS_INTERNAL_MASK_TYPE {
|
|
VDS_INTERNAL_MASK_TYPE_NULL,
|
|
VDS_INTERNAL_MASK_TYPE_SOLID,
|
|
VDS_INTERNAL_MASK_TYPE_HOLLOW,
|
|
VDS_INTERNAL_MASK_TYPE_INCONTINUOUS,
|
|
VDS_INTERNAL_MASK_TYPE_MAX,
|
|
ENUM_DUMMY4WORD(VDS_INTERNAL_MASK_TYPE)
|
|
} VDS_INTERNAL_MASK_TYPE;
|
|
|
|
typedef struct {
|
|
UINT32 en;
|
|
VDO_PXLFMT fmt;
|
|
UPOINT pos;
|
|
USIZE size;
|
|
UINT32 addr;
|
|
UINT32 alpha;
|
|
} VDS_INTERNAL_EXT_STAMP;
|
|
|
|
typedef struct {
|
|
UINT32 en;
|
|
VDS_INTERNAL_MASK_TYPE type;
|
|
UINT32 color;
|
|
union{
|
|
struct{
|
|
UPOINT pos[4];
|
|
UINT32 alpha;
|
|
}normal;
|
|
struct{
|
|
UPOINT pos;
|
|
UINT32 h_line_len;
|
|
UINT32 h_hole_len;
|
|
UINT32 h_thickness;
|
|
UINT32 v_line_len;
|
|
UINT32 v_hole_len;
|
|
UINT32 v_thickness;
|
|
}incontinuous;
|
|
}data;
|
|
UINT32 thickness;
|
|
} VDS_INTERNAL_EXT_MASK;
|
|
|
|
extern int vds_max_coe_stamp;
|
|
extern int vds_max_ime_stamp;
|
|
extern int vds_max_ime_mask;
|
|
|
|
extern int nvt_vds_init(void);
|
|
extern void nvt_vds_exit(void);
|
|
extern int nvt_vds_ioctl (int fd, unsigned int cmd, void *arg);
|
|
extern int vds_init(void);
|
|
extern int vds_uninit(void);
|
|
extern void* vds_lock_context(VDS_QUERY_STAGE stage, UINT32 id, UINT32 *ime_flag);
|
|
extern int vds_unlock_context(VDS_QUERY_STAGE stage, UINT32 id, UINT32 ime_flag);
|
|
extern int vds_info_show(void *m, void *v);
|
|
extern int vds_cmd_show(void *m, void *v);
|
|
extern void vds_cmd_write(char *cmd_line, int size);
|
|
extern void vds_save_write(int phase, int pid, int vid, char *directory);
|
|
|
|
extern UINT32* vds_get_ime_palette(int vid);
|
|
extern UINT32* vds_get_coe_palette(int vid);
|
|
extern UINT32* vds_get_vo_palette(int vid);
|
|
|
|
extern void vds_save_latency(VDS_QUERY_STAGE stage, UINT32 id, UINT32 lock, UINT64 time);
|
|
extern void vds_latency_show(void *m, void *v, int clear);
|
|
|
|
#endif //_VIDEO_SPRITE_INTERNAL_H_
|