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

Commit 0518b702 authored by Vaibhav Deshu Venkatesh's avatar Vaibhav Deshu Venkatesh
Browse files

msm: vidc: Add support for Adaptive B



Add support to enable/disable adaptive B frames.
It is enabled by default by firmware.

CRs-Fixed: 2234389
Change-Id: Ia1cf6338430448151dd6f6f1cd93a9a967944cf2
Signed-off-by: default avatarVaibhav Deshu Venkatesh <vdeshuve@codeaurora.org>
parent a45def9b
Loading
Loading
Loading
Loading
+8 −0
Original line number Original line Diff line number Diff line
@@ -1377,6 +1377,14 @@ int create_pkt_cmd_session_set_property(
		pkt->size += sizeof(u32);
		pkt->size += sizeof(u32);
		break;
		break;
	}
	}
	case HAL_PARAM_VENC_ADAPTIVE_B:
	{
		create_pkt_enable(pkt->rg_property_data,
			HFI_PROPERTY_PARAM_VENC_ADAPTIVE_B,
			((struct hal_enable *)pdata)->enable);
		pkt->size += sizeof(struct hfi_enable);
		break;
	}
	case HAL_PARAM_VDEC_CONCEAL_COLOR:
	case HAL_PARAM_VDEC_CONCEAL_COLOR:
	{
	{
		struct hfi_conceal_color *hfi;
		struct hfi_conceal_color *hfi;
+14 −0
Original line number Original line Diff line number Diff line
@@ -291,6 +291,15 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		.menu_skip_mask = 0,
		.menu_skip_mask = 0,
		.qmenu = NULL,
		.qmenu = NULL,
	},
	},
	{
		.id = V4L2_CID_MPEG_VIDC_VIDEO_ADAPTIVE_B,
		.name = "Adaptive B frames",
		.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,
	},
	{
	{
		.id = V4L2_CID_MIN_BUFFERS_FOR_CAPTURE,
		.id = V4L2_CID_MIN_BUFFERS_FOR_CAPTURE,
		.name = "CAPTURE Count",
		.name = "CAPTURE Count",
@@ -1307,6 +1316,11 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl)
		pdata = &intra_period;
		pdata = &intra_period;
		break;
		break;
	}
	}
	case V4L2_CID_MPEG_VIDC_VIDEO_ADAPTIVE_B:
		property_id = HAL_PARAM_VENC_ADAPTIVE_B;
		enable.enable = ctrl->val;
		pdata = &enable;
		break;
	case V4L2_CID_MPEG_VIDC_VIDEO_REQUEST_IFRAME:
	case V4L2_CID_MPEG_VIDC_VIDEO_REQUEST_IFRAME:
		property_id = HAL_CONFIG_VENC_REQUEST_IFRAME;
		property_id = HAL_CONFIG_VENC_REQUEST_IFRAME;
		request_iframe.enable = true;
		request_iframe.enable = true;
+1 −0
Original line number Original line Diff line number Diff line
@@ -145,6 +145,7 @@ enum hal_property {
	HAL_PARAM_VENC_SESSION_QP_RANGE,
	HAL_PARAM_VENC_SESSION_QP_RANGE,
	HAL_CONFIG_VENC_INTRA_PERIOD,
	HAL_CONFIG_VENC_INTRA_PERIOD,
	HAL_CONFIG_VENC_IDR_PERIOD,
	HAL_CONFIG_VENC_IDR_PERIOD,
	HAL_PARAM_VENC_ADAPTIVE_B,
	HAL_PARAM_VPE_ROTATION,
	HAL_PARAM_VPE_ROTATION,
	HAL_PARAM_VENC_INTRA_REFRESH,
	HAL_PARAM_VENC_INTRA_REFRESH,
	HAL_PARAM_VENC_MULTI_SLICE_CONTROL,
	HAL_PARAM_VENC_MULTI_SLICE_CONTROL,
+2 −0
Original line number Original line Diff line number Diff line
@@ -327,6 +327,8 @@ struct hfi_buffer_info {
	(HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x035)
	(HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x035)
#define  HFI_PROPERTY_PARAM_VENC_HDR10_PQ_SEI			\
#define  HFI_PROPERTY_PARAM_VENC_HDR10_PQ_SEI			\
	(HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x036)
	(HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x036)
#define  HFI_PROPERTY_PARAM_VENC_ADAPTIVE_B \
	(HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x037)


#define HFI_PROPERTY_CONFIG_VENC_COMMON_START				\
#define HFI_PROPERTY_CONFIG_VENC_COMMON_START				\
	(HFI_DOMAIN_BASE_VENC + HFI_ARCH_COMMON_OFFSET + 0x6000)
	(HFI_DOMAIN_BASE_VENC + HFI_ARCH_COMMON_OFFSET + 0x6000)
+3 −0
Original line number Original line Diff line number Diff line
@@ -930,6 +930,9 @@ enum v4l2_mpeg_vidc_video_vp9_level {
	V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_51 = 10,
	V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_51 = 10,
};
};


#define V4L2_CID_MPEG_VIDC_VIDEO_ADAPTIVE_B \
		(V4L2_CID_MPEG_MSM_VIDC_BASE + 98)

#define V4L2_CID_MPEG_VIDC_VIDEO_I_FRAME_QP \
#define V4L2_CID_MPEG_VIDC_VIDEO_I_FRAME_QP \
		(V4L2_CID_MPEG_MSM_VIDC_BASE + 99)
		(V4L2_CID_MPEG_MSM_VIDC_BASE + 99)
#define V4L2_CID_MPEG_VIDC_VIDEO_P_FRAME_QP \
#define V4L2_CID_MPEG_VIDC_VIDEO_P_FRAME_QP \