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:
@@ -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[] = {
|
||||
|
@@ -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];
|
||||
|
@@ -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)
|
||||
|
@@ -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",
|
||||
|
Reference in New Issue
Block a user