4.1. read_vdec_thread线程的用处
read_vdec_thread线程主要是获取每一帧VDEC解码数据,并打印出来每一帧数据的具体信息。
4.2.read_vdec_thread的代码
read_vdec_thread线程主要是获取每一帧VDEC解码数据,并打印出来每一帧数据的具体信息。这里需要用到的API是RK_MPI_SYS_GetMediaBuffer获取每一帧VDEC的数据,并调用RK_MPI_MB_GetImageInfo打印出我们每一帧数据的具体信息。关于RK_MPI_MB_GetImageInfo的解释如下:
MB_IMAGE_INFO_S****结构体成员如下:
u32Width:宽度
u32Height:高度
u32HorStride:虚宽
u32VerStride:虚高
enImgType:图像格式类型
总结:在RV1126/RV1109上面若对数据进行编解码操作通常使用RK_MPI_SYS_SendMediaBuffer根据MOD_ID对其进行对应的编解码工作,编解码工作完成之后就把对应的数据存放到RKMEDIA_QUEUE里面。若要获取对应的编解码数据,则调用RK_MPI_SYS_GetMediaBuffer从RKMEDIA_QUEUE获取每一帧编解码数据。
在RV1126上面做对应的编解码工作,一般分为两种:
.RK_MPI_SYS_Bind方式,RK_MPI_SYS_Bind方式通常用在直接获取CMOS摄像头的数据(原生的VI数据),并且不做任何加工处理。
-
.RK_MPI_SYS_SendMediaBuffer方式,这种方式能够解码CMOS摄像头VI处理过后的数据(包括:opencv、yolov3、asfort)或者读取文件的编解码数据等等。