Files

1161 lines
43 KiB
C
Executable File

/*
* Copyright (c); XMEDIA. All rights reserved.
*/
#ifndef __XMEDIA_VPSS_H__
#define __XMEDIA_VPSS_H__
#include "xmedia_errcode.h"
#include "xmedia_sys.h"
#include "xmedia_isp.h"
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#define XMEDIA_VPSS_ICHN0 0
#define XMEDIA_VPSS_ICHN1 1
#define XMEDIA_VPSS_OCHN0 0
#define XMEDIA_VPSS_OCHN1 1
#define XMEDIA_VPSS_OCHN2 2
#define XMEDIA_VPSS_OCHN3 3
#define XMEDIA_VPSS_OVERLAP_POINT_TOP_LEFT 0
#define XMEDIA_VPSS_OVERLAP_POINT_TOP_RIGHT 1
#define XMEDIA_VPSS_OVERLAP_POINT_BOTTOM_LEFT 2
#define XMEDIA_VPSS_OVERLAP_POINT_BOTTOM_RIGHT 3
#define XMEDIA_VPSS_OVERLAP_POINT_NUM 4
#define XMEDIA_VPSS_INVALID_CHN (-1)
#define XMEDIA_VPSS_MAX_SELECT_OCHN_NUM (VPSS_MAX_PIPE_NUM * VPSS_MAX_OCHN_NUM)
#define XMEDIA_VPSS_MAX_PIPE_NUM_IN_GRP 2 // 拼接组最大的pipe个数
typedef enum {
XMEDIA_VPSS_STITCH_BLEND_MODE_LINEAR = 0, //直线模式
XMEDIA_VPSS_STITCH_BLEND_MODE_CURVE, //曲线模式
XMEDIA_VPSS_STITCH_BLEND_MAX
} xmedia_vpss_stitch_blend_mode;
typedef struct {
xmedia_bool stitch_blend_en; //拼接使能开关
xmedia_bool sync_en; //同步使能开关
xmedia_u32 stitch_num; //拼接路数
xmedia_vpss_stitch_blend_mode mode;//拼接融合模式
/*
* 拼接后大小:
* 宽度范围:[VPSS_MIN_STITCH_OUT_WIDTH, VPSS_MAX_STITCH_OUT_WIDTH]
* 高度范围:[VPSS_MIN_STITCH_OUT_HEIGHT, VPSS_MAX_STITCH_OUT_HEIGHT]
*/
xmedia_video_size out_size;
//描述拼接右图和左图重叠区域的点, 四个的顺序为上左、上右、下左、下右.
xmedia_video_point overlap_point[VPSS_MAX_STITCH_NUM - 1][XMEDIA_VPSS_OVERLAP_POINT_NUM];
} xmedia_vpss_stitch_blend_config;
typedef struct {
/*
* 拼接后大小:
* 宽度范围:[VPSS_MIN_STITCH_OUT_WIDTH, VPSS_MAX_STITCH_OUT_WIDTH]
* 高度范围:[VPSS_MIN_STITCH_OUT_HEIGHT, VPSS_MAX_STITCH_OUT_HEIGHT]
*/
xmedia_video_size out_size;
//描述拼接右图和左图重叠区域的点, 四个的顺序为上左、上右、下左、下右.
xmedia_video_point overlap_point[VPSS_MAX_STITCH_NUM - 1][XMEDIA_VPSS_OVERLAP_POINT_NUM];
} xmedia_vpss_stitch_size_attr;
typedef struct {
/*
* 融合区域占重叠区域的百分比。
* 取值范围:[0, 100]。0表示不融合,100表示重叠区域全部融合。默认值为10
*/
xmedia_u32 fusion_percent[VPSS_MAX_STITCH_NUM - 1];
/*
* 融合区域中线位置百分比。
* 取值范围:[0, 100]。0表示在重合区的最左边,100表示重合区的最右边。默认值为50
*/
xmedia_u32 fusion_mid_pos_percent[VPSS_MAX_STITCH_NUM - 1];
} xmedia_vpss_stitch_blend_attr;
typedef struct {
xmedia_bool nr_en; //3DNR使能开关
xmedia_video_compress_mode compress_mode; //参考帧压缩模式
} xmedia_vpss_nr_attr;
typedef struct {
xmedia_u32 max_w; //输入图像宽度
xmedia_u32 max_h; //输入图像高度
xmedia_video_pixel_format pixel_fmt; //输入图像像素格式
xmedia_video_dynamic_range dync_range; //输入图像动态范围
xmedia_video_frame_rate_ctrl frm_rate_ctrl; //输入帧率控制
xmedia_vpss_nr_attr nr_attr; //3DNR属性
xmedia_vpss_stitch_blend_config stitch_blend_cfg; //拼接融合属性
} xmedia_vpss_pipe_config;
typedef enum {
XMEDIA_VPSS_OCHN_MODE_USER = 0, // 用户模式
XMEDIA_VPSS_OCHN_MODE_AUTO, // 自动模式
XMEDIA_VPSS_OCHN_MODE_MAX
} xmedia_vpss_ochn_mode;
typedef struct {
xmedia_vpss_ochn_mode mode; //通道工作模式
xmedia_video_scale_mode scale_mode; //缩放模式
xmedia_u32 width; //目标图像的宽度.
xmedia_u32 height; //目标图像的高度.
xmedia_video_format video_fmt; //目标图像的视频格式.
xmedia_video_pixel_format pix_fmt; //目标图像的像素格式.
xmedia_video_dynamic_range dync_range; //目标图像的动态范围.
xmedia_video_compress_mode cmp_mode; //输出的压缩模式
xmedia_video_frame_rate_ctrl frm_rate_ctrl;//帧率控制信息.
xmedia_bool mirror_en; //镜像使能.
xmedia_bool flip_en; //翻转使能.
xmedia_u32 depth; //用户获取通道图像的队列长度.
} xmedia_vpss_ochn_config;
typedef struct {
xmedia_vpss_ochn_mode mode; //通道工作模式
xmedia_video_scale_mode scale_mode; //缩放模式
xmedia_u32 width; //目标图像的宽度.
xmedia_u32 height; //目标图像的高度.
xmedia_video_format video_fmt; //目标图像的视频格式.
xmedia_video_pixel_format pix_fmt; //目标图像的像素格式.
xmedia_video_dynamic_range dync_range; //目标图像的动态范围.
xmedia_video_compress_mode cmp_mode; //输出的压缩模式
xmedia_video_frame_rate_ctrl frm_rate_ctrl;//帧率控制信息.
xmedia_bool mirror_en; //镜像使能.
xmedia_bool flip_en; //翻转使能.
xmedia_u32 depth; //用户获取通道图像的队列长度.
} xmedia_vpss_ochn_attr;
typedef struct {
xmedia_s32 bind_ochn; //绑定的源物理通道.
xmedia_video_scale_mode scale_mode; //缩放模式
xmedia_u32 width; //目标图像的宽度.
xmedia_u32 height; //目标图像的高度.
xmedia_video_format video_fmt; //目标图像的视频格式.
xmedia_video_pixel_format pix_fmt; //目标图像的像素格式.
xmedia_video_dynamic_range dync_range; //目标图像的动态范围.
xmedia_video_compress_mode cmp_mode; //输出的压缩模式.
xmedia_u32 depth; //用户获取通道图像的队列长度.
xmedia_video_frame_rate_ctrl frm_rate_ctrl; //帧率控制信息.
} xmedia_vpss_ext_ochn_config;
typedef struct {
xmedia_s32 bind_ochn; //绑定的源物理通道.
xmedia_video_scale_mode scale_mode; //缩放模式
xmedia_u32 width; //目标图像的宽度.
xmedia_u32 height; //目标图像的高度.
xmedia_video_format video_fmt; //目标图像的视频格式.
xmedia_video_pixel_format pix_fmt; //目标图像的像素格式.
xmedia_video_dynamic_range dync_range; //目标图像的动态范围.
xmedia_video_compress_mode cmp_mode; //输出的压缩模式.
xmedia_u32 depth; //用户获取通道图像的队列长度.
xmedia_video_frame_rate_ctrl frm_rate_ctrl; //帧率控制信息.
} xmedia_vpss_ext_ochn_attr;
typedef struct {
xmedia_bool enable;
xmedia_u32 line_cnt; //低延时行号
xmedia_bool one_buf_en; //是否使用one buffer
} xmedia_vpss_low_delay_attr;
typedef struct {
xmedia_video_frame_info frame_info[VPSS_MAX_STITCH_NUM]; // 拼接图像
} xmedia_vpss_stitch_calibration_frame_info;
typedef struct {
xmedia_video_stitch_mode mode; // 标定模式
xmedia_u32 stitch_num; // 拼接路数
xmedia_video_point ajust_point[VPSS_MAX_STITCH_NUM - 1]; // 图像位置微调参数
} xmedia_vpss_stitch_calibration_config;
typedef struct {
xmedia_video_size out_size[VPSS_MAX_STITCH_NUM]; // GDC输出图像大小
xmedia_s64 pmf_coef[VPSS_MAX_STITCH_NUM][XMEDIA_VIDEO_PMF_COEF_NUM]; // GDC矫正矩阵
xmedia_video_point offset[VPSS_MAX_STITCH_NUM]; // GDC坐标偏移
xmedia_video_point overlap_point[VPSS_MAX_STITCH_NUM - 1][XMEDIA_VPSS_OVERLAP_POINT_NUM]; // 拼接重叠区域大小
xmedia_video_size stitch_out_size; // 拼接后输出大小
xmedia_video_rect effective_rect; // 拼接后图像有效区域
} xmedia_vpss_stitch_calibration_result;
typedef struct {
xmedia_u32 num; // 区域数量
xmedia_video_rect *ATTRIBUTE rect; // 区域坐标、宽高参数
} xmedia_vpss_rect_attr;
typedef enum {
XMEDIA_VPSS_WRAP_POS_PHY_OCHN = 0, // 物理通道的卷绕
XMEDIA_VPSS_WRAP_POS_EXT_OCHN, // 扩展通道的卷绕
XMEDIA_VPSS_WRAP_POS_MAX
} xmedia_vpss_wrap_pos;
typedef struct {
xmedia_bool enable; // 卷绕buf复用使能开关
xmedia_u32 buf_size; // 卷绕buf大小
xmedia_vpss_wrap_pos wrap_pos; // 卷绕的位置
} xmedia_vpss_wrap_buf_share_config;
typedef enum {
XMEDIA_VPSS_OUTPUT_MODE_INDEPENDENT = 0, // 不做非融合拼接
XMEDIA_VPSS_OUTPUT_MODE_H_SPLICING, // 水平非融合拼接
XMEDIA_VPSS_OUTPUT_MODE_V_SPLICING, // 垂直非融合拼接
XMEDIA_VPSS_OUTPUT_MODE_MAX
} xmedia_vpss_output_mode;
typedef struct {
xmedia_u32 pipe_num; // 非融合拼接的pipe数
xmedia_s32 pipe_id[XMEDIA_VPSS_MAX_PIPE_NUM_IN_GRP]; // 非融合拼接的pipe id
xmedia_s32 master_pipe_id; // 非融合拼接的主pipe id
xmedia_vpss_output_mode output_mode[VPSS_MAX_PHY_OCHN_NUM]; // 非融合拼接的通道拼接模式
} xmedia_vpss_splicing_grp_config;
/*
* 函数功能: 初始化vpss模块
* 函数参数:无
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
*/
xmedia_s32 xmedia_vpss_init(xmedia_void);
/*
* 函数功能: 去初始化vpss模块
* 函数参数:无
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
*/
xmedia_s32 xmedia_vpss_exit(xmedia_void);
/*
* 函数功能: 创建pipe
* 函数参数:
* pipe - 输入参数, pipe id号
* pipe_cfg - 输入参数, pipe配置
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_NOT_READY - vpss未准备好
* XMEDIA_ERRCODE_EXIST - 重复创建pipe
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_INVALID_PARAM - 输入参数非法
*/
xmedia_s32 xmedia_vpss_create_pipe(xmedia_s32 pipe, const xmedia_vpss_pipe_config *pipe_cfg);
/*
* 函数功能: 销毁pipe
* 函数参数:
* pipe - 输入参数, pipe id号
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* XMEDIA_ERRCODE_NOT_PERMITTED - pipe未禁用
* 注意:
* 必须在先禁用再销毁
*/
xmedia_s32 xmedia_vpss_destroy_pipe(xmedia_s32 pipe);
/*
* 函数功能: 启用pipe
* 函数参数:
* pipe - 输入参数, pipe id号
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_start_pipe(xmedia_s32 pipe);
/*
* 函数功能: 停用pipe
* 函数参数:
* pipe - 输入参数, pipe id号
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_stop_pipe(xmedia_s32 pipe);
/*
* 函数功能: 复位pipe
* 函数参数:
* pipe - 输入参数, pipe id号
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_reset_pipe(xmedia_s32 pipe);
/*
* 函数功能:设置pipe帧率控制属性
* 函数参数:
* pipe - 输入参数,pipe id号
* frm_rate_ctrl - 输入参数,pipe的帧率控制属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* XMEDIA_ERRCODE_INVALID_PARAM - 非法参数
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* 注意:
* 1、pipe必须已创建
*/
xmedia_s32 xmedia_vpss_set_pipe_frc(xmedia_s32 pipe, const xmedia_video_frame_rate_ctrl *frm_rate_ctrl);
/*
* 函数功能:获取pipe帧率控制属性
* 函数参数:
* pipe - 输入参数,pipe id号
* frm_rate_ctrl - 输出参数,pipe的帧率控制属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* XMEDIA_ERRCODE_INVALID_PARAM - 非法参数
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* 注意:
* 1、pipe必须已创建
*/
xmedia_s32 xmedia_vpss_get_pipe_frc(xmedia_s32 pipe, xmedia_video_frame_rate_ctrl *frm_rate_ctrl);
/*
* 函数功能: 设置pipe裁剪属性
* 函数参数:
* pipe - 输入参数, pipe id号
* crop_attr - 输入参数, 裁剪属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* XMEDIA_ERRCODE_INVALID_PARAM - 输入参数非法
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_set_pipe_crop(xmedia_s32 pipe, const xmedia_video_crop_attr *crop_attr);
/*
* 函数功能: 获取pipe裁剪属性
* 函数参数:
* pipe - 输入参数, pipe id号
* crop_attr - 输出参数, 裁剪属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_get_pipe_crop(xmedia_s32 pipe, xmedia_video_crop_attr *crop_attr);
/*
* 函数功能: 设置pipe stnr属性
* 函数参数:
* pipe - 输入参数, pipe id号
* stnr_attr - 输入参数, stnr属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* XMEDIA_ERRCODE_INVALID_PARAM - 输入参数非法
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_set_pipe_stnr_attr(xmedia_s32 pipe, const xmedia_isp_stnr_attr *stnr_attr);
/*
* 函数功能: 获取pipe stnr属性
* 函数参数:
* pipe - 输入参数, pipe id号
* stnr_attr - 输出参数, stnr属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_get_pipe_stnr_attr(xmedia_s32 pipe, xmedia_isp_stnr_attr *stnr_attr);
/*
* 函数功能: 设置pipe sharpen属性
* 函数参数:
* pipe - 输入参数, pipe id号
* sharpen_attr - 输入参数, sharpen属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* XMEDIA_ERRCODE_INVALID_PARAM - 输入参数非法
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_set_pipe_sharpen_attr(xmedia_s32 pipe, const xmedia_isp_sharpen_attr *sharpen_attr);
/*
* 函数功能: 获取pipe sharpen属性
* 函数参数:
* pipe - 输入参数, pipe id号
* sharpen_attr - 输出参数, sharpen属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_get_pipe_sharpen_attr(xmedia_s32 pipe, xmedia_isp_sharpen_attr *sharpen_attr);
/*
* 函数功能: 设置pipe anti false color属性
* 函数参数:
* pipe - 输入参数, pipe id号
* afc_attr - 输入参数, afc 属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* XMEDIA_ERRCODE_INVALID_PARAM - 输入参数非法
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_set_pipe_anti_false_color_attr(xmedia_s32 pipe,
const xmedia_isp_anti_false_color_attr *afc_attr);
/*
* 函数功能: 获取pipe anti false color属性
* 函数参数:
* pipe - 输入参数, pipe id号
* afc_attr - 输出参数, afc属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_get_pipe_anti_false_color_attr(xmedia_s32 pipe, xmedia_isp_anti_false_color_attr *afc_attr);
/*
* 函数功能: 设置pipe 融合拼接的重叠区属性
* 函数参数:
* pipe - 输入参数, pipe id号
* stitch_size_attr - 输入参数, 拼接重叠区属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* XMEDIA_ERRCODE_INVALID_PARAM - 输入参数非法
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_set_pipe_stitch_size_attr(xmedia_s32 pipe,
const xmedia_vpss_stitch_size_attr *stitch_size_attr);
/*
* 函数功能: 获取pipe 融合拼接的重叠区属性
* 函数参数:
* pipe - 输入参数, pipe id号
* stitch_size_attr - 输出参数, 拼接重叠区属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_get_pipe_stitch_size_attr(xmedia_s32 pipe, xmedia_vpss_stitch_size_attr *stitch_size_attr);
/*
* 函数功能: 设置pipe 融合拼接的融合属性
* 函数参数:
* pipe - 输入参数, pipe id号
* stitch_blend_attr - 输入参数, 拼接融合属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* XMEDIA_ERRCODE_INVALID_PARAM - 输入参数非法
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_set_pipe_stitch_blend_attr(xmedia_s32 pipe,
const xmedia_vpss_stitch_blend_attr *stitch_blend_attr);
/*
* 函数功能: 获取pipe 融合拼接的融合属性
* 函数参数:
* pipe - 输入参数, pipe id号
* stitch_blend_attr - 输出参数, 拼接融合属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_get_pipe_stitch_blend_attr(xmedia_s32 pipe, xmedia_vpss_stitch_blend_attr *stitch_blend_attr);
/*
* 函数功能: 设置融合拼接的亮度同步属性
* 函数参数:
* pipe - 输入参数,pipe id号
* luma_sync_attr - 输入参数,亮度同步属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
*/
xmedia_s32 xmedia_vpss_set_pipe_stitch_luma_sync_attr(xmedia_s32 pipe,
const xmedia_video_stitch_luma_sync_attr *luma_sync_attr);
/*
* 函数功能: 设置融合拼接的亮度同步属性
* 函数参数:
* pipe - 输入参数,pipe id号
* luma_sync_attr - 输出参数,亮度同步属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
*/
xmedia_s32 xmedia_vpss_get_pipe_stitch_luma_sync_attr(xmedia_s32 pipe,
xmedia_video_stitch_luma_sync_attr *luma_sync_attr);
/*
* 函数功能: 设置输入通道固定角度旋转属性
* 函数参数:
* pipe - 输入参数, pipe id号
* ichn - 输入参数, ichn id号
* rotation - 输入参数, 旋转属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_INVALID_CHN_ID - 无效的ichn id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* XMEDIA_ERRCODE_NOT_READY - vpss未准备好
* XMEDIA_ERRCODE_INVALID_PARAM - 输入参数非法
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_set_ichn_rotation(xmedia_s32 pipe, xmedia_s32 ichn, xmedia_video_rotation rotation);
/*
* 函数功能: 获取输入通道固定角度旋转属性
* 函数参数:
* pipe - 输入参数, pipe id号
* ichn - 输入参数, ichn id号
* rotation - 输出参数, 旋转属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_INVALID_CHN_ID - 无效的ichn id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_get_ichn_rotation(xmedia_s32 pipe, xmedia_s32 ichn, xmedia_video_rotation *rotation);
/*
* 函数功能: 发送图像到输入通道
* 函数参数:
* pipe - 输入参数, pipe id号
* ichn - 输入参数, ichn id号
* video_frame - 输入参数, 帧信息
* milli_sec - 输入参数, 超时参数
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_INVALID_CHN_ID - 无效的ichn id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_READY - vpss未准备好
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* XMEDIA_ERRCODE_BUSY - pipe正在忙
* XMEDIA_ERRCODE_INVALID_PARAM - 输入参数非法
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_send_ichn_frame(xmedia_s32 pipe, xmedia_s32 ichn,
const xmedia_video_frame_info *video_frame, xmedia_s32 milli_sec);
/*
* 函数功能: 获取pipe输入帧
* 函数参数:
* pipe - 输入参数, pipe id号
* ichn - 输入参数, ichn id号
* video_frame - 输出参数, 帧信息
* milli_sec - 输入参数, 超时参数
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_INVALID_CHN_ID - 无效的ichn id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_READY - vpss未准备好
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* XMEDIA_ERRCODE_BUFFER_EMPTY - pipe队列为空
* XMEDIA_ERRCODE_INVALID_PARAM - 输入参数非法
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_acquire_ichn_frame(xmedia_s32 pipe, xmedia_s32 ichn,
xmedia_video_frame_info *video_frame, xmedia_s32 milli_sec);
/*
* 函数功能: 释放pipe输入帧
* 函数参数:
* pipe - 输入参数, pipe id号
* ichn - 输入参数, ichn id号
* video_frame - 输入参数, 帧信息
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_INVALID_CHN_ID - 无效的ichn id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_INVALID_PARAM - 输入参数非法
* 注意:
* 此接口需与xmedia_vpss_acquire_ichn_frame配对使用
*/
xmedia_s32 xmedia_vpss_release_ichn_frame(xmedia_s32 pipe, xmedia_s32 ichn,
const xmedia_video_frame_info *video_frame);
/*
* 函数功能: 设置输出通道配置
* 函数参数:
* pipe - 输入参数, pipe id号
* ochn - 输入参数, ochn id号
* ochn_cfg - 输入参数, 输出通道配置
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_INVALID_CHN_ID - 无效的ochn id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* XMEDIA_ERRCODE_INVALID_PARAM - 输入参数非法
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_set_ochn_config(xmedia_s32 pipe, xmedia_s32 ochn, const xmedia_vpss_ochn_config *ochn_cfg);
/*
* 函数功能: 设置输出通道属性
* 函数参数:
* pipe - 输入参数, pipe id号
* ochn - 输入参数, ochn id号
* ochn_attr - 输入参数, 输出通道属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_INVALID_CHN_ID - 无效的ochn id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_set_ochn_attr(xmedia_s32 pipe, xmedia_s32 ochn, const xmedia_vpss_ochn_attr *ochn_attr);
/*
* 函数功能: 获取输出通道属性
* 函数参数:
* pipe - 输入参数, pipe id号
* ochn - 输入参数, ochn id号
* ochn_attr - 输出参数, 输出通道属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_INVALID_CHN_ID - 无效的ochn id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_get_ochn_attr(xmedia_s32 pipe, xmedia_s32 ochn, xmedia_vpss_ochn_attr *ochn_attr);
/*
* 函数功能: 开启输出通道
* 函数参数:
* pipe - 输入参数, pipe id号
* ochn - 输入参数, ochn id号
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_INVALID_CHN_ID - 无效的ochn id
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* XMEDIA_ERRCODE_NOT_READY - vpss未准备好
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_enable_ochn(xmedia_s32 pipe, xmedia_s32 ochn);
/*
* 函数功能: 关闭输出通道
* 函数参数:
* pipe - 输入参数, pipe id号
* ochn - 输入参数, ochn id号
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_INVALID_CHN_ID - 无效的ochn id
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* XMEDIA_ERRCODE_NOT_READY - vpss未准备好
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_disable_ochn(xmedia_s32 pipe, xmedia_s32 ochn);
/*
* 函数功能: 设置输出通道缩放前的裁剪属性
* 函数参数:
* pipe - 输入参数, pipe id号
* ochn - 输入参数, ochn id号
* crop_info - 输入参数, 裁剪属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_INVALID_CHN_ID - 无效的ochn id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* XMEDIA_ERRCODE_NOT_READY - vpss未准备好
* XMEDIA_ERRCODE_INVALID_PARAM - 输入参数非法
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_set_ochn_pre_crop(xmedia_s32 pipe, xmedia_s32 ochn, const xmedia_video_crop_attr *crop_info);
/*
* 函数功能: 获取输出通道缩放前的裁剪属性
* 函数参数:
* pipe - 输入参数, pipe id号
* ochn - 输入参数, ochn id号
* crop_info - 输出参数, 裁剪属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_get_ochn_pre_crop(xmedia_s32 pipe, xmedia_s32 ochn, xmedia_video_crop_attr *crop_info);
/*
* 函数功能: 设置输出通道缩放后的裁剪属性
* 函数参数:
* pipe - 输入参数, pipe id号
* ochn - 输入参数, ochn id号
* crop_info - 输入参数, 裁剪属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_INVALID_CHN_ID - 无效的ochn id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* XMEDIA_ERRCODE_NOT_READY - vpss未准备好
* XMEDIA_ERRCODE_INVALID_PARAM - 输入参数非法
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_set_ochn_post_crop(xmedia_s32 pipe, xmedia_s32 ochn, const xmedia_video_crop_attr *crop_info);
/*
* 函数功能: 获取输出通道缩放后的裁剪属性
* 函数参数:
* pipe - 输入参数, pipe id号
* ochn - 输入参数, ochn id号
* crop_info - 输出参数, 裁剪属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_get_ochn_post_crop(xmedia_s32 pipe, xmedia_s32 ochn, xmedia_video_crop_attr *crop_info);
/*
* 函数功能: 设置输出通道固定角度旋转属性
* 函数参数:
* pipe - 输入参数, pipe id号
* ochn - 输入参数, ochn id号
* rotation - 输入参数, 旋转属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_INVALID_CHN_ID - 无效的ochn id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* XMEDIA_ERRCODE_NOT_READY - vpss未准备好
* XMEDIA_ERRCODE_INVALID_PARAM - 输入参数非法
* 注意:
* pipe必须已创建,输出通道属性必须已设置
*/
xmedia_s32 xmedia_vpss_set_ochn_rotation(xmedia_s32 pipe, xmedia_s32 ochn, xmedia_video_rotation rotation);
/*
* 函数功能: 获取输出通道固定角度旋转属性
* 函数参数:
* pipe - 输入参数, pipe id号
* ochn - 输入参数, ochn id号
* rotation - 输出参数, 旋转属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_INVALID_CHN_ID - 无效的ochn id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* 注意:
* pipe必须已创建,输出通道属性必须已设置
*/
xmedia_s32 xmedia_vpss_get_ochn_rotation(xmedia_s32 pipe, xmedia_s32 ochn, xmedia_video_rotation *rotation);
/*
* 函数功能: 获取输出通道图像
* 函数参数:
* pipe - 输入参数, pipe id号
* ochn - 输入参数, ochn id号
* video_frame - 输出参数, 帧信息
* milli_sec - 输入参数, 超时参数
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_INVALID_CHN_ID - 无效的ichn id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_READY - vpss未准备好
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* XMEDIA_ERRCODE_BUFFER_EMPTY - 输出通道队列为空
* XMEDIA_ERRCODE_INVALID_PARAM - 输入参数非法
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_acquire_ochn_frame(xmedia_s32 pipe, xmedia_s32 ochn,
xmedia_video_frame_info *video_frame, xmedia_s32 milli_sec);
/*
* 函数功能: 释放从输出通道获取的图像
* 函数参数:
* pipe - 输入参数, pipe id号
* ochn - 输入参数, ochn id号
* video_frame - 输出参数, 帧信息
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_INVALID_CHN_ID - 无效的ichn id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* 注意:
* 此接口需与xmedia_vpss_acquire_ochn_frame配对使用
*/
xmedia_s32 xmedia_vpss_release_ochn_frame(xmedia_s32 pipe, xmedia_s32 ochn,
const xmedia_video_frame_info *video_frame);
/*
* 函数功能: 获取输出通道亮度和
* 函数参数:
* pipe - 输入参数, pipe id号
* ochn - 输入参数, ochn id号
* rect_attr - 输入参数, 统计区域属性
* luma_data - 输出参数, 统计结果
* milli_sec - 输入参数, 超时参数
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_INVALID_CHN_ID - 无效的ichn id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_READY - vpss未准备好
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* XMEDIA_ERRCODE_INVALID_PARAM - 输入参数非法
* 注意:
* pipe必须已创建
* 此接口是使用VPSS硬件处理,仅通道0支持
*/
xmedia_s32 xmedia_vpss_get_ochn_rgn_luma(xmedia_s32 pipe, xmedia_s32 ochn,
const xmedia_vpss_rect_attr *rect_attr, xmedia_u64 *luma_data, xmedia_s32 milli_sec);
/*
* 函数功能: 获取输出通道亮度和
* 函数参数:
* pipe - 输入参数, pipe id号
* ochn - 输入参数, ochn id号
* rect_attr - 输入参数, 统计区域属性
* luma_data - 输出参数, 统计结果
* milli_sec - 输入参数, 超时参数
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_INVALID_CHN_ID - 无效的ichn id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_READY - vpss未准备好
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* XMEDIA_ERRCODE_INVALID_PARAM - 输入参数非法
* 注意:
* pipe必须已创建
* 此接口是使用VGS硬件处理,通道0~3支持
*/
xmedia_s32 xmedia_vpss_get_ochn_rgn_luma_ex(xmedia_s32 pipe, xmedia_s32 ochn,
const xmedia_vpss_rect_attr *rect_attr, xmedia_u64 *luma_data, xmedia_s32 milli_sec);
/*
* 函数功能: 设置输出通道低延时属性
* 函数参数:
* pipe - 输入参数, pipe id号
* ochn - 输入参数, ochn id号
* low_delay_info - 输入参数, 低延时属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_INVALID_CHN_ID - 无效的ichn id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_READY - vpss未准备好
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* XMEDIA_ERRCODE_NOT_SUPPORT - 不支持低延时
* XMEDIA_ERRCODE_INVALID_PARAM - 输入参数非法
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_set_ochn_low_delay_attr(xmedia_s32 pipe, xmedia_s32 ochn,
const xmedia_vpss_low_delay_attr *low_delay_info);
/*
* 函数功能: 获取输出通道低延时属性
* 函数参数:
* pipe - 输入参数, pipe id号
* ochn - 输入参数, ochn id号
* low_delay_info - 输出参数, 低延时属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_INVALID_CHN_ID - 无效的ichn id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* XMEDIA_ERRCODE_NOT_SUPPORT - 不支持低延时
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_get_ochn_low_delay_attr(xmedia_s32 pipe, xmedia_s32 ochn,
xmedia_vpss_low_delay_attr *low_delay_info);
/*
* 函数功能: 设置输出通道卷绕属性
* 函数参数:
* pipe - 输入参数, pipe id号
* ochn - 输入参数, ochn id号
* wrap_info - 输入参数, 卷绕属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_INVALID_CHN_ID - 无效的ochn id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_READY - vpss未准备好
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* XMEDIA_ERRCODE_NOT_SUPPORT - 不支持卷绕
* XMEDIA_ERRCODE_NOT_PERMITTED - 输出通道未禁用
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_set_ochn_wrap_attr(xmedia_s32 pipe, xmedia_s32 ochn, const xmedia_video_wrap_attr *wrap_info);
/*
* 函数功能: 获取输出通道卷绕属性
* 函数参数:
* pipe - 输入参数, pipe id号
* ochn - 输入参数, ochn id号
* wrap_info - 输出参数,卷绕属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_INVALID_CHN_ID - 无效的ochn id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* XMEDIA_ERRCODE_NOT_SUPPORT - 不支持低延时
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_get_ochn_wrap_attr(xmedia_s32 pipe, xmedia_s32 ochn, xmedia_video_wrap_attr *wrap_info);
/*
* 函数功能: 设置扩展通道配置
* 函数参数:
* pipe - 输入参数, pipe id号
* ochn - 输入参数, ochn id号
* ext_ochn_cfg - 输入参数, 扩展输出通道配置
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_INVALID_CHN_ID - 无效的ochn id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* XMEDIA_ERRCODE_INVALID_PARAM - 输入参数非法
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_set_ext_ochn_config(xmedia_s32 pipe, xmedia_s32 ochn,
const xmedia_vpss_ext_ochn_config *ext_ochn_cfg);
/*
* 函数功能: 设置扩展通道属性
* 函数参数:
* pipe - 输入参数, pipe id号
* ochn - 输入参数, ochn id号
* ext_ochn_attr - 输入参数, 扩展通道属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_INVALID_CHN_ID - 无效的ochn id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* XMEDIA_ERRCODE_INVALID_PARAM - 输入参数非法
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_set_ext_ochn_attr(xmedia_s32 pipe, xmedia_s32 ochn,
const xmedia_vpss_ext_ochn_attr *ext_ochn_attr);
/*
* 函数功能: 获取扩展通道属性
* 函数参数:
* pipe - 输入参数, pipe id号
* ochn - 输入参数, ochn id号
* ext_ochn_attr - 输出参数, 扩展通道属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_INVALID_CHN_ID - 无效的ochn id
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_get_ext_ochn_attr(xmedia_s32 pipe, xmedia_s32 ochn, xmedia_vpss_ext_ochn_attr *ext_ochn_attr);
/*
* 函数功能:监测输出通道队列是否有图像
* 函数参数:
* watch_ochn - 输入参数,被监测的通道
* watch_ochn_num - 输入参数,被监测的通道数量
* valid_ochn - 输出参数,有数据的通道
* valid_ochn_num - 输出参数,有数据的通道数量
* milli_sec - 输入参数,超时参数
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_NOT_READY - 未加载驱动/未初始化
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_INVALID_PARAM - 非法参数
*/
xmedia_s32 xmedia_vpss_select_ochn_frame(const xmedia_chn_info *watch_ochn, xmedia_u32 watch_ochn_num,
xmedia_chn_info *valid_ochn, xmedia_u32 *valid_ochn_num, xmedia_s32 milli_sec);
/*
* 函数功能: 拼接标定
* 函数参数:
* frame_info - 输入参数,帧信息
* config - 输入参数,标定参数
* result - 输出参数,标定结果
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_NULL_PTR - 空指针
*/
xmedia_s32 xmedia_vpss_stitch_calibration(const xmedia_vpss_stitch_calibration_frame_info *frame_info,
const xmedia_vpss_stitch_calibration_config *config, xmedia_vpss_stitch_calibration_result *result);
/*
* 函数功能: 设置卷绕buf复用配置
* 函数参数:
* wrap_buf_share_cfg - 输入参数,卷绕buf复用配置
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_NOT_INIT - 未初始化VPSS
* XMEDIA_ERRCODE_NULL_PTR - 空指针
*/
xmedia_s32 xmedia_vpss_set_wrap_buf_share_config(const xmedia_vpss_wrap_buf_share_config *wrap_buf_share_cfg);
/*
* 函数功能: 设置非融合拼接组的配置
* 函数参数:
* grp - 输入参数, grp id号
* splicing_grp_cfg - 输入参数,非融合拼接组配置
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_GRP_ID - 无效的grp id
* XMEDIA_ERRCODE_NOT_INIT - 未初始化VPSS
* XMEDIA_ERRCODE_NULL_PTR - 空指针
*/
xmedia_s32 xmedia_vpss_set_splicing_grp_config(xmedia_s32 grp, const xmedia_vpss_splicing_grp_config *splicing_grp_cfg);
/*
* 函数功能: 绑定输出通道user vb池
* 函数参数:
* pipe - 输入参数, pipe id号
* ochn - 输入参数, ochn id号
* pool_id - 输入参数, vb池id
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_INVALID_CHN_ID - 无效的ochn id
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* XMEDIA_ERRCODE_NOT_READY - vpss未准备好
* XMEDIA_ERRCODE_INVALID_PARAM - 输入参数非法
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_attach_ochn_vb_pool(xmedia_s32 pipe, xmedia_s32 ochn, xmedia_u32 pool_id);
/*
* 函数功能: 解除绑定输出通道user vb池
* 函数参数:
* pipe - 输入参数, pipe id号
* ochn - 输入参数, ochn id号
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_INVALID_CHN_ID - 无效的ochn id
* XMEDIA_ERRCODE_NOT_EXIST - pipe不存在
* XMEDIA_ERRCODE_NOT_READY - vpss未准备好
* XMEDIA_ERRCODE_INVALID_PARAM - 输入参数非法
* 注意:
* pipe必须已创建
*/
xmedia_s32 xmedia_vpss_detach_ochn_vb_pool(xmedia_s32 pipe, xmedia_s32 ochn);
/*
* 函数功能: 获取输出通道fd
* 函数参数:
* pipe - 输入参数, pipe id号
* ochn - 输入参数, ochn id号
* 返回值:
* 正数值 - 有效返回值
* XMEDIA_ERRCODE_INVALID_DEV_ID - 无效的pipe id
* XMEDIA_ERRCODE_INVALID_CHN_ID - 无效的ochn id
* XMEDIA_ERRCODE_NOT_INIT - 未初始化VPSS
* XMEDIA_ERRCODE_NOT_READY - vpss未准备好
*/
xmedia_s32 xmedia_vpss_get_ochn_fd(xmedia_s32 pipe, xmedia_s32 ochn);
#ifdef __cplusplus
}
#endif
#endif /* __XMEDIA_VPSS_H__ */