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

Commit 0d9c4879 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 for VIDC_VIDEO_RATE_CONTROL_TIMESTAMP_MODE"

parents ce42a34f 822c20ed
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -1698,6 +1698,16 @@ int create_pkt_cmd_session_set_property(
		pkt->size += sizeof(u32) * 2;
		break;
	}
	case HAL_PARAM_VENC_DISABLE_RC_TIMESTAMP:
	{
		struct hfi_enable *hfi;
		pkt->rg_property_data[0] =
			HFI_PROPERTY_PARAM_VENC_DISABLE_RC_TIMESTAMP;
		hfi = (struct hfi_enable *)&pkt->rg_property_data[1];
		hfi->enable = ((struct hfi_enable *)pdata)->enable;
		pkt->size += sizeof(u32) * 2;
		break;
	}
	/* FOLLOWING PROPERTIES ARE NOT IMPLEMENTED IN CORE YET */
	case HAL_CONFIG_BUFFER_REQUIREMENTS:
	case HAL_CONFIG_PRIORITY:
+22 −0
Original line number Diff line number Diff line
@@ -138,6 +138,11 @@ static const char *const intra_refresh_modes[] = {
	"Random"
};

static const char *const timestamp_mode[] = {
	"Honor",
	"Ignore",
};

enum msm_venc_ctrl_cluster {
	MSM_VENC_CTRL_CLUSTER_QP = 1 << 0,
	MSM_VENC_CTRL_CLUSTER_INTRA_PERIOD = 1 << 1,
@@ -870,6 +875,17 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		.qmenu = NULL,
		.cluster = 0,
	},
	{
		.id = V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_TIMESTAMP_MODE,
		.name = "Encoder Timestamp Mode",
		.type = V4L2_CTRL_TYPE_MENU,
		.default_value =
			V4L2_MPEG_VIDC_VIDEO_RATE_CONTROL_TIMESTAMP_MODE_HONOR,
		.menu_skip_mask = ~(
		(1 << V4L2_MPEG_VIDC_VIDEO_RATE_CONTROL_TIMESTAMP_MODE_HONOR) |
		(1 << V4L2_MPEG_VIDC_VIDEO_RATE_CONTROL_TIMESTAMP_MODE_IGNORE)),
		.qmenu = timestamp_mode,
	},
};

#define NUM_CTRLS ARRAY_SIZE(msm_venc_ctrls)
@@ -2203,6 +2219,12 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl)
		}
		pdata = &hier_p_layers;
		break;
	case V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_TIMESTAMP_MODE:
		property_id = HAL_PARAM_VENC_DISABLE_RC_TIMESTAMP;
		enable.enable = (ctrl->val ==
		V4L2_MPEG_VIDC_VIDEO_RATE_CONTROL_TIMESTAMP_MODE_IGNORE);
		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
@@ -196,6 +196,7 @@ enum hal_property {
	HAL_CONFIG_VENC_USELTRFRAME,
	HAL_CONFIG_VENC_LTRPERIOD,
	HAL_PARAM_VENC_HIER_P_NUM_FRAMES,
	HAL_PARAM_VENC_DISABLE_RC_TIMESTAMP,
};

enum hal_domain {
+2 −0
Original line number Diff line number Diff line
@@ -325,6 +325,8 @@ struct hfi_buffer_info {
	(HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x021)
#define HFI_PROPERTY_PARAM_VENC_PRESERVE_TEXT_QUALITY \
	(HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x023)
#define HFI_PROPERTY_PARAM_VENC_DISABLE_RC_TIMESTAMP \
	(HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x027)


#define HFI_PROPERTY_CONFIG_VENC_COMMON_START				\
+7 −0
Original line number Diff line number Diff line
@@ -871,6 +871,13 @@ enum v4l2_mpeg_vidc_video_ltrmode {
#define V4L2_CID_MPEG_VIDC_VIDEO_HIER_P_NUM_LAYERS \
		(V4L2_CID_MPEG_MSM_VIDC_BASE + 51)

#define V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_TIMESTAMP_MODE \
	(V4L2_CID_MPEG_MSM_VIDC_BASE + 52)
enum v4l2_mpeg_vidc_video_rate_control_timestamp_mode {
	V4L2_MPEG_VIDC_VIDEO_RATE_CONTROL_TIMESTAMP_MODE_HONOR = 0,
	V4L2_MPEG_VIDC_VIDEO_RATE_CONTROL_TIMESTAMP_MODE_IGNORE = 1,
};

/*  Camera class control IDs */

#define V4L2_CID_CAMERA_CLASS_BASE 	(V4L2_CTRL_CLASS_CAMERA | 0x900)