[RK3288][Android6.0] USB UVC 协议简结
来源:互联网 发布:搞笑淘宝买家秀图评论 编辑:程序博客网 时间:2024/06/15 08:38
Platform: ROCKCHIP
OS: Android 6.0
Kernel: 3.10.92
UVC协议官方文档:
http://www.usb.org/developers/docs/devclass_docs/
USB_Video_Example 1.5.pdf
和
UVC 1.5 Class specification.pdf
每个video function有一个VideoControl(VC) interface和若干个VideoStreaming(VS) interface.
VC用于用于设备控制, VS用于传输数据流. 属于同一个video function(视频采集卡可能会有多个)的
VC和VS叫做Video Interface Collection(VIC), 协议中使用Interface Association Descriptor(IAD)来描述它.
Video function相当于USB协议里的Interface level, 它有两种interface subclass:
VideoControl Interface
VideoStreaming Interface
UVC里面还有一个Interface是 Interface Association Descriptor,它的subclass是
Video Interface Collection.
为了将Video function的功能细分管理,内部就分成了很多entities, 它有两种:
Units和Terminals
而其中主要有如下几个模块:
IT(Input Terminal), OT(Out Terminal), SU(Selector Unit)
PU(Processing Unit), EU(Encoding Unit).
代码中会读取各个用到的entities对应的描述符,获取相应信息.
而这些entities的关系可从下图来理解,摘自USB_Video_Example 1.5.pdf
VS会包含不同settings, 这里settings理解的应该是某个配置的不同模式.
举个例子,比如手机有手机模式,有铃声,振动,静音,这就是settings.
VS有setting 0和setting 1. 下图为Interface 0和Interface 1的描述符
继承表例子:
理解了以上部分后UVC协议基本上可以理解了,其他部分是描述各个描述符里面各个字段的意义,
可以遇到了再细看.
OS: Android 6.0
Kernel: 3.10.92
UVC协议官方文档:
http://www.usb.org/developers/docs/devclass_docs/
USB_Video_Example 1.5.pdf
和
UVC 1.5 Class specification.pdf
每个video function有一个VideoControl(VC) interface和若干个VideoStreaming(VS) interface.
VC用于用于设备控制, VS用于传输数据流. 属于同一个video function(视频采集卡可能会有多个)的
VC和VS叫做Video Interface Collection(VIC), 协议中使用Interface Association Descriptor(IAD)来描述它.
Video function相当于USB协议里的Interface level, 它有两种interface subclass:
VideoControl Interface
VideoStreaming Interface
UVC里面还有一个Interface是 Interface Association Descriptor,它的subclass是
Video Interface Collection.
为了将Video function的功能细分管理,内部就分成了很多entities, 它有两种:
Units和Terminals
而其中主要有如下几个模块:
IT(Input Terminal), OT(Out Terminal), SU(Selector Unit)
PU(Processing Unit), EU(Encoding Unit).
代码中会读取各个用到的entities对应的描述符,获取相应信息.
而这些entities的关系可从下图来理解,摘自USB_Video_Example 1.5.pdf
VS会包含不同settings, 这里settings理解的应该是某个配置的不同模式.
举个例子,比如手机有手机模式,有铃声,振动,静音,这就是settings.
VS有setting 0和setting 1. 下图为Interface 0和Interface 1的描述符
继承表例子:
理解了以上部分后UVC协议基本上可以理解了,其他部分是描述各个描述符里面各个字段的意义,
可以遇到了再细看.
1 0
- [RK3288][Android6.0] USB UVC 协议简结
- [RK3288][Android6.0] USB UVC 驱动小结
- [RK3288][Android6.0] USB UVC Camera 功能支持的添加
- [RK3288][Android6.0] USB UVC Camera 功能支持的添加
- [RK3288][Android6.0] USB UVC Camera是否支持的查询方法
- [RK3288][Android6.0] 调试笔记 --- 同时支持两颗USB UVC Camera
- [RK3288][Android6.0] 调试笔记 --- 如何区分两颗相同的USB UVC Camera
- [RK3288][Android6.0] USB 枚举过程小结
- [RK3288][Android6.0] USB 枚举过程小结
- [RK3288][Android6.0] USB ECHI 驱动小结
- [RK3288][Android6.0] 调试笔记 --- UVC Camera jpg和yuv数据帧dump
- [RK3288][Android6.0] USB Mass Storage流程小结
- [RK3288][Android6.0] USB hub初始化流程小结
- [RK3288][Android6.0] 调试笔记 --- USB Camera旋转图像方法
- [RK3288][Android6.0] USB WiFi驱动流程小结
- [RK3288][Android6.0] USB OTG模式及切换
- [RK3288][Android6.0] AUDIO_BECOMING_NOISY作用
- [RK3288][Android6.0] 调试笔记 --- ECHI上的USB Camera无法打开
- listFileInput.py
- Lombok 安装、入门 - 消除冗长的 java 代码
- 深度神经网络编程细节
- Medium 285题 Inorder Successor in BST
- 2016互联网+设备管理与维修技术高峰论坛在山东省日照市顺利召开
- [RK3288][Android6.0] USB UVC 协议简结
- SQL查询大小及空间占用情况
- yum install ncurses-devel
- 退出Python命令行
- 抽象类和接口
- 利用css绘制三条横线的菜单图标
- DB2数据库
- 关于Https安全性问题、双向验证防止中间人攻击问题
- 不使用CAS 登录页面登录