Как ограничить FPS для гаджета UVC? - PullRequest
0 голосов
/ 14 февраля 2019

Я занимаюсь разработкой приложения на основе g_webcam кода шаблона, доступного по адресу git://git.ideasonboard.org/uvc-gadget.git.Я заметил, что настройка FPS, предоставленная в структурах конфигурации устройства USB, не соблюдаетсяФактически, гаджет пытается максимально возможную частоту кадров.Кроме того, хост имеет тенденцию терять канал к устройству UVC из-за возможного низкоуровневого переполнения интерфейса USB из-за произвольного выбора FPS.

Итак, как мы можем установить жесткое ограничение FPS для гаджета UVC?

Спасибо!

Источник модуля ядра:

/* 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:

static const struct uvc_frame_info uvc_frames_grey[] = {
    {  FRAME_WIDTH, FRAME_HEIGHT, FRAME_RATE_USEC, },
    { 0, 0, 0, },
};

Общий заголовок:

#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 */

1 Ответ

0 голосов
/ 06 марта 2019

Полагаю, Пол добавил поддержку для установки ограничения на FPS в usb-гаджете, который недавно был обновлен.

Пожалуйста, рассмотрите самую последнюю версию репозитория.

Позвольте намзнать, если вы решите какие-либо вопросы по этому вопросу.

...