|
摄像头保存JPEG图片没有使用硬件编码?
发表于 2015-3-12 09:37:07
浏览:8759
|
回复:1
打印
只看该作者
[复制链接]
楼主
本帖最后由 Xinxin_2011 于 2015-3-13 16:19 编辑
使用摄像头进行拍照时,通过LOG发现:
D/hw_jpeg_encode( 145): version: 2014-08-25, fix IOMMU bugs for 312x
D/hw_jpeg_encode( 145): version: 2014-09-01, fix 5M picture bugs for ISP IOMMU
E/hw_jpeg_encode( 145): encodethumb, open /dev/rk29-ipp fail! we try to do softscale,over.
通过LOG得知问题出在hw_jpeg_encode函数,其实现在libjpeghwenc.so库函数中,通过IDA进行反汇编,查看hw_jpeg_encode函数代码,找到打印信息在encodeThumb函数中:- v55 = open("/dev/rk29-ipp", 2, 0);
- if ( v55 >= 0 )
- {
- ...
- }
- v54 = &v62;
- v53 = v7 * v6;
- _android_log_print(6, "hw_jpeg_encode", "encodethumb, open /dev/rk29-ipp fail! we try to do softscale,over.");
复制代码
可见,是因为打开/dev/rk29-ipp设备节点失败,然后尝试软件编码。通过adb查找/dev目录下的节点,果然没有rk29-ipp,但是系统初始化的脚本init.rk30board.rc中已经加载了相应的驱动模块:
- on post-fs
- insmod /system/lib/modules/ump.ko
- insmod /drmboot.ko
- insmod /system/lib/modules/mali.ko
- insmod /system/lib/modules/mali_kbase.ko
- insmod /system/lib/modules/rk30_mirroring.ko
- insmod /system/lib/modules/rk29-ipp.ko
复制代码 怀疑驱动本身存在问题,导致加载失败。
|
|