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

Commit 5d2a39bc authored by Vaibhav Deshu Venkatesh's avatar Vaibhav Deshu Venkatesh
Browse files

msm: vidc: Set properties in start streaming



Cache all properties in driver and set them to firmware
in start streaming.

CRs-Fixed: 2344373
Change-Id: I5980f63a6f01260acd38bccc86574e9570b50094
Signed-off-by: default avatarMaheshwar Ajja <majja@codeaurora.org>
Signed-off-by: default avatarVaibhav Deshu Venkatesh <vdeshuve@codeaurora.org>
parent cb30afd5
Loading
Loading
Loading
Loading
+18 −6
Original line number Diff line number Diff line
@@ -1425,7 +1425,6 @@ int create_pkt_cmd_session_set_property(
	case HAL_CONFIG_VENC_INTRA_PERIOD:
	{
		struct hfi_intra_period *hfi;
		struct hfi_idr_period *hfi_idr_period;
		u32 *prop_type;

		pkt->rg_property_data[0] =
@@ -1447,11 +1446,24 @@ int create_pkt_cmd_session_set_property(
			pkt->size += sizeof(u32) + sizeof(struct hfi_enable);
			prop_type += sizeof(u32) + sizeof(struct hfi_enable);
		}
		*prop_type =  HFI_PROPERTY_CONFIG_VENC_IDR_PERIOD;
		hfi_idr_period = (struct hfi_idr_period *)(prop_type + 1);
		hfi_idr_period->idr_period = IDR_PERIOD;
		pkt->num_properties += 1;
		pkt->size += sizeof(struct hfi_idr_period) + sizeof(u32);
		break;
	}
	case HAL_CONFIG_VENC_IDR_PERIOD:
	{
		struct hfi_idr_period *hfi;

		pkt->rg_property_data[0] = HFI_PROPERTY_CONFIG_VENC_IDR_PERIOD;
		hfi = (struct hfi_idr_period *) &pkt->rg_property_data[1];
		hfi->idr_period = ((struct hfi_idr_period *) pdata)->idr_period;
		pkt->size += sizeof(u32);
		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:
+1 −1
Original line number Diff line number Diff line
@@ -213,7 +213,7 @@ static int msm_v4l2_s_parm(struct file *file, void *fh,
{
	struct msm_vidc_inst *vidc_inst = get_vidc_inst(file, fh);

	return msm_vidc_comm_s_parm(vidc_inst, a);
	return msm_vidc_s_parm(vidc_inst, a);
}

static int msm_v4l2_g_parm(struct file *file, void *fh,
+746 −457

File changed.

Preview size limit exceeded, changes collapsed.

+11 −4
Original line number Diff line number Diff line
@@ -12,8 +12,15 @@
int msm_vdec_inst_init(struct msm_vidc_inst *inst);
int msm_vdec_ctrl_init(struct msm_vidc_inst *inst,
	const struct v4l2_ctrl_ops *ctrl_ops);
int msm_vdec_enum_fmt(void *instance, struct v4l2_fmtdesc *f);
int msm_vdec_s_fmt(void *instance, struct v4l2_format *f);
int msm_vdec_s_ctrl(void *instance, struct v4l2_ctrl *ctrl);
int msm_vdec_g_ctrl(void *instance, struct v4l2_ctrl *ctrl);
int msm_vdec_enum_fmt(struct msm_vidc_inst *inst,
		struct v4l2_fmtdesc *f);
int msm_vdec_s_fmt(struct msm_vidc_inst *inst,
		struct v4l2_format *f);
int msm_vdec_s_ctrl(struct msm_vidc_inst *inst,
		struct v4l2_ctrl *ctrl);
int msm_vdec_g_ctrl(struct msm_vidc_inst *inst,
		struct v4l2_ctrl *ctrl);
int msm_vdec_s_parm(struct msm_vidc_inst *inst,
		struct v4l2_streamparm *a);
int msm_vdec_set_properties(struct msm_vidc_inst *inst);
#endif
+2336 −1145

File changed.

Preview size limit exceeded, changes collapsed.

Loading