当前位置:网站首页>USB host driver - UVC swap
USB host driver - UVC swap
2022-07-06 19:19:00 【Be good to me】
1. issue description
yavta It's a test APP, test UVC Data acquisition and return of camera .
yavta -f YUYV -s 1280x720 -t 1/60 -c100 /dev/video0 -F/data/yua
Frame rate 60FPS Not working properly ,blocked, all frame fail.
yavta -f YUYV -s 1280x720 -t 1/30 -c100 /dev/video0 -F/data/yua
Frame rate 30FPS Normal operation , But there will also be some packet losses .
1.1 Some parameters of the image
Frame rate :FPS( How many frames per second ); as well as Gop( Indicates how many seconds a I frame ), Affect fluency .
-t 1/60 // Frame rate 60, One second transmission 60 frame
The resolution of the : The number of pixels contained in an inch ; VGA:Video Graphics Array( Video image resolution ), Affect clarity .
-s 1280x720 // The resolution of the 720P
Video size : The resolution of the x 2( How many bytes does each pixel occupy ) x 8 x Frame rate x Time (s) /1024/1024
YUV422 Format frame size : The resolution of the x 2 Byte
about YUV422 Format 1080P In terms of video , An image is 1920x1080x2x8/1024/1024 = 31.64Mbit,1 Second 30 Frame images , Then there are 949.2Mb/s.
1.2 yavta Control process
[email protected]-rb5:/# strace yavta -f YUYV -s 1280x720 -t 1/60 -c100 /dev/video0
// Analytical parameters
execve("/usr/bin/yavta", ["yavta", "-f", "YUYV", "-s", "1280x720", "-t", "1/60", "-c100", "/dev/video0"], 0x7fc5203a80 /* 16 vars */) = 0
// Open the device node
openat(AT_FDCWD, "/dev/video0", O_RDWR) = 3
// Echo display
write(1, "Device /dev/video0 opened.\n", 27Device /dev/video0 opened.) = 27
// Device node ioctl
ioctl(3, VIDIOC_QUERYCAP, {
driver="uvcvideo", card="KS2A418: KS2A418", bus_info="usb-xhci-hcd.0.auto-1.3", version=4.19.125, ...) = 0
// Echo display
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 Set parameters
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
...
these ioctl The interface of the corresponding drive is :
// \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,
...
};
边栏推荐
- When visual studio code starts, it prompts "the code installation seems to be corrupt. Please reinstall." Solution to displaying "unsupported" information in the title bar
- 安装Mysql报错:Could not create or access the registry key needed for the...
- 三年Android开发,2022疫情期间八家大厂的Android面试经历和真题整理
- Digital "new" operation and maintenance of energy industry
- IC设计流程中需要使用到的文件
- tensorflow和torch代码验证cuda是否安装成功
- Binary search tree
- MATLAB中deg2rad和rad2deg函数的使用
- Solution of commercial supply chain management platform for packaging industry: layout smart supply system and digitally integrate the supply chain of packaging industry
- short i =1; i=i+1与short i=1; i+=1的区别
猜你喜欢

wx小程序学习笔记day01
![Airiot IOT platform enables the container industry to build [welding station information monitoring system]](/img/52/88e3c7b7a60867282921d9bb5c96da.jpg)
Airiot IOT platform enables the container industry to build [welding station information monitoring system]

An error occurs when installing MySQL: could not create or access the registry key needed for the

中缀表达式转后缀表达式详细思路及代码实现

Take a look at how cabloyjs workflow engine implements activiti boundary events

Cereals Mall - Distributed Advanced p129~p339 (end)

CCNP Part 11 BGP (III) (essence)
![[depth first search] Ji suanke: a joke of replacement](/img/f9/10dbbc2f6fed2095d2b155ecf87b75.jpg)
[depth first search] Ji suanke: a joke of replacement

黑馬--Redis篇

A method of removing text blur based on pixel repair
随机推荐
Oracle advanced (IV) table connection explanation
Optical blood pressure estimation based on PPG and FFT neural network [translation]
多线程基础:线程基本概念与线程的创建
test about BinaryTree
Don't miss this underestimated movie because of controversy!
Installation and management procedures
Abstract classes and abstract methods
Solution of intelligent management platform for suppliers in hardware and electromechanical industry: optimize supply chain management and drive enterprise performance growth
抽象类与抽象方法
Analysis of frequent chain breaks in applications using Druid connection pools
AUTOCAD——中心线绘制、CAD默认线宽是多少?可以修改吗?
Wx applet learning notes day01
R language ggplot2 visualization: use ggviolin function of ggpubr package to visualize violin diagram
中缀表达式转后缀表达式详细思路及代码实现
Problems encountered in using RT thread component fish
谷粒商城--分布式高级篇P129~P339(完结)
The nearest library of Qinglong panel
Multithreading Basics: basic concepts of threads and creation of threads
[depth first search] Ji suanke: Square
usb host 驱动 - UVC 掉包