Files
SDK_RK3288/hardware/rockchip/camera/CameraHal/180.patch

51 lines
2.1 KiB
Diff

diff --git a/CameraHal/CameraHal.h b/CameraHal/CameraHal.h
index 9f55908..b7fa248 100755
--- a/CameraHal/CameraHal.h
+++ b/CameraHal/CameraHal.h
@@ -319,6 +319,9 @@ namespace android {
#define CONFIG_CAMERA_ORIENTATION_SKYPE 0
#define CONFIG_CAMERA_FRONT_ORIENTATION_SKYPE 0
#define CONFIG_CAMERA_BACK_ORIENTATION_SKYPE 0
+#define CONFIG_CAMERA_ORIENTATION_QQ 1
+#define CONFIG_CAMERA_FRONT_ORIENTATION_QQ 90
+#define CONFIG_CAMERA_BACK_ORIENTATION_QQ 0
#define CONFIG_CAMERA_FRONT_PREVIEW_FPS_MIN 3000 // 3fps
#define CONFIG_CAMERA_FRONT_PREVIEW_FPS_MAX 40000 //30fps
diff --git a/CameraHal/CameraHal_Module.cpp b/CameraHal/CameraHal_Module.cpp
index f8d5d89..8a9a6e7 100755
--- a/CameraHal/CameraHal_Module.cpp
+++ b/CameraHal/CameraHal_Module.cpp
@@ -1045,6 +1045,31 @@ int camera_get_camera_info(int camera_id, struct camera_info *info)
info->facing = gCamInfos[camera_id].facing_info.facing;
info->orientation = gCamInfos[camera_id].facing_info.orientation;
#endif
+#if CONFIG_CAMERA_ORIENTATION_QQ
+ process_name[0] = 0x00;
+ sprintf(process_name,"/proc/%d/cmdline",getCallingPid());
+ fp = open(process_name, O_RDONLY);
+ if (fp < 0) {
+ memset(process_name,0x00,sizeof(process_name));
+ LOGE("%s(%d): Obtain calling process info failed",__FUNCTION__,__LINE__);
+ } else {
+ memset(process_name,0x00,sizeof(process_name));
+ read(fp, process_name, 30);
+ close(fp);
+ fp = -1;
+ }
+
+ info->facing = gCamInfos[camera_id].facing_info.facing;
+ if (strstr(process_name,"com.tencent.mm")) {
+ info->orientation = (info->facing == CAMERA_FACING_BACK)? CONFIG_CAMERA_BACK_ORIENTATION_QQ : CONFIG_CAMERA_FRONT_ORIENTATION_QQ;
+ } else {
+ info->orientation = gCamInfos[camera_id].facing_info.orientation;
+ }
+#else
+ info->facing = gCamInfos[camera_id].facing_info.facing;
+ info->orientation = gCamInfos[camera_id].facing_info.orientation;
+#endif
+
end:
LOGD("%s(%d): camera_%d facing(%d), orientation(%d)",__FUNCTION__,__LINE__,camera_id,info->facing,info->orientation);
return rv;