本站的1位用户
加入于2021-05-27
B站搜索 站长漫谈 看视频。
pnpon内核开发网,USB中文网
站长
    如有以下的报告描述符,其内容如下:0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00)0x09, 0x01, // Usage (0x01)0xA1, 0x01, // Collection (Applic......
    阅读数:1点赞数:02024-04-19 12:02:04
    获取报告描述符 CTL 81 06 00 22 01 00 ee 02 686 IN 05 0d 09 04 ......
    阅读数:5点赞数:02024-04-17 16:13:33
    半拉子工程,又开始搞起。重新修改代码,在驱动中测试创建一个UVC相机,一个自定义HID设备,一个UAC麦克风,一个UAC扬声器。不过UAC设备都启动失败了。别外UVC相机的名字也不是自己定指的名字。如对于UAC扬声器设备指定的为: WCHAR strManufacturer[] = { L......
    阅读数:8点赞数:02024-04-11 15:46:03
    从USB PD3.1开始,支持EPR模式,故在进行协商时:第一步:明确PD连接此阶段,Source/Sink会确认双方是否都有宣告支持EPR Mode:Source/Sink,需要先建立Explicit PD Contract。在Source Capabilities与Request Mess......
    阅读数:67点赞数:02024-04-08 10:53:31
    USB PD3.1规范将原来的USB PD3.0内容归到标准功率范围(Standard Power Range,简称SPR)里面,最大功率保持100W不变;同时增加了扩展功率范围(Extended Power Range,简称EPR),最大功率由100W扩展到240W。所以PD3.1快充规范将功率划......
    阅读数:69点赞数:12024-04-08 10:19:50
    实现不想看那个视频流队列相关的东西,但有时又很好奇。就看了一个一知半解,只是梳理了一下代码流程,至于细节,鬼才去看。最终,其实想分析的是视频打开,只为只有这里有与UVC规范相关的请求。使用VIDIOC_STREAMON请求来打开视频流。 // 开始数据流 type = V4L2_BU......
    阅读数:20点赞数:02024-04-02 17:11:40
    将缓冲区放入队列,这样就可以使用该队列读取数据了 // 将缓冲区放入队列 for (unsigned int i = 0; i < reqbuf.count; i++) { memset(&buf, 0, sizeof(buf)); bu......
    阅读数:15点赞数:02024-04-02 15:37:13
    LINUX&UVC驱动中通过VIDIOC_REQBUFS申请的内存空间在内核层,而我们的应用程序在应用层,故为了从内核中将数据读到应用层,提高效率。LINUX&UVC驱动使用的是内存映射的方式。其原理就是同一片内存空间,分别映射到用户层和内核层。这样在内核中写内存,在应用层通过读应用......
    阅读数:17点赞数:02024-04-02 15:32:08
    在启动UVC相机前,需要先准备好数据的存储缓冲区,使用VIDIOC_REQBUFS控制吗。 // 请求内存缓冲区 reqbuf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; reqbuf.memory = V4L2_MEMORY_MMAP; ......
    阅读数:21点赞数:02024-04-02 12:09:50
    在LINUX&UVC驱动中单独有一个文件命名为uvc_queue.c,其实现的就是管理UVC驱动中视频数据缓冲区队列的,即Video buffers queue management。UVC视频队列实始化的函数是uvc_queue_init(),并且永远不能失败。视频缓冲区(Video b......
    阅读数:20点赞数:02024-04-02 10:02:31
    UVC视频的协商其实走的是VS_PROBE_CONTROLL请求,使用该请求可以获取一个默认的视频格式、分辨率。当然,如果用户指定非默认的,会也使用VS_PROBE_CONTROLL请求来验证是否存在。无论是默认的还是新指定的,最终协商完成后,都会使用VS_COMMIT_CONTROL请求最后进行提......
    阅读数:30点赞数:02024-04-01 16:26:28
    UVC视频分为视频格式、帧大小及帧率。不过一般帧率和帧大小(分辨率)合并在一起的。视频格式通过VIDIOC_ENUM_FMT获取到,但该视频格式下可能支持多种帧率和帧大小(分辨率)。故在应用层通过VIDIOC_ENUM_FRAMESIZES控制码来枚举该视频格式下的帧分辨率及帧率。帧分辨率在UVCC......
    阅读数:9点赞数:02024-04-01 12:29:28
    vidioc_enum_fmt_vid_cap 和 vidioc_enum_fmt_vid_out 是Linux内核中V4L2(Video for Linux 2)驱动程序中的两个ioctl命令,用于枚举视频设备的捕获(capture)和输出(output)格式。vidioc_enum_fmt_......
    阅读数:13点赞数:02024-04-01 12:00:19
    VIDIOC_QUERYCAP请求使用api函数ioctl,最终进行LINUX&UVC驱动中,根据设备节点的不同,执行的回调函数不同。VIDIOC_QUERYCAP请求用于返回设备支持的功能属性信息,其对应的结构体v4l2_capability。struct v4l2_capabilit......
    阅读数:20点赞数:02024-03-29 12:17:45
    打开 /dev/video0 设备。查询设备的基本能力,并打印驱动程序、设备名称等信息。设置视频格式为 640x480 分辨率,YUYV 格式,交错扫描。请求 4 个内存缓冲区用于视频数据。将这些缓冲区映射到用户空间。将缓冲区放入视频队列。开始数据流。在需要时,可以添加视频处理或保存的代码。停止数......
    阅读数:42点赞数:02024-03-28 16:25:36