You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
3.6 KiB

/*
* Copyright (c) Hisilicon Technologies Co., Ltd. 2009-2019. All rights reserved.
* Description: uapi_policy.h
*/
#ifndef __UAPI_POLICY_H__
#define __UAPI_POLICY_H__
#include "uapi_video.h"
#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif
#endif
/*
* Defines the video frame down sampling information of the keystone scene.
* CNcomment:
*/
typedef struct {
td_u32 frame_rate; /* down sampling frame rate. */ /* CNcomment: 起始下采样帧率 */
td_u32 width; /* down sampling width. */ /* CNcomment: 起始下采样的宽 */
td_u32 height; /* down sampling height. */ /* CNcomment: 起始下采样的高 */
uapi_video_pixel_format pixl_format; /* down sampling pixl format. */ /* CNcomment: 下采样的目标像素格式 */
} uapi_policy_keystone_down_sampling_info;
/*
* Defines the keystone capacity.
* CNcomment:
*/
typedef struct {
td_bool is_support_liner; /* support liner or not. */ /* CNcomment: 是否支持liner */
td_bool is_support_tile; /* support tile or not. */ /* CNcomment: 是否支持tile */
td_bool is_support_hfbc; /* support hfbc or not. */ /* CNcomment: 是否支持hfbc */
td_bool is_support_afbc; /* support afbc or not. */ /* CNcomment: 是否支持afbc */
uapi_pixel_bit_depth bit_depth; /* input bit depth. */ /* CNcomment: 输入位宽 */
} uapi_policy_keystone_capacity;
/*
* Defines the config of the keystone.
* CNcomment:
*/
typedef struct {
td_bool enable_keystone; /* keystone enable or not. */ /* CNcomment: 是否使能梯形校正 */
td_bool enable_xdp_crop; /* xdp crop or not. */ /* CNcomment: xdp是否做裁剪 */
td_bool enable_xdp_zme; /* xdp zme or not. */ /* CNcomment: xdp是否做缩放 */
td_bool enable_xdp_dc; /* xdp dc or not. */ /* CNcomment: xdp是否做dc */
td_bool enable_tunnel_low_delay; /* tunnel low delay open or not. */ /* CNcomment: 是否开启行号低延时 */
uapi_policy_keystone_down_sampling_info down_sampling_info; /* down sampling info. */ /* CNcomment: 下采样信息 */
uapi_policy_keystone_capacity capacity; /* keystone capacity. */ /* CNcomment: 梯形校正能力 */
} uapi_policy_keystone_cfg;
/*
* brief set keystone config information.CNcomment: CNend
* attention \n
* param N/A CNcomment: CNend
* param[in] keystone config information. CNcomment: CNend
* retval ::TD_SUCCESS Success. CNcomment: CNend
* retval ::TD_FAILURE Calling this API fails. CNcomment: API CNend
* see \n
* N/A CNcomment: CNend
*/
td_s32 uapi_policy_set_keystone_cfg(const uapi_policy_keystone_cfg *cfg);
/*
* brief get keystone config information.CNcomment: CNend
* attention \n
* param N/A CNcomment: CNend
* param[in] keystone config information. CNcomment: CNend
* retval ::TD_SUCCESS Success. CNcomment: CNend
* retval ::TD_FAILURE Calling this API fails. CNcomment: API CNend
* see \n
* N/A CNcomment: CNend
*/
td_s32 uapi_policy_get_keystone_cfg(uapi_policy_keystone_cfg *cfg);
#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif
#endif /* __UAPI_POLICY_H__ */