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

Commit 4744cbe0 authored by Qiwei Liu's avatar Qiwei Liu
Browse files

msm: vidc: support setting bitrate savings



Add support to enable/disable encoder bitrate savings.

Change-Id: I2ea5c6a1aefc1554132e5e3167786065f63e231a
Signed-off-by: default avatarQiwei Liu <qiweil@codeaurora.org>
parent 75ec558f
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -1357,6 +1357,14 @@ int create_pkt_cmd_session_set_property(
		pkt->size += sizeof(u32);
		break;
	}
	case HAL_PARAM_VENC_BITRATE_SAVINGS:
	{
		create_pkt_enable(pkt->rg_property_data,
			HFI_PROPERTY_PARAM_VENC_BITRATE_SAVINGS,
			((struct hal_enable *)pdata)->enable);
		pkt->size += sizeof(u32);
		break;
	}
	case HAL_PARAM_VENC_H264_DEBLOCK_CONTROL:
	{
		struct hfi_h264_db_control *hfi;
+16 −0
Original line number Diff line number Diff line
@@ -1153,6 +1153,15 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		),
		.qmenu = mpeg_video_stream_format,
	},
	{
		.id = V4L2_CID_MPEG_VIDC_VENC_BITRATE_SAVINGS,
		.name = "Enable/Disable bitrate savings",
		.type = V4L2_CTRL_TYPE_BOOLEAN,
		.minimum = V4L2_MPEG_MSM_VIDC_DISABLE,
		.maximum = V4L2_MPEG_MSM_VIDC_ENABLE,
		.default_value = V4L2_MPEG_MSM_VIDC_ENABLE,
		.step = 1,
	},
};

#define NUM_CTRLS ARRAY_SIZE(msm_venc_ctrls)
@@ -2194,6 +2203,13 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl)
		pdata = &stream_format;
		break;
	}
	case V4L2_CID_MPEG_VIDC_VENC_BITRATE_SAVINGS:
	{
		property_id = HAL_PARAM_VENC_BITRATE_SAVINGS;
		enable.enable = ctrl->val;
		pdata = &enable;
		break;
	}
	case V4L2_CID_MPEG_VIDC_VIDEO_LTRCOUNT:
	case V4L2_CID_MPEG_VIDC_VENC_PARAM_SAR_WIDTH:
	case V4L2_CID_MPEG_VIDC_VENC_PARAM_SAR_HEIGHT:
+1 −0
Original line number Diff line number Diff line
@@ -220,6 +220,7 @@ enum hal_property {
	HAL_CONFIG_VENC_VBV_HRD_BUF_SIZE,
	HAL_CONFIG_HEIC_FRAME_QUALITY,
	HAL_CONFIG_HEIC_GRID_ENABLE,
	HAL_PARAM_VENC_BITRATE_SAVINGS,
};

enum hal_domain {
+2 −0
Original line number Diff line number Diff line
@@ -334,6 +334,8 @@ struct hfi_buffer_info {
	(HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x036)
#define  HFI_PROPERTY_PARAM_VENC_ADAPTIVE_B \
	(HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x037)
#define  HFI_PROPERTY_PARAM_VENC_BITRATE_SAVINGS \
	(HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x038)

#define HFI_PROPERTY_CONFIG_VENC_COMMON_START				\
	(HFI_DOMAIN_BASE_VENC + HFI_ARCH_COMMON_OFFSET + 0x6000)
+2 −0
Original line number Diff line number Diff line
@@ -1050,6 +1050,8 @@ enum v4l2_mpeg_vidc_video_flip {
	(V4L2_CID_MPEG_MSM_VIDC_BASE + 129)
#define V4L2_CID_MPEG_VIDC_IMG_GRID_ENABLE \
	(V4L2_CID_MPEG_MSM_VIDC_BASE + 130)
#define V4L2_CID_MPEG_VIDC_VENC_BITRATE_SAVINGS \
	(V4L2_CID_MPEG_MSM_VIDC_BASE + 131)

/*  Camera class control IDs */