From e7c7a2fb0295e504397f8d3f41dba617dd14e42a Mon Sep 17 00:00:00 2001 From: Darshana Patil Date: Wed, 12 May 2021 13:08:08 -0700 Subject: [PATCH] video-driver: add decode QP metadata support add v4l2 extension and necassary support for decoder QP metadata. Change-Id: I364ef9b7b3a63bef0a59c955018bc8456f12d03f Signed-off-by: Darshana Patil --- driver/platform/waipio/src/msm_vidc_waipio.c | 6 ++++++ driver/vidc/inc/msm_vidc_internal.h | 1 + driver/vidc/src/msm_vdec.c | 1 + driver/vidc/src/msm_vidc_driver.c | 1 + include/uapi/vidc/media/v4l2_vidc_extensions.h | 3 +++ 5 files changed, 12 insertions(+) diff --git a/driver/platform/waipio/src/msm_vidc_waipio.c b/driver/platform/waipio/src/msm_vidc_waipio.c index b98e583c82..275df89721 100644 --- a/driver/platform/waipio/src/msm_vidc_waipio.c +++ b/driver/platform/waipio/src/msm_vidc_waipio.c @@ -1335,6 +1335,12 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { {0}, msm_vidc_adjust_roi_info, NULL}, + {META_DEC_QP_METADATA, DEC, CODECS_ALL, + V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE, + 1, V4L2_MPEG_MSM_VIDC_DISABLE, + V4L2_CID_MPEG_VIDC_METADATA_DEC_QP_METADATA, + HFI_PROP_DEC_QP_METADATA}, + /* configure image properties */ {FRAME_WIDTH, ENC, HEIC, 512, 16384, 1, 16384}, {FRAME_HEIGHT, ENC, HEIC, 512, 16384, 1, 16384}, diff --git a/driver/vidc/inc/msm_vidc_internal.h b/driver/vidc/inc/msm_vidc_internal.h index 337895df30..754819d34d 100644 --- a/driver/vidc/inc/msm_vidc_internal.h +++ b/driver/vidc/inc/msm_vidc_internal.h @@ -468,6 +468,7 @@ enum msm_vidc_inst_capability_type { META_SUBFRAME_OUTPUT, META_ENC_QP_METADATA, META_ROI_INFO, + META_DEC_QP_METADATA, INST_CAP_MAX, }; diff --git a/driver/vidc/src/msm_vdec.c b/driver/vidc/src/msm_vdec.c index 88c7570c1b..057c9f1e1c 100644 --- a/driver/vidc/src/msm_vdec.c +++ b/driver/vidc/src/msm_vdec.c @@ -1087,6 +1087,7 @@ static int msm_vdec_subscribe_metadata(struct msm_vidc_inst *inst, META_BUF_TAG, META_DPB_TAG_LIST, META_SUBFRAME_OUTPUT, + META_DEC_QP_METADATA, }; if (!inst || !inst->core || !inst->capabilities) { diff --git a/driver/vidc/src/msm_vidc_driver.c b/driver/vidc/src/msm_vidc_driver.c index 1f5f180c73..9829bcf2dc 100644 --- a/driver/vidc/src/msm_vidc_driver.c +++ b/driver/vidc/src/msm_vidc_driver.c @@ -180,6 +180,7 @@ static const struct msm_vidc_cap_name cap_name_arr[] = { {META_SUBFRAME_OUTPUT, "META_SUBFRAME_OUTPUT" }, {META_ENC_QP_METADATA, "META_ENC_QP_METADATA" }, {META_ROI_INFO, "META_ROI_INFO" }, + {META_DEC_QP_METADATA, "META_DEC_QP_METADATA" }, {INST_CAP_MAX, "INST_CAP_MAX" }, }; diff --git a/include/uapi/vidc/media/v4l2_vidc_extensions.h b/include/uapi/vidc/media/v4l2_vidc_extensions.h index b2f825021e..fa9bf8fc8f 100644 --- a/include/uapi/vidc/media/v4l2_vidc_extensions.h +++ b/include/uapi/vidc/media/v4l2_vidc_extensions.h @@ -132,6 +132,8 @@ enum v4l2_mpeg_vidc_blur_types { (V4L2_CID_MPEG_VIDC_BASE + 0x2C) #define V4L2_CID_MPEG_VIDC_MIN_QUALITY \ (V4L2_CID_MPEG_VIDC_BASE + 0x2D) +#define V4L2_CID_MPEG_VIDC_METADATA_DEC_QP_METADATA \ + (V4L2_CID_MPEG_VIDC_BASE + 0x2E) /* Deprecate below controls once availble in gki and gsi bionic header */ #ifndef V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID @@ -258,6 +260,7 @@ enum v4l2_mpeg_vidc_metadata { METADATA_BUFFER_TAG = 0x0300016b, METADATA_SUBFRAME_OUTPUT = 0x0300016d, METADATA_ENC_QP_METADATA = 0x0300016e, + METADATA_DEC_QP_METADATA = 0x0300016f, METADATA_ROI_INFO = 0x03000173, METADATA_DPB_TAG_LIST = 0x03000179, };