VDEC是用于解码视频或者文件用于显示或其他途径的部件,常用操作是解码之后送入VPSS到VO,VDEC->VPSS->VO。支持的格式H264、h265、jpeg。
VDEC的整体设置比较简单,基本使用历程相关即可,解码方式支持三种,流式,即读取多少就送入多少解析,但是这样由于不是完整的帧(GOP),VDEC不会立即有效果,只有等一个完整的GOP输入之后才会有输出,这是最简单的一种,按帧发送,即每次发送的都是完整的GOP,VDEC会立刻进行解析并输出,兼容模式就像流式发送,但是需要用户自己判断结束,结束帧位置需要bEndOfFrame。综上,最简单的方式其实就是流式发送,只需要保证数据正确就行。关于视频内存,有两种,第一种HI_MPI_VB_CreatePool设置公共视频缓存池,另外一种就是在初始化VB的时候,计算好一个内存池,通过HI_MPI_VDEC_AttachVbPool绑定到指定的池子上。另外在需要特别注意的是,解码模式,IPB,IP,I,在3516DV300上不支持解B帧,所以送入解码的视频只能是IP帧。其余设置没有特别需要注意的地方。在获取数据之后通过填充VDEC_STREAM_S,然后调用HI_MPI_VDEC_SendStream发送到VDEC中,VDEC会根据出事配置进行相关工作。
这里使用的平台的hi3516DV300,配置H264,流式发送,基本在历程上没有修改。