最近在 REAL210 android 上调试 CAMERA 驱动。

发现原来的开发板只支持 640*320 以及 320*240 ,

但是用的是 OV3640 300W 的摄像头,应该可以拍照到 2048*1536 的分辨率的。

索性把这个 300W 打开吧。

1、看看这里是否支持 300W 的分辨率,原生 ANDROID 是支持到 500W 的。

packages/apps/Camera/res/values/strings.xml
<string name="pref_camera_picturesize_entry_2592x1936">5M Pixels</string>
<string name="pref_camera_picturesize_entry_2048x1536">3M Pixels</string>
<string name="pref_camera_picturesize_entry_1600x1200">2M Pixels</string>
<string name="pref_camera_picturesize_entry_1024x768">1M Pixels</string>
<!--<string name="pref_camera_picturesize_entry_640x480" translatable="false">VGA</string>-->
<!--<string name="pref_camera_picturesize_entry_320x240" translatable="false">QVGA</string>-->

<string name="pref_camera_picturesize_entry_640x480">640 X 480</string>
<string name="pref_camera_picturesize_entry_320x240">320 X 240</string>

2、设置 CAMERA 的最大分辨率

device/samsung/proprietar/libcamera/SecCamera.h

const struct camera_info s5k4ba_info =
{
640, // max_preview_width
480, // max_preview_height
2048, // max_snapshot_width
1536, // max_snapshot_height

完成以上两步在 CAMERA 界面就可以见到 300W 的选择了。

当选择了 300W 拍照后 系统卡住不动了,通过跟踪发现是

device/samsung/proprietar/libs3cjpeg/JpegEncode.cpp

里面的

encode_jpg(struct s5pc110_jpg_ctx *jpg_ctx,
struct jpg_enc_proc_param *enc_param)
这个函数里面申请的图片 SIZE 大于允许的范围了。

最后在



device/samsung/proprietar/libs3cjpeg/jpeg.h
#define MAX_JPG_WIDTH 2048
#define MAX_JPG_HEIGHT 1536

设置这个最大 SIZE 即可。

但是拍照的时候还是卡住了,通过跟踪发现和 内核的 JPEG 驱动有关,

进入 JPEG 驱动后发现允许的最大 分辨率是 800*480

把这个 SIZE 设置成 2048*1536

#ifdef CONFIG_VIDEO_JPEG_V2
static struct s3c_platform_jpeg jpeg_plat __initdata = {
.max_main_width= 2048,
.max_main_height= 1536,
.max_thumb_width= 320,
.max_thumb_height= 240,
};
#endif

然后再把申请的内存空间放大

#define S5PV210_VIDEO_SAMSUNG_MEMSIZE_JPEG (14336 * SZ_1K)

注意:device/samsung/proprietar/libs3cjpeg/jpeg.h里面的

JPG_TOTAL_BUF_SIZE <S5PV210_VIDEO_SAMSUNG_MEMSIZE_JPEG

通过以上的修改

已经可以实现 300W 的拍照了

但是感觉拍出来的照片和 100W 的效果差不多

就是图片的 SIZE 变大了。

读者评论:

你的只是打开了camera的图片的拍照没有300w的效果 原因就是你拍300w的时候 但是调用了640*320 或是320*240的camera的配置 只是把图片拉升了而已 要实现300w的拍照还的在驱动里面配置camera的寄存器。

更多相关文章

  1. Android(安卓)Camera拍照常见问题小结
  2. 在定制android设备时,刷机后不全屏显示或实现长按Home键current a
  3. Android(安卓)支持分辨率 支持多屏幕机制
  4. [ Android(安卓)- Android(安卓)Studio 问题和异常整理 ] - Coul
  5. Android(安卓)系统开发(2)--Android(安卓)Treble详细分析
  6. android opencv 前置摄像头
  7. Android(安卓)- 如何将2个或多个应用放到一个进程中去?
  8. Android属性动画AnimatorSet源码简单分析
  9. Android(安卓)屏幕适配:最全面的解决方案

随机推荐

  1. Android(安卓)Nine Patch图片及按钮背景
  2. Android从服务端获取json解析显示在客户
  3. 在 Android(安卓)设备上搭建 Web 服务器
  4. Android(安卓)touch mode和focusableInTo
  5. 【Android】第5章(1) 常用基本控件--本章示
  6. Android中子线程真的不能更新UI吗?
  7. Android系统架构图及简单的系统架构介绍
  8. Intent的设想与天马行空
  9. VirtualBox上编译android遇到共享文件夹
  10. 使用 Android(安卓)实现联网