# hi_vdec_chn_attr

#### 说明

定义解码通道属性结构体。


#### 定义

```
typedef struct {
hi_payload_type
type;
hi_vdec_send_mode
mode;
hi_u32
pic_width;
hi_u32
pic_height;
hi_u32
stream_buf_size;
hi_u32
frame_buf_size;
hi_u32
frame_buf_cnt;
union {
hi_vdec_video_attr
video_attr;
};
}hi_vdec_chn_attr;
```


#### 成员

| 成员名称 | 描述 |
| --- | --- |
| type | 解码协议类型枚举值。 静态属性。 |
| mode | 码流发送方式。静态属性。 Atlas 200/500 A2推理产品上，VDEC视频解码场景下，H.264/H.265仅支持按帧发送码流；JPEG图片解码场景下，该参数预留。 |
| pic\_width | 通道支持的解码图像最大宽（以像素为单位）。静态属性。 Atlas 200/500 A2推理产品上，JPEG图片解码场景下，该参数预留。 |
| pic\_height | 通道支持的解码图像最大高（以像素为单位）。静态属性。 Atlas 200/500 A2推理产品上，JPEG图片解码场景下，该参数预留。 |
| stream\_buf\_size | 输入码流缓存大小。 取值范围：大于或等于解码通道大小（宽\*高）的 3/4倍，即YUV420图像大小的一半（宽\*高\*3/2\*1/2），小于或等于1024\*1024\*1024，以 Byte 为单位。 推荐值：一幅YUV420解码图像大小。即：宽\*高\*1.5。 静态属性。 |
| frame\_buf\_size | 解码图像帧存大小，以Byte为单位。JPEGD图像解码不需要设置该参数。 取值范围：大于或等于0，取值为0时，VDEC内部将根据实际码流信息自动分配合适的帧存大小；取值大于0时，用户需保证（帧存大小\*参考帧个数 >= 实际所需最小帧存大小\*实际所需最小参考帧个数），否则不能正常解码。实际所需最小帧存大小，用户需先根据码流中的SPS（Sequence Parameter Set）信息获取输入码流的宽、高、比特位宽，再调用hi\_vdec\_get\_pic\_buf\_size接口获取实际所需最小帧存大小。 |
| frame\_buf\_cnt | 解码图像帧存个数。JPEGD图像解码不需要设置该参数。 取值范围：大于或等于0。 一般情况下，设置为0，VDEC内部将根据实际码流信息自动分配合适的帧存个数； 如果客户需要限制VDEC解码帧存大小，则设置为大于0的值，用户需保证（帧存大小\*参考帧个数 >= 实际需要最小帧存大小\*实际需要最小参考帧个数），否则不能正常解码。实际所需最小参考帧个数，用户需先根据码流中的SPS（Sequence Parameter Set）信息获取码流参考帧个数，H.264/H.265解码所需帧存个数=参考帧+显示帧+1。 |
| video\_attr | 视频(H.264/H.265)解码通道属性。 |


#### 注意事项

设置通道属性的图像宽和高，若用户清楚码流的具体宽高，建议以实际值来设置。若是不清楚，建议以此码流的最大规格来创建。但是最大规格是4096*4096，不能超过此值。
