From 65636fd2ad2c5fa3adaf0f33e68f51b200ba5d06 Mon Sep 17 00:00:00 2001 From: Darshana Patil Date: Fri, 28 May 2021 12:52:22 -0700 Subject: [PATCH] Revert "video: driver: always caliberate gop size" This reverts commit b35579ad54a33d0dbde55579f9442064a7e0c883. Change-Id: I5ba0b244f53068ae6f0d3225b278e1ddafc360c5 Signed-off-by: Darshana Patil --- driver/platform/waipio/src/msm_vidc_waipio.c | 9 ++++++--- driver/vidc/src/msm_vidc_control.c | 14 ++++++++++++-- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/driver/platform/waipio/src/msm_vidc_waipio.c b/driver/platform/waipio/src/msm_vidc_waipio.c index 59caab05ea..c168aeded7 100644 --- a/driver/platform/waipio/src/msm_vidc_waipio.c +++ b/driver/platform/waipio/src/msm_vidc_waipio.c @@ -744,7 +744,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { HFI_PROP_LAYER_COUNT, CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED, - {BITRATE_MODE}, + {BITRATE_MODE, META_EVA_STATS}, {GOP_SIZE, B_FRAME, BIT_RATE}, msm_vidc_adjust_layer_count, msm_vidc_set_layer_count_and_type}, @@ -754,7 +754,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { HFI_PROP_LAYER_COUNT, CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED, - {BITRATE_MODE}, + {BITRATE_MODE, META_EVA_STATS}, {GOP_SIZE, B_FRAME, BIT_RATE}, msm_vidc_adjust_layer_count, msm_vidc_set_layer_count_and_type}, @@ -1330,7 +1330,10 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE, 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDC_METADATA_EVA_STATS, - HFI_PROP_EVA_STAT_INFO}, + HFI_PROP_EVA_STAT_INFO, + CAP_FLAG_ROOT, + {0}, + {ENH_LAYER_COUNT}}, {META_BUF_TAG, DEC | ENC, CODECS_ALL, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE, diff --git a/driver/vidc/src/msm_vidc_control.c b/driver/vidc/src/msm_vidc_control.c index 435923e8fd..a36de94ad2 100644 --- a/driver/vidc/src/msm_vidc_control.c +++ b/driver/vidc/src/msm_vidc_control.c @@ -1316,6 +1316,14 @@ static int msm_vidc_adjust_static_layer_count_and_type(struct msm_vidc_inst *ins goto exit; } + if (!inst->capabilities->cap[META_EVA_STATS].value && + hb_requested && (layer_count > 1)) { + layer_count = 1; + i_vpr_h(inst, + "%s: cvp disable supports only one enh layer HB\n", + __func__); + } + /* decide hfi layer type */ if (hb_requested) { inst->hfi_layer_type = HFI_HIER_B; @@ -1368,7 +1376,9 @@ int msm_vidc_adjust_layer_count(void *instance, struct v4l2_ctrl *ctrl) capability->cap[ENH_LAYER_COUNT].value; if (!is_parent_available(inst, ENH_LAYER_COUNT, - BITRATE_MODE, __func__)) + BITRATE_MODE, __func__) || + !is_parent_available(inst, ENH_LAYER_COUNT, + META_EVA_STATS, __func__)) return -EINVAL; if (!inst->vb2q[OUTPUT_PORT].streaming) { @@ -1419,7 +1429,7 @@ int msm_vidc_adjust_gop_size(void *instance, struct v4l2_ctrl *ctrl) /* * Layer encoding needs GOP size to be multiple of subgop size * And subgop size is 2 ^ number of enhancement layers. - */ + */ /* v4l2 layer count is the number of enhancement layers */ min_gop_size = 1 << enh_layer_count;