Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6a0e5451 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: vidc: Add new control for flip"

parents 1c2d2f82 87754272
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -1420,6 +1420,9 @@ int create_pkt_cmd_session_set_property(
		case HAL_FLIP_VERTICAL:
			hfi->flip = HFI_FLIP_VERTICAL;
			break;
		case HAL_FLIP_BOTH:
			hfi->flip = HFI_FLIP_HORIZONTAL | HFI_FLIP_VERTICAL;
			break;
		default:
			dprintk(VIDC_ERR, "Invalid flip setting: %#x\n",
				prop->flip);
+40 −1
Original line number Diff line number Diff line
@@ -61,6 +61,14 @@ static const char *const mpeg_video_rotation[] = {
	NULL
};

static const char *const mpeg_video_flip[] = {
	"No Flip",
	"Horizontal Flip",
	"Vertical Flip",
	"Both",
	NULL
};

static const char *const h264_video_entropy_cabac_model[] = {
	"Model 0",
	"Model 1",
@@ -1045,6 +1053,21 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		.default_value = 0,
		.step = 1,
	},
	{
		.id = V4L2_CID_MPEG_VIDC_VIDEO_FLIP,
		.name = "Flip",
		.type = V4L2_CTRL_TYPE_MENU,
		.minimum = V4L2_CID_MPEG_VIDC_VIDEO_FLIP_NONE,
		.maximum = V4L2_CID_MPEG_VIDC_VIDEO_FLIP_BOTH,
		.default_value = V4L2_CID_MPEG_VIDC_VIDEO_FLIP_NONE,
		.menu_skip_mask = ~(
		(1 << V4L2_CID_MPEG_VIDC_VIDEO_FLIP_NONE) |
		(1 << V4L2_CID_MPEG_VIDC_VIDEO_FLIP_HORI) |
		(1 << V4L2_CID_MPEG_VIDC_VIDEO_FLIP_VERT) |
		(1 << V4L2_CID_MPEG_VIDC_VIDEO_FLIP_BOTH)
		),
		.qmenu = mpeg_video_flip,
	},

};

@@ -1436,11 +1459,27 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl)
		break;
	case V4L2_CID_MPEG_VIDC_VIDEO_ROTATION:
	{
		temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDC_VIDEO_FLIP);
		property_id = HAL_PARAM_VPE_ROTATION;
		vpe_rotation.rotate = msm_comm_v4l2_to_hal(
				V4L2_CID_MPEG_VIDC_VIDEO_ROTATION,
				ctrl->val);
		vpe_rotation.flip = msm_comm_v4l2_to_hal(
				V4L2_CID_MPEG_VIDC_VIDEO_FLIP,
				temp_ctrl->val);
		pdata = &vpe_rotation;
		break;
	}
	case V4L2_CID_MPEG_VIDC_VIDEO_FLIP:
	{
		temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDC_VIDEO_ROTATION);
		property_id = HAL_PARAM_VPE_ROTATION;
		vpe_rotation.rotate = msm_comm_v4l2_to_hal(
				V4L2_CID_MPEG_VIDC_VIDEO_ROTATION,
				temp_ctrl->val);
		vpe_rotation.flip = msm_comm_v4l2_to_hal(
				V4L2_CID_MPEG_VIDC_VIDEO_FLIP,
				ctrl->val);
		vpe_rotation.flip = HAL_FLIP_NONE;
		pdata = &vpe_rotation;
		break;
	}
+13 −0
Original line number Diff line number Diff line
@@ -560,6 +560,19 @@ int msm_comm_v4l2_to_hal(int id, int value)
		default:
			goto unknown_value;
		}
	case V4L2_CID_MPEG_VIDC_VIDEO_FLIP:
		switch (value) {
		case V4L2_CID_MPEG_VIDC_VIDEO_FLIP_NONE:
			return HAL_FLIP_NONE;
		case V4L2_CID_MPEG_VIDC_VIDEO_FLIP_HORI:
			return HAL_FLIP_HORIZONTAL;
		case V4L2_CID_MPEG_VIDC_VIDEO_FLIP_VERT:
			return HAL_FLIP_VERTICAL;
		case V4L2_CID_MPEG_VIDC_VIDEO_FLIP_BOTH:
			return HAL_FLIP_BOTH;
		default:
			goto unknown_value;
		}
	case V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE:
		switch (value) {
		case V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED:
+1 −0
Original line number Diff line number Diff line
@@ -660,6 +660,7 @@ enum hal_flip {
	HAL_FLIP_NONE,
	HAL_FLIP_HORIZONTAL,
	HAL_FLIP_VERTICAL,
	HAL_FLIP_BOTH,
	HAL_UNUSED_FLIP = 0x10000000,
};

+8 −0
Original line number Diff line number Diff line
@@ -1126,6 +1126,14 @@ enum v4l2_mpeg_vidc_video_tme_level {
#define V4L2_CID_MPEG_VIDC_VIDEO_VPE_CSC_CUSTOM_MATRIX \
		(V4L2_CID_MPEG_MSM_VIDC_BASE + 114)

#define V4L2_CID_MPEG_VIDC_VIDEO_FLIP (V4L2_CID_MPEG_MSM_VIDC_BASE + 115)
enum v4l2_mpeg_vidc_video_flip {
	V4L2_CID_MPEG_VIDC_VIDEO_FLIP_NONE = 0,
	V4L2_CID_MPEG_VIDC_VIDEO_FLIP_HORI = 1,
	V4L2_CID_MPEG_VIDC_VIDEO_FLIP_VERT = 2,
	V4L2_CID_MPEG_VIDC_VIDEO_FLIP_BOTH = 3,
};

/*  Camera class control IDs */

#define V4L2_CID_CAMERA_CLASS_BASE 	(V4L2_CTRL_CLASS_CAMERA | 0x900)