RV1126解码课程第五课: read_vdec_thread线程的讲解

4.1. read_vdec_thread线程的用处

read_vdec_thread线程主要是获取每一帧VDEC解码数据,并打印出来每一帧数据的具体信息。

4.2.read_vdec_thread的代码

image.png

read_vdec_thread线程主要是获取每一帧VDEC解码数据,并打印出来每一帧数据的具体信息。这里需要用到的API是RK_MPI_SYS_GetMediaBuffer获取每一帧VDEC的数据,并调用RK_MPI_MB_GetImageInfo打印出我们每一帧数据的具体信息。关于RK_MPI_MB_GetImageInfo的解释如下:

MB_IMAGE_INFO_S****结构体成员如下:

image.png

u32Width:宽度

u32Height:高度

u32HorStride:虚宽

u32VerStride:虚高

enImgType:图像格式类型

总结:在RV1126/RV1109上面若对数据进行编解码操作通常使用RK_MPI_SYS_SendMediaBuffer根据MOD_ID对其进行对应的编解码工作,编解码工作完成之后就把对应的数据存放到RKMEDIA_QUEUE里面。若要获取对应的编解码数据,则调用RK_MPI_SYS_GetMediaBuffer从RKMEDIA_QUEUE获取每一帧编解码数据。

在RV1126上面做对应的编解码工作,一般分为两种:

  1. .RK_MPI_SYS_Bind方式,RK_MPI_SYS_Bind方式通常用在直接获取CMOS摄像头的数据(原生的VI数据),并且不做任何加工处理。

  2. .RK_MPI_SYS_SendMediaBuffer方式,这种方式能够解码CMOS摄像头VI处理过后的数据(包括:opencv、yolov3、asfort)或者读取文件的编解码数据等等。


    VDEC流程.png

    RKMEDIA_BUFFER使用场景.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容