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

Commit 31c38e8a authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: vidc: resolve profile, level and 8x8 transform"

parents fd2537c1 32e7827e
Loading
Loading
Loading
Loading
+3 −5
Original line number Original line Diff line number Diff line
@@ -184,8 +184,7 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
		(1 << V4L2_MPEG_VIDEO_H264_LEVEL_5_2) |
		(1 << V4L2_MPEG_VIDEO_H264_LEVEL_5_2) |
		(1 << V4L2_MPEG_VIDEO_H264_LEVEL_6_0) |
		(1 << V4L2_MPEG_VIDEO_H264_LEVEL_6_0) |
		(1 << V4L2_MPEG_VIDEO_H264_LEVEL_6_1) |
		(1 << V4L2_MPEG_VIDEO_H264_LEVEL_6_1) |
		(1 << V4L2_MPEG_VIDEO_H264_LEVEL_6_2) |
		(1 << V4L2_MPEG_VIDEO_H264_LEVEL_6_2)
		(1 << V4L2_MPEG_VIDEO_H264_LEVEL_UNKNOWN)
		),
		),
		.flags = V4L2_CTRL_FLAG_VOLATILE,
		.flags = V4L2_CTRL_FLAG_VOLATILE,
		.qmenu = NULL,
		.qmenu = NULL,
@@ -210,7 +209,7 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
		.name = "HEVC Level",
		.name = "HEVC Level",
		.type = V4L2_CTRL_TYPE_MENU,
		.type = V4L2_CTRL_TYPE_MENU,
		.minimum = V4L2_MPEG_VIDEO_HEVC_LEVEL_1,
		.minimum = V4L2_MPEG_VIDEO_HEVC_LEVEL_1,
		.maximum = V4L2_MPEG_VIDEO_HEVC_LEVEL_UNKNOWN,
		.maximum = V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2,
		.default_value = V4L2_MPEG_VIDEO_HEVC_LEVEL_5,
		.default_value = V4L2_MPEG_VIDEO_HEVC_LEVEL_5,
		.menu_skip_mask = ~(
		.menu_skip_mask = ~(
		(1 << V4L2_MPEG_VIDEO_HEVC_LEVEL_1) |
		(1 << V4L2_MPEG_VIDEO_HEVC_LEVEL_1) |
@@ -225,8 +224,7 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
		(1 << V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2) |
		(1 << V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2) |
		(1 << V4L2_MPEG_VIDEO_HEVC_LEVEL_6) |
		(1 << V4L2_MPEG_VIDEO_HEVC_LEVEL_6) |
		(1 << V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1) |
		(1 << V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1) |
		(1 << V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2) |
		(1 << V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2)
		(1 << V4L2_MPEG_VIDEO_HEVC_LEVEL_UNKNOWN)
		),
		),
		.flags = V4L2_CTRL_FLAG_VOLATILE,
		.flags = V4L2_CTRL_FLAG_VOLATILE,
		.qmenu = NULL,
		.qmenu = NULL,
+19 −15
Original line number Original line Diff line number Diff line
@@ -291,8 +291,8 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		.name = "H264 Level",
		.name = "H264 Level",
		.type = V4L2_CTRL_TYPE_MENU,
		.type = V4L2_CTRL_TYPE_MENU,
		.minimum = V4L2_MPEG_VIDEO_H264_LEVEL_1_0,
		.minimum = V4L2_MPEG_VIDEO_H264_LEVEL_1_0,
		.maximum = V4L2_MPEG_VIDEO_H264_LEVEL_UNKNOWN,
		.maximum = V4L2_MPEG_VIDEO_H264_LEVEL_6_2,
		.default_value = V4L2_MPEG_VIDEO_H264_LEVEL_UNKNOWN,
		.default_value = V4L2_MPEG_VIDEO_H264_LEVEL_6_2,
		.menu_skip_mask = ~(
		.menu_skip_mask = ~(
		(1 << V4L2_MPEG_VIDEO_H264_LEVEL_1_0) |
		(1 << V4L2_MPEG_VIDEO_H264_LEVEL_1_0) |
		(1 << V4L2_MPEG_VIDEO_H264_LEVEL_1B) |
		(1 << V4L2_MPEG_VIDEO_H264_LEVEL_1B) |
@@ -313,8 +313,7 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		(1 << V4L2_MPEG_VIDEO_H264_LEVEL_5_2) |
		(1 << V4L2_MPEG_VIDEO_H264_LEVEL_5_2) |
		(1 << V4L2_MPEG_VIDEO_H264_LEVEL_6_0) |
		(1 << V4L2_MPEG_VIDEO_H264_LEVEL_6_0) |
		(1 << V4L2_MPEG_VIDEO_H264_LEVEL_6_1) |
		(1 << V4L2_MPEG_VIDEO_H264_LEVEL_6_1) |
		(1 << V4L2_MPEG_VIDEO_H264_LEVEL_6_2) |
		(1 << V4L2_MPEG_VIDEO_H264_LEVEL_6_2)
		(1 << V4L2_MPEG_VIDEO_H264_LEVEL_UNKNOWN)
		),
		),
		.flags = V4L2_CTRL_FLAG_VOLATILE,
		.flags = V4L2_CTRL_FLAG_VOLATILE,
		.qmenu = NULL,
		.qmenu = NULL,
