Przeglądaj źródła

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 <[email protected]>
Darshana Patil 4 lat temu
rodzic
commit
e7c7a2fb02

+ 6 - 0
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},

+ 1 - 0
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,
 };
 

+ 1 - 0
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) {

+ 1 - 0
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"               },
 };
 

+ 3 - 0
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,
 };