首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何限制UVC小工具的FPS?

如何限制UVC小工具的FPS?
EN

Stack Overflow用户
提问于 2019-02-15 00:32:20
回答 1查看 592关注 0票数 0

我正在开发一个基于git://git.ideasonboard.org/uvc-gadget.git上提供的g_webcam类模板代码的应用程序。我注意到USB设备配置结构中提供的FPS设置没有得到尊重。事实上,gadget会尝试最快的帧率。此外,由于机会主义的FPS选择导致可能的低级USB接口泛洪,主机倾向于松散到UVC设备的管道。

那么,我们如何为UVC小工具设置FPS的硬限制呢?

谢谢!

内核模块源代码:

代码语言:javascript
复制
/* Uncompressed Payload - 3.1.2. Uncompressed Video Frame Descriptor */
static const struct UVC_FRAME_UNCOMPRESSED(1) 
uvc_frame_uncompressed_360p = {
    .bLength        = UVC_DT_FRAME_UNCOMPRESSED_SIZE(1),
    .bDescriptorType    = USB_DT_CS_INTERFACE,
    .bDescriptorSubType = UVC_VS_FRAME_UNCOMPRESSED,
    .bFrameIndex        = 1,
    .bmCapabilities     = 0,
    .wWidth         = cpu_to_le16(FRAME_WIDTH),
    .wHeight        = cpu_to_le16(FRAME_HEIGHT),
    .dwMinBitRate       = cpu_to_le32(FRAME_WIDTH * FRAME_HEIGHT * 8 * FRAME_RATE),
    .dwMaxBitRate       = cpu_to_le32(FRAME_WIDTH * FRAME_HEIGHT * 8 * FRAME_RATE),
    .dwMaxVideoFrameBufferSize  = cpu_to_le32(FRAME_WIDTH * FRAME_HEIGHT),
    .dwDefaultFrameInterval = cpu_to_le32(FRAME_RATE_USEC),
    .bFrameIntervalType = 1,
    .dwFrameInterval[0] = cpu_to_le32(FRAME_RATE_USEC),
};

UVC小工具来源:

代码语言:javascript
复制
static const struct uvc_frame_info uvc_frames_grey[] = {
    {  FRAME_WIDTH, FRAME_HEIGHT, FRAME_RATE_USEC, },
    { 0, 0, 0, },
};

公共头部:

代码语言:javascript
复制
#define STREAMING_MAXPACKET 1024
#define FRAME_WIDTH 160
#define FRAME_HEIGHT 90
#define FRAME_RATE 330 /* 330 FPS */
#define FRAME_RATE_USEC 30303 /* 330 FPS */
EN

回答 1

Stack Overflow用户

发布于 2019-03-07 01:57:29

我相信Paul增加了对usb-gadget中的FPS设置限制的支持,这是最近上线的。

请考虑查看存储库的最新版本。

如果您在这方面遇到任何进一步的问题,请让我们知道。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54695014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档