RK3588 MPP,GRA,DRM,QT之MPP解码

        RK3588的工作完成已有一段时间,后面忙于其他的内容,也就没有及时更新相关内容,今天看到有朋友订阅了,就把这章内容更新完成,并感谢订阅朋友的支持。同时也用来做备忘。

        上回说到使用rockit 的API能快速的建立起一套解码,显示的应用,但是QT无法悬浮在视频的上层。后面从MPP和RGA,DRM 上来实现,后面也没有关注rockit的具体怎么实现了,如果有知道的朋友,可以给些指示,我去弄一下,如果完成,也会分享在博客里。

         MPP的具体内容,我们可以查看RK给的官方文档。这里对MPP做一个总结,MPP其实就是一个把输入的源数据,进行解码或编码,然后输出出来。我们只要按照MPP给的数据结构进行输入和输出即可得到解码帧或编码文件,怎么处理输入,输出及解码后的帧,在应用层有多个方式,一个可以使用ffmpeg,一个可以使用gstreamer,另外也可以自己进行处理,按自己的需求来操作,本文主要是以自己需求方式来处理实现MPP的解码操作。

        一、初始化解码器。 如果需要多路同时解码,则需要初始化对应个数的解码器,我用的为8路h265的解码,时延大概为200ms. 本段代码为摘录代码,如需完整实现需要自己更改一些内容。

int ret = 0;

MppPacket mPkt;

mPktBuf = new char[PKT_SIZE];

//注意 mPkt和 mPktBuf 间的关系。 mPkt中有一个指针是指向mPktBuf的

    ret = mpp_packet_init(&mPkt, mPktBuf, PKT_SIZE);
    if (ret)

猜你喜欢

转载自blog.csdn.net/dreamliweiming/article/details/130981283