上一个专栏跟大家说了,海思的I帧是由三个包以及视频数据组成的,3 个包为 sps 包、pps 包、Islice 包,如果这个不太清楚的话可以去看一下我的上一个专栏,这里就不说了。 这里的连续帧和非连续帧指的就是在I帧的时候,调用HI_MPI_GetStream()接口,获取到的数据包与包之间的地址否连续,反应在代码中就是非连续帧的时候 pstPack[0].pu8Addr[0]+pstPack[0].u32Len[0]≠pstPack[0].pu8Addr[1], 而连续帧的时候 pstPack[0].pu8Addr[0]+pstPack[0].u32Len[0]=pstPack[0].pu8Addr[1]。 这里可能有些人不太理解,其实说白了,就是非连续帧的时候sps 包、pps包、Islice包的地址是分开的,而连续帧的时候三个包以及视频数据的地址是连续的,组成了一个完整的I帧。 这两种模式是在加载KO的时候通过模块参数 ContiguousBuffer 来选择的,ContiguousBuffer=1表示连续模式;ContiguousBuffer=0或者不加参数表示非连续模式。如下图: 这里我传的参数是1,我使用的就是连续帧模式,如果你填0,或者不传参,直接加载驱动,那就是非连续帧模式。大家可以根据自己的代码使用。
免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:海思的连续帧和非连续帧模式的使用-海思法则告诉我们的道理 https://www.yhzz.com.cn/a/11377.html