android - QualcommCamera硬件来源的想法native_get_picture : MSM_CAM_IOCTL_GET_PICTURE Connection timed out error?

我正在开发一个库,以使Camera API更易于开发人员使用。

使用后置摄像头的人像模式下的Droid Incredible 2无法拍照。具体来说,我在LogCat中获得了以下序列:

08-18 09:25:52.094: E/QualcommCameraHardware(1368): native_get_picture: MSM_CAM_IOCTL_GET_PICTURE fd 25 error Connection timed out
08-18 09:25:52.094: E/QualcommCameraHardware(1368): getPicture failed!
08-18 09:25:52.094: E/QualcommCameraHardware(1368): get picture failed, giving jpeg callback with NULL data

这些消息发生在我在 takePicture()上调用 Camera后约5秒,这与我看到的 QualcommCameraHardware的一些旧源代码相符,该源代码在 ioctl()调用上设置了5000ms超时以与相机硬件通话。

最终结果是 onPictureTaken()传递了JPEG数据的 null byte[],这意味着我们没有照片。

该设备可以在所有其他经过测试的配置下使用我的代码,包括使用前置摄像头在纵向模式下工作。

有谁知道可能导致此特定故障的特定事项?

更新

我再也无法重现该错误。我会删除问题,但是一旦有了答案,那显然是不可能的。

最佳答案

MSM_CAM_IOCTL_GET_PICTURE是运行该函数的内核调用

static int msm_get_pic(struct msm_sync *sync, void __user *arg)

我从HTCdev下载了设备的内核源代码,并找到了在
drivers/media/video/msm/msm_camera-7x30.c

拍照时可以检查什么是内核消息?
adb shell su -c "dmesg"