CameraX 似乎在某些设备上存根初始字节,这是一个错误吗?

问题描述

我正在使用 CameraX 的“1.0.0-rc03”版本和 ImageAnalysis 用例,我的目标是接收帧并最终将它们转换为 JPEG,但是我遇到了内容不一致的情况CameraX 返回的字节数据,编码为 YUV_420_888

我面临的问题是对于小米 A2、三星 Tab E 和京瓷 E6560 等某些设备ImageProxy 返回的 ImageAnalysis 对象具有Y、U 和 V 平面 ByteBuffers 始终返回相同的第一个字节值。 Y平面ByteBuffer的第一个索引总是0,U和V平面ByteBuffer的第一个索引总是-128。当我使用推荐的 YuvToRgbConverter 或使用我自己的自定义实现解码图像时,结果始终相同,图像移动一个像素,导致所有后续行环绕。

Image captured with Xiaomi MiA2

并非所有设备都会出现此问题。三星 S8 等一些设备的 Y、U 和 V 平面第一个字节每次包含不同的数据,并且解码图像没有像素环绕行为。问题似乎也只出现在 CameraX 上,因为在小米 A2、三星 Tab E 和京瓷 E6560 上,弃用的 Camera API 返回的字节数据不包含此初始字节。

有人知道为什么这些 ByteBuffers 在每一帧都返回这些值吗?或者如何解决这个问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)