使用sansung camera HAL 替换 freescale camera HAL

在调试camera过程中,通过比较sansung与freescale camera HAL层代码发现freescale硬件抽象层代码简直就烂的 .......
于是萌发了使用sansung HAL层代码替换原有代码的冲动,经过近一周的倒腾终于实现了preview出图。

通过比较代码发现三星camera抽象层代码与飞思卡尔抽象层代码主要差异有一下几点:
1.V4L2架构区别,三星使用最新的V4L2框架而飞思卡尔是旧的V4L2框架,由于代码的向前兼容性该部分基本可以使用。但需要注意调整HAL层代码V4L2接口相关参数使其满足其部分私有接口的要求。
2.camera输出到HAL层数据差异,由于sansung S5PV210内部自带JPEG编解码单元,因此需要调整输出数据格式。只需要调整参数即可。
3.overlay使用方式,freescale使用push模式,需要搬2行代码过来。
4.注意打开编译中的使用overlay模式,因为freescale默认是使用overlay的哟。
完成以上几步就可以看到图片了。

如果要想拍照正常工作应该用freescale的JPEG软编码替换sansung硬编码相关代码。

你可能感兴趣的:(Android,三星,框架,工作)