Files

117 lines
3.3 KiB
C

/*
* Copyright (c) XMEDIA. All rights reserved.
*/
#ifndef XMEDIA_SCENE_H
#define XMEDIA_SCENE_H
#include "xmedia_type.h"
typedef enum {
XMEDIA_MOD_ID_VICAP = 0,
XMEDIA_MOD_ID_VIPROC,
XMEDIA_MOD_ID_VPSS,
XMEDIA_MOD_ID_GDC,
XMEDIA_MOD_ID_VGS,
XMEDIA_MOD_ID_NPU,
XMEDIA_MOD_ID_VPU,
XMEDIA_MOD_ID_JPGE,
XMEDIA_MOD_ID_CPU,
XMEDIA_MOD_ID_VO,
XMEDIA_MOD_ID_TDE,
XMEDIA_MOD_ID_AIAO,
XMEDIA_MOD_ID_SCD,
XMEDIA_MOD_ID_MAX,
} xmedia_ddr_ost_qos_mod_id;
typedef struct {
xmedia_u32 rd_ost;
xmedia_u32 wr_ost;
xmedia_u32 qos;
} xmedia_ddr_ost_qos_config;
/* npu load level */
typedef enum {
XMEDIA_NPU_LOAD_LIGHT = 0, // [0-1T)
XMEDIA_NPU_LOAD_MIDDLE, // [1T-1.5T)
XMEDIA_NPU_LOAD_HEAVY, // [1.5T-2T]
XMEDIA_NPU_LOAD_SUPPER, // AINR
XMEDIA_NPU_LOAD_MAX,
} xmedia_media_npu_load;
typedef struct {
xmedia_u32 width;
xmedia_u32 height;
xmedia_u32 framerate;
} xmedia_multimedia_capability;
/* VPU chn width, height, fps info */
typedef struct {
xmedia_u32 vpu_chn_id;
xmedia_multimedia_capability capability;
} xmedia_vpu_chn_capability;
typedef struct {
xmedia_u32 width;
xmedia_u32 height;
xmedia_bool wdr_enable;
} xmedia_vi_max_capability;
#define XMEDIA_MAX_VPU_CHNS_NUM 16
typedef struct {
xmedia_vpu_chn_capability vpu_chn[XMEDIA_MAX_VPU_CHNS_NUM];
xmedia_vi_max_capability vi_chn;
} xmedia_scene_capability;
/*
* 函数功能:场景配置初始化
* 函数参数:
* 无
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_OPEN_FAILED - 打开设备节点失败
*/
xmedia_s32 xmedia_scene_init(xmedia_void);
/*
* 函数功能:场景配置去初始化
* 函数参数:
* 无
* 返回值:
* 无
*/
xmedia_void xmedia_scene_exit(xmedia_void);
/*
* 函数功能:设置场景配置参数
* 函数参数:
* npu_load - 输入参数,npu负载级别,分为LIGHT/MIDDLE/HEAVY/SUPPER
* scene_capability - 输入参数,vpu大小码流以及vi通路的最大分辨率等配置
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_NOT_INIT - 没有调用init函数进行初始化
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_INVALID_PARAM - 传入参数不合法
* XMEDIA_ERRCODE_NOT_PERMITTED - 没有先调用xmedia_sys_init设置pipe工作模式
*/
xmedia_s32 xmedia_scene_config(xmedia_media_npu_load npu_load, xmedia_scene_capability *scene_capability);
/*
* 函数功能:锁定/解锁指定模块的ost/qos配置
* 函数参数:
* mod_id - 输入参数,指定模块的id
* config - 输入参数,需要锁定的目标ost/qos配置
* lock_flag - 输入参数,锁定/解锁标志,1表示锁定,0表示解锁
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_ERRCODE_NOT_INIT - 没有调用init函数进行初始化
* XMEDIA_ERRCODE_NULL_PTR - 空指针
* XMEDIA_ERRCODE_INVALID_PARAM - 传入参数不合法
*/
xmedia_s32 xmedia_ddr_ost_qos_lock(xmedia_ddr_ost_qos_mod_id mod_id,
xmedia_ddr_ost_qos_config *config, xmedia_u32 lock_flag);
#endif