---
title: hi_mpi_isp_set_pub_attr
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/others/ispdevug/ispdevapi_0006.html
sourcePath: /source/zh/canncommercial/900/others/ispdevug/ispdevapi_0006.html
indexId: 3741cb8df850a8a1535d4a2b07c6ad869a5d409512a5d34a25f4a77a6f5ddd7865
---
# hi_mpi_isp_set_pub_attr

#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | ☓ |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | ☓ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | ☓ |
| Atlas 200I/500 A2 推理产品 | √ |
| Atlas 推理系列产品 | ☓ |
| Atlas 训练系列产品 | ☓ |


#### 功能说明

设置ISP公共属性，例如裁剪分辨率、帧率等。


#### 函数原型

```
hi_s32
hi_mpi_isp_set_pub_attr(
hi_vi_pipe
vi_pipe, const
hi_isp_pub_attr
*pub_attr)
```


#### 参数说明

| 参数名 | 输入/输出 | 说明 |
| --- | --- | --- |
| vi\_pipe | 输入 | VI PIPE号。 取值范围：[0, 12)。 |
| pub\_attr | 输入 | ISP公共属性。 |


#### 返回值说明

- 0：成功
- 非0：失败，参见  错误码
。


#### 约束说明

- 调用本接口前，必须先调用  hi_mpi_isp_mem_init
接口初始化ISP内部资源。
- ISP支持运行过程中动态裁剪图像的起始位置。
- 调用本接口后ISP内的处理流程：
  ISP firmware判断图像WDR模式、分辨率、帧率是否变化，若都不变则直接返回；否则，ISP firmware会调用通过hi_mpi_isp_sensor_reg_callback
  接口注册的回调函数pfn_cmos_set_wdr_mode
  、pfn_cmos_set_image_mode
  改变Sensor模式；
  - 若Sensor模式不改变（回调函数返回值-2），判断ISP的裁剪宽高是否变化，若有变化，ISP firmware切换分辨率，并调用通过    hi_mpi_isp_sensor_reg_callback
接口注册的回调函数    pfn_cmos_sensor_init
重新配置Sensor；若无变化，就不变。
  - 若Sensor模式改变（回调函数返回值为0），则ISP firmware会调用通过    hi_mpi_isp_sensor_reg_callback
接口注册的回调函数    pfn_cmos_sensor_init
重新配置Sensor；


- 用户可以修改回调函数  pfn_cmos_set_image_mode
的实现来调整Sensor模式切换的顺序。如只提供了5M30fps和1080P60fps初始化序列的Sensor，若要运行1080P30fps，可以从5M30fps裁剪得到，也可以从1080P60fps降帧得到， 修改  pfn_cmos_set_image_mode
函数实现即可。
- 切换线性模式和帧WDR模式时，同样会判断  pfn_cmos_set_image_mode
的返回值，因此线性模式和帧WDR模式应该采用不同的image_mode，才能保证切换成功。
