高通平台调整图像角度问题-mirror-flip

来源:互联网 发布:整理思路的软件 编辑:程序博客网 时间:2024/05/20 06:07

介绍下接触的两个高通平台89178916旋转角度问题。

8916

  Mirror flip寄存器: 根据spec中的datasheet调。这个更改jpg出图的方向,同时也影响RAW的方向,更改的同Bayer出图顺序也改变。对应更改

static struct sensor_pix_fmt_info_t sp2609_pix_fmt0_fourcc[] = {

  { V4L2_PIX_FMT_SRGGB10 },

};

 

 sensor_mount_angle

static struct msm_sensor_init_params sensor_init_params = {

  .modes_supported = 0,      /* mask of modes supported: 2D, 3D */

  .position = 0,               /* sensor position: front, back */

  .sensor_mount_angle = 90,  /* sensor mount angle */

};

2D模式:平面图像模式。
3D模式:拍照出使裸眼观看就具有立体感的图像的模式,需要使用双摄像头。
sensor安装角度的值是宏定义,在sensor_lib.h中,定义如下:

#define SENSOR_MOUNTANGLE_360 360         //360度
/* Sensor mount angle. */
#define SENSOR_MOUNTANGLE_0 0                  //0度
#define SENSOR_MOUNTANGLE_90 90                //90度
#define SENSOR_MOUNTANGLE_180 180         //180度

#define SENSOR_MOUNTANGLE_270 270         //270度

 

这个参数主要是旋转角度,对整个预览拍照图像的一个旋转,如顺向90°这旋转是mirror flip做不到的。对RAW的方向并不影响。同时重力感应出图会相应的旋转。

.sensor_mount_angle = 360时候,此时生效的不是用户层驱动lib.c中的角度,而是kerneldtsi文件对应camera id编号的默认值。

qcom,mount-angle = <90>;

8917

Lib.c中并没有sensor_mount_angle设置参数。以kerneldtsi文件中对应camera  idqcom,mount-angle为准。

其次就是更改mirrorflip寄存器。原理同8916