29从零写USB摄像头驱动之通过urb接受数据后上报数据是函数中fid的作用

Posted 拉风摊主

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了29从零写USB摄像头驱动之通过urb接受数据后上报数据是函数中fid的作用相关的知识,希望对你有一定的参考价值。

原因分析如下:

视频数据是由一帧一帧数据组成,为了防止数据错乱,会给每一帧数据分配一个frameid,从第0帧开始,接着是第1帧,接着又是第0帧这样交错进行的,对usb摄像头来说每一帧数据来源于多个包,每个包来源于urb里面的iso_frame(一帧数据都存在一个urb的buf中,这个buf分为多个包),这些数据里也含有fid值,如果这些fid值都是0,那么这些包的数据属于第0帧,如果接着的包fid值是1,那么着包数据就是第1帧的,并且前面那帧数据已经完了,开始处理下一帧了

 

if (fid != last_fid && buf->buf.bytesused != 0)表示上一帧已经结束了且buf中有数据,要开始接受下一帧了

以上是关于29从零写USB摄像头驱动之通过urb接受数据后上报数据是函数中fid的作用的主要内容,如果未能解决你的问题,请参考以下文章

从零写一个摄像头驱动

28从零写UVC驱动之实现设置属性

从零写一个编译器:语法分析之表驱动语法分析

USB设备---URB请求快

手把手教你从零写一个简单的 VUE

手把手教你从零写一个简单的 VUE