1. issue description

yavta 是一款测试APP,测试UVC 摄像头的数据采集回传。

yavta -f YUYV -s 1280x720 -t 1/60 -c100 /dev/video0 -F/data/yua

帧率60FPS 不能正常运行,blocked, all frame fail。

yavta -f YUYV -s 1280x720 -t 1/30 -c100 /dev/video0 -F/data/yua

帧率30FPS 能正常运行,但中间也会有一些丢包。

1.1 图像的一些参数

帧率:FPS(每秒钟要多少帧画面); 以及Gop(表示多少秒一个I帧),影响流畅度。

-t 1/60      // 帧率60,一秒钟传输60 帧

分辨率:单位英寸中所包含的像素点数; VGA:Video Graphics Array(视频图像分辨率),影响清晰度。

-s 1280x720      // 分辨率720P

视频大小:分辨率 x 2(每个像素占多少字节) x 8 x 帧率 x 时间(s) /1024/1024
YUV422 格式帧大小:分辨率 x 2 Byte

对于YUV422 格式的 1080P 视频而言,一帧图像是 1920x1080x2x8/1024/1024 = 31.64Mbit,1秒钟30帧图像的话,则有949.2Mb/s。

1.2 yavta 控制流程

root@:/# strace yavta -f YUYV -s 1280x720 -t 1/60 -c100 /dev/video0
// 解析参数
execve("/usr/bin/yavta", ["yavta", "-f", "YUYV", "-s", "1280x720", "-t", "1/60", "-c100", "/dev/video0"], 0x7fc5203a80 /* 16 vars */) = 0
// 打开设备节点
openat(AT_FDCWD, "/dev/video0", O_RDWR) = 3
// 回显显示
write(1, "Device /dev/video0 opened.\n", 27Device /dev/video0 opened.) = 27
// 设备节点的ioctl
ioctl(3, VIDIOC_QUERYCAP, {driver="uvcvideo", card="KS2A418: KS2A418", bus_info="usb-xhci-hcd.0.auto-1.3", version=4.19.125, ...) = 0
// 回显显示
write(1, "Device `KS2A418: KS2A418' on `us"..., 117Device `KS2A418: KS2A418' on `usb-xhci-hcd.0.auto-1.3' (driver 'uvcvideo') supports video, capture, without mplanes.) = 117
// ioctl 设置参数
ioctl(3, VIDIOC_G_PARM, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE, parm.capture={capability=V4L2_CAP_TIMEPERFRAME, capturemode=0, timeperframe=1/60, extendedmode=0, readbuffers=0}}) = 0
write(1, "Current frame rate: 1/60\n", 25Current frame rate: 1/60) = 25
write(1, "Setting frame rate to: 1/60\n", 28Setting frame rate to: 1/60) = 28
...

这些ioctl 对应驱动的接口为:

// \drivers\media\usb\uvc\uvc_v4l2.c
const struct v4l2_ioctl_ops uvc_ioctl_ops = {.vidioc_querycap = uvc_ioctl_querycap,....vidioc_reqbufs = uvc_ioctl_reqbufs,.vidioc_querybuf = uvc_ioctl_querybuf,.vidioc_qbuf = uvc_ioctl_qbuf,.vidioc_expbuf = uvc_ioctl_expbuf,.vidioc_dqbuf = uvc_ioctl_dqbuf,.vidioc_create_bufs = uvc_ioctl_create_bufs,.vidioc_streamon = uvc_ioctl_streamon,.vidioc_streamoff = uvc_ioctl_streamoff,...
};

usb host 驱动 - UVC 掉包相关推荐

  1. USB 3G驱动和USB HOST驱动加载

    ********************************LoongEmbedded******************************** 作者:LoongEmbedded(kandi ...

  2. STM32之独立版USB(Host)驱动+MSC+Fatfs移植

    源:STM32之独立版USB(Host)驱动+MSC+Fatfs移植 STM32之USB驱动库详解(架构+文件+函数+使用说明+示例程序)

  3. PCIe实践之路:PCIe转USB Host驱动

    PCIe实践之路:PCIe转USB Host驱动 本次调试PCIe RC驱动,通过PCIe转USB芯片扩展出的USB口接入U盘.RC平台为ARM-A7,运行裸机环境,EP为一款PCIe转USB3.0芯 ...

  4. 详解WinCE下USB Host驱动开发(2)

    当用户需要卸载USB Host设备驱动时,将会调用USBUnInstallDriver函数 BOOL USBUnInstallDriver();     它与USBInstallDriver类似,不过 ...

  5. linux驱动编写(usb host驱动入门)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] usb协议是一个复杂的协议,目前涉及到的版本就有usb1.0, usb2.0, usb3.0.大 ...

  6. linux usb驱动教学视频教程,详解linux usb host驱动编写入门

    usb协议是一个复杂的协议,目前涉及到的版本就有usb1.0, usb2.0, usb3.0.大家如果打开kernel usb host目录,就会发现下面包含了ohci,uhci,ehci,xhci, ...

  7. usb host 驱动 - device 拔插

    1. usbhid 设备拔插 1.1 usb device disconnect 1.1.1 上层卸载usb 设备驱动 生成应用通过ioctl 卸载usb 设备. [ 709.471619] [T29 ...

  8. usb host 驱动之 urb

    1.URB 处理流程 (1)usb 设备驱动程序创建并初始化一个访问特定usb设备特定端点的 urb,并提交给 usb core: (2)usb core 提交该 urb 到 usb 主控制器驱动程序 ...

  9. garmin USB: linux USB host驱动

    以garmin usb为例: 1)编译生成garmin_usb.ko文件,使用insmod命令安装模块 2)使用lsmod命令可查看内核已经安装好模块:garmin_usb 3)插入USB设备后,使用 ...

