video: driver: define slice delivery as boolean control.

Make slice delivery a boolean control instead of menu.

Change-Id: Iedf8e0df882d61e82661c7f557473d3f7b49215a
Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
This commit is contained in:
Dikshita Agarwal
2022-08-02 12:11:08 +05:30
parent 7d1fbd07cf
commit f1a32f5a86
4 changed files with 6 additions and 59 deletions

View File

@@ -1927,24 +1927,16 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
CAP_FLAG_BITMASK},
{DELIVERY_MODE, ENC, HEVC,
V4L2_MPEG_VIDC_HEVC_ENCODE_DELIVERY_MODE_FRAME_BASED,
V4L2_MPEG_VIDC_HEVC_ENCODE_DELIVERY_MODE_SLICE_BASED,
BIT(V4L2_MPEG_VIDC_HEVC_ENCODE_DELIVERY_MODE_FRAME_BASED) |
BIT(V4L2_MPEG_VIDC_HEVC_ENCODE_DELIVERY_MODE_SLICE_BASED),
V4L2_MPEG_VIDC_HEVC_ENCODE_DELIVERY_MODE_FRAME_BASED,
0, 1, 1, 0,
V4L2_CID_MPEG_VIDC_HEVC_ENCODE_DELIVERY_MODE,
HFI_PROP_ENABLE_SLICE_DELIVERY,
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU},
CAP_FLAG_OUTPUT_PORT},
{DELIVERY_MODE, ENC, H264,
V4L2_MPEG_VIDC_H264_ENCODE_DELIVERY_MODE_FRAME_BASED,
V4L2_MPEG_VIDC_H264_ENCODE_DELIVERY_MODE_SLICE_BASED,
BIT(V4L2_MPEG_VIDC_H264_ENCODE_DELIVERY_MODE_FRAME_BASED) |
BIT(V4L2_MPEG_VIDC_H264_ENCODE_DELIVERY_MODE_SLICE_BASED),
V4L2_MPEG_VIDC_H264_ENCODE_DELIVERY_MODE_FRAME_BASED,
0, 1, 1, 0,
V4L2_CID_MPEG_VIDC_H264_ENCODE_DELIVERY_MODE,
HFI_PROP_ENABLE_SLICE_DELIVERY,
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU},
CAP_FLAG_OUTPUT_PORT},
};
static struct msm_platform_inst_cap_dependency instance_cap_dependency_data_kalama[] = {

View File

@@ -732,10 +732,7 @@ static int msm_buffer_delivery_mode_based_min_count_iris3(struct msm_vidc_inst *
delivery_mode = inst->capabilities->cap[DELIVERY_MODE].value;
if (slice_mode != V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB ||
(inst->codec == MSM_VIDC_H264 &&
delivery_mode != V4L2_MPEG_VIDC_H264_ENCODE_DELIVERY_MODE_SLICE_BASED) ||
(inst->codec == MSM_VIDC_HEVC &&
delivery_mode != V4L2_MPEG_VIDC_HEVC_ENCODE_DELIVERY_MODE_SLICE_BASED))
(!delivery_mode))
return count;
f = &inst->fmts[OUTPUT_PORT];

View File

@@ -344,12 +344,7 @@ static inline bool is_enc_slice_delivery_mode(struct msm_vidc_inst *inst)
return (inst->capabilities->cap[SLICE_MODE].value ==
V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB &&
((inst->codec == MSM_VIDC_H264 &&
inst->capabilities->cap[DELIVERY_MODE].value ==
V4L2_MPEG_VIDC_H264_ENCODE_DELIVERY_MODE_SLICE_BASED) ||
(inst->codec == MSM_VIDC_HEVC &&
inst->capabilities->cap[DELIVERY_MODE].value ==
V4L2_MPEG_VIDC_HEVC_ENCODE_DELIVERY_MODE_SLICE_BASED)));
inst->capabilities->cap[DELIVERY_MODE].value);
}
static inline bool is_state(struct msm_vidc_inst *inst, enum msm_vidc_state state)

View File

@@ -152,12 +152,6 @@ static const char *const mpeg_video_vidc_ir_type[] = {
NULL,
};
static const char *const mpeg_vidc_delivery_modes[] = {
"Frame Based Delivery Mode",
"Slice Based Delivery Mode",
NULL,
};
u32 msm_vidc_get_port_info(struct msm_vidc_inst *inst,
enum msm_vidc_inst_capability_type cap_id)
{
@@ -201,10 +195,6 @@ static const char * const * msm_vidc_get_qmenu_type(
return av1_tier;
case V4L2_CID_MPEG_VIDEO_VIDC_INTRA_REFRESH_TYPE:
return mpeg_video_vidc_ir_type;
case V4L2_CID_MPEG_VIDC_HEVC_ENCODE_DELIVERY_MODE:
return mpeg_vidc_delivery_modes;
case V4L2_CID_MPEG_VIDC_H264_ENCODE_DELIVERY_MODE:
return mpeg_vidc_delivery_modes;
default:
i_vpr_e(inst, "%s: No available qmenu for ctrl %#x\n",
__func__, control_id);
@@ -4301,33 +4291,6 @@ int msm_vidc_v4l2_menu_to_hfi(struct msm_vidc_inst *inst,
goto set_default;
}
return 0;
case DELIVERY_MODE:
if (inst->codec == MSM_VIDC_H264) {
switch (capability->cap[cap_id].value) {
case V4L2_MPEG_VIDC_H264_ENCODE_DELIVERY_MODE_FRAME_BASED:
*value = 0;
break;
case V4L2_MPEG_VIDC_H264_ENCODE_DELIVERY_MODE_SLICE_BASED:
*value = 1;
break;
default:
*value = 0;
goto set_default;
}
} else if (inst->codec == MSM_VIDC_HEVC) {
switch (capability->cap[cap_id].value) {
case V4L2_MPEG_VIDC_HEVC_ENCODE_DELIVERY_MODE_FRAME_BASED:
*value = 0;
break;
case V4L2_MPEG_VIDC_HEVC_ENCODE_DELIVERY_MODE_SLICE_BASED:
*value = 1;
break;
default:
*value = 0;
goto set_default;
}
}
return 0;
default:
i_vpr_e(inst,
"%s: mapping not specified for ctrl_id: %#x\n",