diff --git a/driver/platform/kalama/src/msm_vidc_kalama.c b/driver/platform/kalama/src/msm_vidc_kalama.c index c1c536c36d..9809a2f297 100644 --- a/driver/platform/kalama/src/msm_vidc_kalama.c +++ b/driver/platform/kalama/src/msm_vidc_kalama.c @@ -1412,7 +1412,8 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE, 0, CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, - {BITRATE_MODE, ALL_INTRA}, {0}, + {BITRATE_MODE, ALL_INTRA}, + {STAGE}, msm_vidc_adjust_slice_count, msm_vidc_set_slice_count}, {SLICE_MAX_BYTES, ENC, H264|HEVC|HEIC, @@ -1553,7 +1554,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { 0, HFI_PROP_STAGE, CAP_FLAG_NONE, - {LOWLATENCY_MODE}, {0}, + {LOWLATENCY_MODE, SLICE_MODE}, {0}, NULL, msm_vidc_set_stage}, {PIPE, DEC|ENC, CODECS_ALL, diff --git a/driver/variant/iris3/src/msm_vidc_iris3.c b/driver/variant/iris3/src/msm_vidc_iris3.c index d7997b9dec..457a32b990 100644 --- a/driver/variant/iris3/src/msm_vidc_iris3.c +++ b/driver/variant/iris3/src/msm_vidc_iris3.c @@ -1029,6 +1029,10 @@ int msm_vidc_decide_work_mode_iris3(struct msm_vidc_inst* inst) (inst->capabilities->cap[LOWLATENCY_MODE].value)) { work_mode = MSM_VIDC_STAGE_1; } + if (inst->capabilities->cap[SLICE_MODE].value == + V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES) { + work_mode = MSM_VIDC_STAGE_1; + } if (inst->capabilities->cap[LOSSLESS].value) work_mode = MSM_VIDC_STAGE_2; diff --git a/driver/vidc/inc/msm_vidc_internal.h b/driver/vidc/inc/msm_vidc_internal.h index 0a39b7b34b..024997b957 100644 --- a/driver/vidc/inc/msm_vidc_internal.h +++ b/driver/vidc/inc/msm_vidc_internal.h @@ -498,6 +498,7 @@ enum msm_vidc_inst_capability_type { CONTENT_ADAPTIVE_CODING, BLUR_TYPES, REQUEST_PREPROCESS, + SLICE_MODE, /* place all intermittent(having both parent and child) enums before this line */ MIN_FRAME_QP, @@ -515,7 +516,6 @@ enum msm_vidc_inst_capability_type { LTR_COUNT, IR_PERIOD, BITRATE_BOOST, - SLICE_MODE, BLUR_RESOLUTION, OUTPUT_ORDER, INPUT_BUF_HOST_MAX_COUNT, diff --git a/driver/vidc/src/msm_vidc_driver.c b/driver/vidc/src/msm_vidc_driver.c index 574c2d1b46..52bca19420 100644 --- a/driver/vidc/src/msm_vidc_driver.c +++ b/driver/vidc/src/msm_vidc_driver.c @@ -195,6 +195,7 @@ static const struct msm_vidc_cap_name cap_name_arr[] = { {CONTENT_ADAPTIVE_CODING, "CONTENT_ADAPTIVE_CODING" }, {BLUR_TYPES, "BLUR_TYPES" }, {REQUEST_PREPROCESS, "REQUEST_PREPROCESS" }, + {SLICE_MODE, "SLICE_MODE" }, {MIN_FRAME_QP, "MIN_FRAME_QP" }, {MAX_FRAME_QP, "MAX_FRAME_QP" }, {I_FRAME_QP, "I_FRAME_QP" }, @@ -210,7 +211,6 @@ static const struct msm_vidc_cap_name cap_name_arr[] = { {LTR_COUNT, "LTR_COUNT" }, {IR_PERIOD, "IR_PERIOD" }, {BITRATE_BOOST, "BITRATE_BOOST" }, - {SLICE_MODE, "SLICE_MODE" }, {BLUR_RESOLUTION, "BLUR_RESOLUTION" }, {OUTPUT_ORDER, "OUTPUT_ORDER" }, {INPUT_BUF_HOST_MAX_COUNT, "INPUT_BUF_HOST_MAX_COUNT" },