最新文章

  1. linux 后台任务 前台任务 查看切换终止开始命令 bg、fg、ctrl+z、ctrl+d和ctrl+c 简介
  2. python智能识别_Python人工智能识别文字内容(OCR)
  3. 计算机术语中bit表示,bit的用法
  4. Leet Code OJ 169. Majority Element [Difficulty: Easy]
  5. 浅谈 EF CORE 迁移和实例化的几种方式
  6. LEX和YACC的使用(例子)
  7. 计算机网络期末考长沙学院,校内用-第二套计算机网络试卷A..doc
  8. 业务人员不知道如何提出 BI 需求,老板不重视 BI 项目怎么办?
  9. wordpress 百度主动推送 PHP,WordPress 百度自动推送插件
  10. Linux下用dd命令测试硬盘的读写速度
  11. 浅析“npm run dev”作用
  12. 修改 Zotero 参考文献格式
  13. 双臂模式DPVS+RPM安装教程
  14. Prim算法求图的最小生成树(Java)
  15. 按图搜索1688商品接口(item_search_img-按图搜索1688商品(拍立淘接口)代码对接教程
  16. 视频按帧截取 python程序
  17. 华为防火墙实战配置教程,太全了
  18. 剑网三指尖江湖快速升级辅助 日常任务脚本工具介绍
  19. m4a html 播放器,HTML5 Audio m4a
  20. 最长公共子序列、最长连续公共子序列、最长递增子序列

热门文章

  1. linux下cp -pf,Linux下cp直接覆盖
  2. js-前端video播放器
  3. GUI测试 东南大学 SEU 软件测试
  4. java对配_[Java教程]对局匹配
  5. spring在项目启动时就执行特定方法
  6. 爬虫-解析库的使用-Xpath
  7. unity android 性能分析,Unity Profiler 性能分析
  8. HTC Desire G7刷机
  9. axure流程图模式_Axure 9.0基础教程:没有Visio,也可以快速绘制流程图
  10. PyQt5表格控件QTableWidget