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},
|
CAP_FLAG_BITMASK},
|
||||||
|
|
||||||
{DELIVERY_MODE, ENC, HEVC,
|
{DELIVERY_MODE, ENC, HEVC,
|
||||||
V4L2_MPEG_VIDC_HEVC_ENCODE_DELIVERY_MODE_FRAME_BASED,
|
0, 1, 1, 0,
|
||||||
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,
|
|
||||||
V4L2_CID_MPEG_VIDC_HEVC_ENCODE_DELIVERY_MODE,
|
V4L2_CID_MPEG_VIDC_HEVC_ENCODE_DELIVERY_MODE,
|
||||||
HFI_PROP_ENABLE_SLICE_DELIVERY,
|
HFI_PROP_ENABLE_SLICE_DELIVERY,
|
||||||
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU},
|
CAP_FLAG_OUTPUT_PORT},
|
||||||
|
|
||||||
{DELIVERY_MODE, ENC, H264,
|
{DELIVERY_MODE, ENC, H264,
|
||||||
V4L2_MPEG_VIDC_H264_ENCODE_DELIVERY_MODE_FRAME_BASED,
|
0, 1, 1, 0,
|
||||||
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,
|
|
||||||
V4L2_CID_MPEG_VIDC_H264_ENCODE_DELIVERY_MODE,
|
V4L2_CID_MPEG_VIDC_H264_ENCODE_DELIVERY_MODE,
|
||||||
HFI_PROP_ENABLE_SLICE_DELIVERY,
|
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[] = {
|
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;
|
delivery_mode = inst->capabilities->cap[DELIVERY_MODE].value;
|
||||||
|
|
||||||
if (slice_mode != V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB ||
|
if (slice_mode != V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB ||
|
||||||
(inst->codec == MSM_VIDC_H264 &&
|
(!delivery_mode))
|
||||||
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))
|
|
||||||
return count;
|
return count;
|
||||||
|
|
||||||
f = &inst->fmts[OUTPUT_PORT];
|
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 ==
|
return (inst->capabilities->cap[SLICE_MODE].value ==
|
||||||
V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB &&
|
V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB &&
|
||||||
((inst->codec == MSM_VIDC_H264 &&
|
inst->capabilities->cap[DELIVERY_MODE].value);
|
||||||
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)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool is_state(struct msm_vidc_inst *inst, enum msm_vidc_state state)
|
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,
|
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,
|
u32 msm_vidc_get_port_info(struct msm_vidc_inst *inst,
|
||||||
enum msm_vidc_inst_capability_type cap_id)
|
enum msm_vidc_inst_capability_type cap_id)
|
||||||
{
|
{
|
||||||
@@ -201,10 +195,6 @@ static const char * const * msm_vidc_get_qmenu_type(
|
|||||||
return av1_tier;
|
return av1_tier;
|
||||||
case V4L2_CID_MPEG_VIDEO_VIDC_INTRA_REFRESH_TYPE:
|
case V4L2_CID_MPEG_VIDEO_VIDC_INTRA_REFRESH_TYPE:
|
||||||
return mpeg_video_vidc_ir_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:
|
default:
|
||||||
i_vpr_e(inst, "%s: No available qmenu for ctrl %#x\n",
|
i_vpr_e(inst, "%s: No available qmenu for ctrl %#x\n",
|
||||||
__func__, control_id);
|
__func__, control_id);
|
||||||
@@ -4301,33 +4291,6 @@ int msm_vidc_v4l2_menu_to_hfi(struct msm_vidc_inst *inst,
|
|||||||
goto set_default;
|
goto set_default;
|
||||||
}
|
}
|
||||||
return 0;
|
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:
|
default:
|
||||||
i_vpr_e(inst,
|
i_vpr_e(inst,
|
||||||
"%s: mapping not specified for ctrl_id: %#x\n",
|
"%s: mapping not specified for ctrl_id: %#x\n",
|
||||||
|
Reference in New Issue
Block a user