@@ -367,9 +366,9 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		.name = "HEVC Level",
		.name = "HEVC Level",
		.type = V4L2_CTRL_TYPE_MENU,
		.type = V4L2_CTRL_TYPE_MENU,
		.minimum = V4L2_MPEG_VIDEO_HEVC_LEVEL_1,
		.minimum = V4L2_MPEG_VIDEO_HEVC_LEVEL_1,
		.maximum = V4L2_MPEG_VIDEO_HEVC_LEVEL_UNKNOWN,
		.maximum = V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2,
		.default_value =
		.default_value =
			V4L2_MPEG_VIDEO_HEVC_LEVEL_UNKNOWN,
			V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2,
		.menu_skip_mask = ~(
		.menu_skip_mask = ~(
		(1 << V4L2_MPEG_VIDEO_HEVC_LEVEL_1) |
		(1 << V4L2_MPEG_VIDEO_HEVC_LEVEL_1) |
		(1 << V4L2_MPEG_VIDEO_HEVC_LEVEL_2) |
		(1 << V4L2_MPEG_VIDEO_HEVC_LEVEL_2) |
@@ -383,8 +382,7 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		(1 << V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2) |
		(1 << V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2) |
		(1 << V4L2_MPEG_VIDEO_HEVC_LEVEL_6) |
		(1 << V4L2_MPEG_VIDEO_HEVC_LEVEL_6) |
		(1 << V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1) |
		(1 << V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1) |
		(1 << V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2) |
		(1 << V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2)
		(1 << V4L2_MPEG_VIDEO_HEVC_LEVEL_UNKNOWN)
		),
		),
		.flags = V4L2_CTRL_FLAG_VOLATILE,
		.flags = V4L2_CTRL_FLAG_VOLATILE,
		.qmenu = NULL,
		.qmenu = NULL,
@@ -2000,6 +1998,12 @@ int msm_venc_set_profile_level(struct msm_vidc_inst *inst)
	}
	}
	hdev = inst->core->device;
	hdev = inst->core->device;


	if (!inst->profile) {
		dprintk(VIDC_ERR,
			"%s: skip as client did not set profile\n",
			__func__);
		return -EINVAL;
	}
	profile_level.profile = inst->profile;
	profile_level.profile = inst->profile;
	profile_level.level = inst->level;
	profile_level.level = inst->level;


@@ -3352,7 +3356,6 @@ int msm_venc_set_8x8_transform(struct msm_vidc_inst *inst)
	int rc = 0;
	int rc = 0;
	struct hfi_device *hdev;
	struct hfi_device *hdev;
	struct v4l2_ctrl *ctrl = NULL;
	struct v4l2_ctrl *ctrl = NULL;
	struct v4l2_ctrl *profile = NULL;
	struct hfi_enable enable;
	struct hfi_enable enable;


	if (!inst || !inst->core) {
	if (!inst || !inst->core) {
@@ -3361,13 +3364,14 @@ int msm_venc_set_8x8_transform(struct msm_vidc_inst *inst)
	}
	}
	hdev = inst->core->device;
	hdev = inst->core->device;


	if (inst->fmts[CAPTURE_PORT].fourcc != V4L2_PIX_FMT_H264)
	if (inst->fmts[CAPTURE_PORT].fourcc != V4L2_PIX_FMT_H264 &&
		return 0;
		inst->profile != HFI_H264_PROFILE_HIGH &&

		inst->profile != HFI_H264_PROFILE_CONSTRAINED_HIGH) {
	profile = get_ctrl(inst, V4L2_CID_MPEG_VIDEO_H264_PROFILE);
		dprintk(VIDC_DBG, "%s: skip due to %#x %#x\n",
	if (!(profile->val == V4L2_MPEG_VIDEO_H264_PROFILE_HIGH ||
			__func__, inst->fmts[CAPTURE_PORT].fourcc,
		profile->val == V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH))
			inst->profile);
		return 0;
		return 0;
	}


	ctrl = get_ctrl(inst, V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM);
	ctrl = get_ctrl(inst, V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM);
	enable.enable = !!ctrl->val;
	enable.enable = !!ctrl->val;
+0 −2
Original line number Original line Diff line number Diff line
@@ -1535,8 +1535,6 @@ void *msm_vidc_open(int core_id, int session_type)
	inst->bit_depth = MSM_VIDC_BIT_DEPTH_8;
	inst->bit_depth = MSM_VIDC_BIT_DEPTH_8;
	inst->pic_struct = MSM_VIDC_PIC_STRUCT_PROGRESSIVE;
	inst->pic_struct = MSM_VIDC_PIC_STRUCT_PROGRESSIVE;
	inst->colour_space = MSM_VIDC_BT601_6_525;
	inst->colour_space = MSM_VIDC_BT601_6_525;
	inst->profile = V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE;
	inst->level = V4L2_MPEG_VIDEO_H264_LEVEL_UNKNOWN;
	inst->smem_ops = &msm_vidc_smem_ops;
	inst->smem_ops = &msm_vidc_smem_ops;
	inst->rc_type = RATE_CONTROL_OFF;
	inst->rc_type = RATE_CONTROL_OFF;
	inst->dpb_extra_binfo = NULL;
	inst->dpb_extra_binfo = NULL;