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

Commit 30b0c37a 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 support to set low latency property to venus"

parents 1cb6c791 cd10559b
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -2281,6 +2281,17 @@ static int create_3x_pkt_cmd_session_set_property(
		pkt->size += sizeof(u32) * 2;
		break;
	}
	case HAL_PARAM_VENC_LOW_LATENCY:
	{
		struct hfi_enable *hfi;

		pkt->rg_property_data[0] =
			HFI_PROPERTY_PARAM_VENC_LOW_LATENCY_MODE;
		hfi = (struct hfi_enable *) &pkt->rg_property_data[1];
		hfi->enable = ((struct hal_enable *) pdata)->enable;
		pkt->size += sizeof(u32) * 2;
		break;
	}
	default:
		rc = create_pkt_cmd_session_set_property(pkt,
				session, ptype, pdata);
+20 −1
Original line number Diff line number Diff line
@@ -1202,7 +1202,15 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		.default_value = V4L2_CID_MPEG_VIDC_VIDEO_VPE_CSC_DISABLE,
		.step = 1,
	},

	{
		.id = V4L2_CID_MPEG_VIDC_VIDEO_LOWLATENCY_MODE,
		.name = "Low Latency Mode",
		.type = V4L2_CTRL_TYPE_BOOLEAN,
		.minimum = V4L2_CID_MPEG_VIDC_VIDEO_LOWLATENCY_DISABLE,
		.maximum = V4L2_CID_MPEG_VIDC_VIDEO_LOWLATENCY_ENABLE,
		.default_value = V4L2_CID_MPEG_VIDC_VIDEO_LOWLATENCY_DISABLE,
		.step = 1,
	},
};

#define NUM_CTRLS ARRAY_SIZE(msm_venc_ctrls)
@@ -3055,6 +3063,17 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl)
				dprintk(VIDC_ERR, "fail to set csc: %d\n", rc);
		}
		break;
	case V4L2_CID_MPEG_VIDC_VIDEO_LOWLATENCY_MODE:
	{
		property_id = HAL_PARAM_VENC_LOW_LATENCY;
		if (ctrl->val ==
			V4L2_CID_MPEG_VIDC_VIDEO_LOWLATENCY_ENABLE)
			enable.enable = 1;
		else
			enable.enable = 0;
		pdata = &enable;
		break;
	}
	default:
		dprintk(VIDC_ERR, "Unsupported index: %x\n", ctrl->id);
		rc = -ENOTSUPP;
+1 −0
Original line number Diff line number Diff line
@@ -230,6 +230,7 @@ enum hal_property {
	HAL_CONFIG_VDEC_ENTROPY,
	HAL_PARAM_VENC_BITRATE_TYPE,
	HAL_PARAM_VENC_H264_PIC_ORDER_CNT,
	HAL_PARAM_VENC_LOW_LATENCY,
};

enum hal_domain {
+2 −0
Original line number Diff line number Diff line
@@ -357,6 +357,8 @@ struct hfi_buffer_info {
	(HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x020)
#define HFI_PROPERTY_PARAM_VENC_H264_VUI_BITSTREAM_RESTRC \
	(HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x021)
#define HFI_PROPERTY_PARAM_VENC_LOW_LATENCY_MODE	\
	(HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x022)
#define HFI_PROPERTY_PARAM_VENC_PRESERVE_TEXT_QUALITY \
	(HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x023)
#define HFI_PROPERTY_PARAM_VENC_HIER_P_MAX_NUM_ENH_LAYER	\
+10 −1
Original line number Diff line number Diff line
@@ -1127,6 +1127,15 @@ enum v4l2_cid_mpeg_vidc_video_vpe_csc_type_enable {
	V4L2_CID_MPEG_VIDC_VIDEO_VPE_CSC_ENABLE   = 1
};

#define V4L2_CID_MPEG_VIDC_VIDEO_LOWLATENCY_MODE \
		(V4L2_CID_MPEG_MSM_VIDC_BASE + 88)

enum v4l2_mpeg_vidc_video_lowlatency_mode {
	V4L2_CID_MPEG_VIDC_VIDEO_LOWLATENCY_DISABLE     = 0,
	V4L2_CID_MPEG_VIDC_VIDEO_LOWLATENCY_ENABLE      = 1,
};


/*  Camera class control IDs */

#define V4L2_CID_CAMERA_CLASS_BASE 	(V4L2_CTRL_CLASS_CAMERA | 0x900)