Closed jeff-getlucky closed 7 months ago
@jeff-getlucky 对于同一个摄像头,不同的 USB 模式会有不同的描述符配置,PC 上拿到的 Highspeed 描述符,S3 下摄像头只能工作在 Full-speed 模式,拿到的是 Full-speed 描述符。
现在无法确认是 S3 平台的解析问题。
可以在摄像头连接到 PC 之前加一个 USB 隔离器,PC 上获取 Full-speed 描述符进一步对比
@jeff-getlucky 对于同一个摄像头,不同的 USB 模式会有不同的描述符配置,PC 上拿到的 Highspeed 描述符,S3 下摄像头只能工作在 Full-speed 模式,拿到的是 Full-speed 描述符。
现在无法确认是 S3 平台的解析问题。
可以在摄像头连接到 PC 之前加一个 USB 隔离器,PC 上获取 Full-speed 描述符进一步对比
但单独看esp32s3解析到的fps是4266.6538ms->0.234 fps 不可能呀 正常应该是16.6666到100ms之间,这个是解析错位了。 ep32s3解析FrameInterval 0x028B0A2A 右移两位就是正确的fps了,但光改这个不行,我尝试修改了final_interval,目前没效果,还在尝试修改其他地方。
@jeff-getlucky dwDefaultFrameInterval 是一个 word,4 个 Bytes,如果你能修改摄像头固件,查一下 Fullspeed 的描述符,这个变量数据类型是不是选错了
@jeff-getlucky dwDefaultFrameInterval 是一个 word,4 个 Bytes,如果你能修改摄像头固件,查一下 Fullspeed 的描述符,这个变量数据类型是不是选错了
改不了固件,正确的frame interval应该是0x00028B0A,也是一个word。 哦,对了,忘了说了,很多字段解析错了,不止dwDefaultFrameInterval,甚至连bLength都对不上。 我这边有两个不同品牌的摄像头,在esp32s3上表现是一样的,usb描述符都不对。 在Windows上用potplayer播放没问题。 我去买一个usb2.0 full-speed的hub试一下,谢谢了。
usb隔离器到了,确实是因为摄像头不支持full speed。
Answers checklist.
General issue report
下面是用pc软件查询到的信息
其中默认fps是60