VIDIOC_ENUM_FMT与VIDIOC_TRY_FMT

问题描述 投票:0回答:1

我从相机中遇到一些意外的行为。将VIDIOC_ENUM_FMT用于V4L2_BUF_TYPE_VIDEO_CAPTURE,我收到两种受支持的格式:MJPGYUYV。但是,当我尝试(实际上WebRTC DeviceInfoLinux::FillCapabilities()为我尝试)以VIDIOC_TRY_FMT列出支持的格式时,它很高兴地报告了更多信息:

supported   MJPG 640x480x30
supported   MJPG 1280x720x15
supported   I420 640x480x30
supported   I420 1280x720x15
supported   YUY2 160x120x30
supported   YUY2 320x240x30
supported   YUY2 640x480x30
supported   YUY2 1280x720x15
supported   UYVY 640x480x30
supported   UYVY 1280x720x15

视频驱动程序是否模拟了其中某些格式?

webrtc v4l2
1个回答
0
投票

更深入地研究VIDIOC_TRY_FMT产生的答案表明了一个有趣的事实,它被DeviceInfoLinux完全忽略了:答案pixformat并不总是等于查询pixformat(而且,答案的宽度和高度都是不等于查询的宽度和高度)。实际上,只有MJPG和YUYV作为结果出现,所以恕我直言,这是WebRTC的错误,无法显示受支持的这些格式:它们是check that the sizes are equal,而不是pixformat

© www.soinside.com 2019 - 2024. All rights reserved.