فهرست منبع

video: driver: Introduce CAP_FLAG_META flag for metadata caps

Introduce CAP_FLAG_META flag to differentiate metadata caps
from non metadata caps.

Change-Id: I7a3d2c5fb952e5d829002a04d11fa7b05b2c9297
Signed-off-by: Akshata Sahukar <[email protected]>
Akshata Sahukar 2 سال پیش
والد
کامیت
f37cc5fe6c

+ 33 - 33
driver/platform/anorak/src/msm_vidc_anorak.c

@@ -327,7 +327,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_OUTBUF_FENCE,
 		HFI_PROP_FENCE,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	/*
 	 * Client to do set_ctrl with FENCE_ID to set fence_id
@@ -1470,7 +1470,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_BITSTREAM_RESOLUTION,
 		HFI_PROP_BITSTREAM_RESOLUTION,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_CROP_OFFSETS, DEC, AV1,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1479,7 +1479,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_CROP_OFFSETS,
 		HFI_PROP_CROP_OFFSETS,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{ALL_INTRA, ENC, H264|HEVC,
 		V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
@@ -1507,7 +1507,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_LTR_MARK_USE_DETAILS,
 		HFI_PROP_LTR_MARK_USE_DETAILS,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_SEQ_HDR_NAL, ENC, CODECS_ALL,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1515,7 +1515,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_SEQ_HEADER_NAL,
 		HFI_PROP_METADATA_SEQ_HEADER_NAL,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_DPB_MISR, DEC, CODECS_ALL,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1523,7 +1523,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_DPB_LUMA_CHROMA_MISR,
 		HFI_PROP_DPB_LUMA_CHROMA_MISR,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_OPB_MISR, DEC, CODECS_ALL,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1531,7 +1531,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_OPB_LUMA_CHROMA_MISR,
 		HFI_PROP_OPB_LUMA_CHROMA_MISR,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_INTERLACE, DEC, H264,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1539,7 +1539,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_INTERLACE,
 		HFI_PROP_INTERLACE_INFO,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_TIMESTAMP, DEC | ENC, CODECS_ALL,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1547,7 +1547,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_TIMESTAMP,
 		HFI_PROP_TIMESTAMP,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_CONCEALED_MB_CNT, DEC, CODECS_ALL,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1555,7 +1555,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_CONCEALED_MB_COUNT,
 		HFI_PROP_CONEALED_MB_COUNT,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_HIST_INFO, DEC, HEVC|AV1|VP9,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1563,7 +1563,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_HISTOGRAM_INFO,
 		HFI_PROP_HISTOGRAM_INFO,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_TRANSCODING_STAT_INFO, DEC, HEVC|H264,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1571,7 +1571,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_TRANSCODE_STAT_INFO,
 		HFI_PROP_TRANSCODING_STAT_INFO,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_TRANSCODING_STAT_INFO, ENC, HEVC|H264,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1579,7 +1579,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_TRANSCODE_STAT_INFO,
 		HFI_PROP_TRANSCODING_STAT_INFO,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_PICTURE_TYPE, DEC, CODECS_ALL,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1587,7 +1587,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_PICTURE_TYPE,
 		HFI_PROP_PICTURE_TYPE,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_SEI_MASTERING_DISP, ENC, HEVC|HEIC,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1595,7 +1595,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_SEI_MASTERING_DISPLAY_COLOUR,
 		HFI_PROP_SEI_MASTERING_DISPLAY_COLOUR,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_SEI_MASTERING_DISP, DEC, HEVC|HEIC|AV1,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1604,7 +1604,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_SEI_MASTERING_DISPLAY_COLOUR,
 		HFI_PROP_SEI_MASTERING_DISPLAY_COLOUR,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_SEI_CLL, ENC, HEVC|HEIC,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1612,7 +1612,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_SEI_CONTENT_LIGHT_LEVEL,
 		HFI_PROP_SEI_CONTENT_LIGHT_LEVEL,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_SEI_CLL, DEC, HEVC|HEIC|AV1,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1621,7 +1621,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_SEI_CONTENT_LIGHT_LEVEL,
 		HFI_PROP_SEI_CONTENT_LIGHT_LEVEL,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_HDR10PLUS, ENC, HEVC|HEIC,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1629,7 +1629,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_HDR10PLUS,
 		HFI_PROP_SEI_HDR10PLUS_USERDATA,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_HDR10PLUS, DEC, HEVC|HEIC|AV1,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1638,7 +1638,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_HDR10PLUS,
 		HFI_PROP_SEI_HDR10PLUS_USERDATA,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_DOLBY_RPU, ENC, HEVC,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1646,7 +1646,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_DOLBY_RPU,
 		HFI_PROP_DOLBY_RPU_METADATA,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_DOLBY_RPU, DEC, H264|HEVC,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1654,7 +1654,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_DOLBY_RPU,
 		HFI_PROP_DOLBY_RPU_METADATA,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_EVA_STATS, ENC, CODECS_ALL,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1662,7 +1662,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_EVA_STATS,
 		HFI_PROP_EVA_STAT_INFO,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_BUF_TAG, ENC, CODECS_ALL,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1671,7 +1671,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_BUFFER_TAG,
 		HFI_PROP_BUFFER_TAG,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	/*
 	 * when fence enabled, client needs output buffer_tag
@@ -1685,7 +1685,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_BUFFER_TAG,
 		HFI_PROP_BUFFER_TAG,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_DPB_TAG_LIST, DEC, CODECS_ALL,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1693,7 +1693,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_DPB_TAG_LIST,
 		HFI_PROP_DPB_TAG_LIST,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_SUBFRAME_OUTPUT, ENC, HEIC | H264 | HEVC,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1701,7 +1701,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_SUBFRAME_OUTPUT,
 		HFI_PROP_SUBFRAME_OUTPUT,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_SUBFRAME_OUTPUT, DEC, CODECS_ALL,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1709,7 +1709,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_SUBFRAME_OUTPUT,
 		HFI_PROP_SUBFRAME_OUTPUT,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_ENC_QP_METADATA, ENC, CODECS_ALL,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1717,7 +1717,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_ENC_QP_METADATA,
 		HFI_PROP_ENC_QP_METADATA,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_ROI_INFO, ENC, H264|HEVC,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1725,7 +1725,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_ROI_INFO,
 		HFI_PROP_ROI_INFO,
-		CAP_FLAG_INPUT_PORT | CAP_FLAG_BITMASK},
+		CAP_FLAG_INPUT_PORT | CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_SALIENCY_INFO, ENC, H264|HEVC,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1733,7 +1733,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_SALIENCY_INFO,
 		HFI_PROP_ROI_AS_SALIENCY_INFO,
-		CAP_FLAG_INPUT_PORT | CAP_FLAG_BITMASK},
+		CAP_FLAG_INPUT_PORT | CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_DEC_QP_METADATA, DEC, CODECS_ALL,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1741,7 +1741,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_DEC_QP_METADATA,
 		HFI_PROP_DEC_QP_METADATA,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{GRID, ENC, HEIC,
 		V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
@@ -1761,7 +1761,7 @@ static struct msm_platform_inst_capability instance_cap_data_anorak[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_MAX_NUM_REORDER_FRAMES,
 		HFI_PROP_MAX_NUM_REORDER_FRAMES,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{DELIVERY_MODE, ENC, HEVC,
 		V4L2_MPEG_VIDC_HEVC_ENCODE_DELIVERY_MODE_FRAME_BASED,

+ 33 - 33
driver/platform/kalama/src/msm_vidc_kalama.c

@@ -564,7 +564,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_OUTBUF_FENCE,
 		HFI_PROP_FENCE,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	/*
 	 * Client to do set_ctrl with FENCE_ID to set fence_id
@@ -1670,7 +1670,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_BITSTREAM_RESOLUTION,
 		HFI_PROP_BITSTREAM_RESOLUTION,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_CROP_OFFSETS, DEC, AV1,
 		MSM_VIDC_META_DISABLE,
@@ -1679,7 +1679,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_CROP_OFFSETS,
 		HFI_PROP_CROP_OFFSETS,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{ALL_INTRA, ENC, H264|HEVC,
 		0, 1, 1, 0,
@@ -1705,7 +1705,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_LTR_MARK_USE_DETAILS,
 		HFI_PROP_LTR_MARK_USE_DETAILS,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_SEQ_HDR_NAL, ENC, CODECS_ALL,
 		MSM_VIDC_META_DISABLE,
@@ -1713,7 +1713,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_SEQ_HEADER_NAL,
 		HFI_PROP_METADATA_SEQ_HEADER_NAL,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_DPB_MISR, DEC, CODECS_ALL,
 		MSM_VIDC_META_DISABLE,
@@ -1721,7 +1721,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_DPB_LUMA_CHROMA_MISR,
 		HFI_PROP_DPB_LUMA_CHROMA_MISR,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_OPB_MISR, DEC, CODECS_ALL,
 		MSM_VIDC_META_DISABLE,
@@ -1729,7 +1729,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_OPB_LUMA_CHROMA_MISR,
 		HFI_PROP_OPB_LUMA_CHROMA_MISR,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_INTERLACE, DEC, H264,
 		MSM_VIDC_META_DISABLE,
@@ -1737,7 +1737,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_INTERLACE,
 		HFI_PROP_INTERLACE_INFO,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_TIMESTAMP, DEC | ENC, CODECS_ALL,
 		MSM_VIDC_META_DISABLE,
@@ -1745,7 +1745,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_TIMESTAMP,
 		HFI_PROP_TIMESTAMP,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_CONCEALED_MB_CNT, DEC, CODECS_ALL,
 		MSM_VIDC_META_DISABLE,
@@ -1753,7 +1753,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_CONCEALED_MB_COUNT,
 		HFI_PROP_CONEALED_MB_COUNT,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_HIST_INFO, DEC, HEVC|AV1|VP9,
 		MSM_VIDC_META_DISABLE,
@@ -1761,7 +1761,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_HISTOGRAM_INFO,
 		HFI_PROP_HISTOGRAM_INFO,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_TRANSCODING_STAT_INFO, DEC, HEVC|H264,
 		MSM_VIDC_META_DISABLE,
@@ -1769,7 +1769,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_TRANSCODE_STAT_INFO,
 		HFI_PROP_TRANSCODING_STAT_INFO,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_TRANSCODING_STAT_INFO, ENC, HEVC|H264,
 		MSM_VIDC_META_DISABLE,
@@ -1777,7 +1777,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_TRANSCODE_STAT_INFO,
 		HFI_PROP_TRANSCODING_STAT_INFO,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_PICTURE_TYPE, DEC, CODECS_ALL,
 		MSM_VIDC_META_DISABLE,
@@ -1785,7 +1785,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_PICTURE_TYPE,
 		HFI_PROP_PICTURE_TYPE,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_SEI_MASTERING_DISP, ENC, HEVC|HEIC,
 		MSM_VIDC_META_DISABLE,
@@ -1793,7 +1793,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_SEI_MASTERING_DISPLAY_COLOUR,
 		HFI_PROP_SEI_MASTERING_DISPLAY_COLOUR,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_SEI_MASTERING_DISP, DEC, HEVC|HEIC|AV1,
 		MSM_VIDC_META_DISABLE,
@@ -1802,7 +1802,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_SEI_MASTERING_DISPLAY_COLOUR,
 		HFI_PROP_SEI_MASTERING_DISPLAY_COLOUR,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_SEI_CLL, ENC, HEVC|HEIC,
 		MSM_VIDC_META_DISABLE,
@@ -1810,7 +1810,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_SEI_CONTENT_LIGHT_LEVEL,
 		HFI_PROP_SEI_CONTENT_LIGHT_LEVEL,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_SEI_CLL, DEC, HEVC|HEIC|AV1,
 		MSM_VIDC_META_DISABLE,
@@ -1819,7 +1819,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_SEI_CONTENT_LIGHT_LEVEL,
 		HFI_PROP_SEI_CONTENT_LIGHT_LEVEL,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_HDR10PLUS, ENC, HEVC|HEIC,
 		MSM_VIDC_META_DISABLE,
@@ -1827,7 +1827,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_HDR10PLUS,
 		HFI_PROP_SEI_HDR10PLUS_USERDATA,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_HDR10PLUS, DEC, HEVC|HEIC|AV1,
 		MSM_VIDC_META_DISABLE,
@@ -1836,7 +1836,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_HDR10PLUS,
 		HFI_PROP_SEI_HDR10PLUS_USERDATA,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_DOLBY_RPU, ENC, HEVC,
 		MSM_VIDC_META_DISABLE,
@@ -1844,7 +1844,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_DOLBY_RPU,
 		HFI_PROP_DOLBY_RPU_METADATA,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_DOLBY_RPU, DEC, H264|HEVC,
 		MSM_VIDC_META_DISABLE,
@@ -1852,7 +1852,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_DOLBY_RPU,
 		HFI_PROP_DOLBY_RPU_METADATA,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_EVA_STATS, ENC, CODECS_ALL,
 		MSM_VIDC_META_DISABLE,
@@ -1860,7 +1860,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_EVA_STATS,
 		HFI_PROP_EVA_STAT_INFO,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_BUF_TAG, ENC, CODECS_ALL,
 		MSM_VIDC_META_DISABLE,
@@ -1869,7 +1869,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_BUFFER_TAG,
 		HFI_PROP_BUFFER_TAG,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	/*
 	 * when fence enabled, client needs output buffer_tag
@@ -1883,7 +1883,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_BUFFER_TAG,
 		HFI_PROP_BUFFER_TAG,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_DPB_TAG_LIST, DEC, CODECS_ALL,
 		MSM_VIDC_META_DISABLE,
@@ -1891,7 +1891,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_DPB_TAG_LIST,
 		HFI_PROP_DPB_TAG_LIST,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_SUBFRAME_OUTPUT, ENC, HEIC | H264 | HEVC,
 		MSM_VIDC_META_DISABLE,
@@ -1899,7 +1899,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_SUBFRAME_OUTPUT,
 		HFI_PROP_SUBFRAME_OUTPUT,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_SUBFRAME_OUTPUT, DEC, CODECS_ALL,
 		MSM_VIDC_META_DISABLE,
@@ -1907,7 +1907,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_SUBFRAME_OUTPUT,
 		HFI_PROP_SUBFRAME_OUTPUT,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_ENC_QP_METADATA, ENC, CODECS_ALL,
 		MSM_VIDC_META_DISABLE,
@@ -1915,7 +1915,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_ENC_QP_METADATA,
 		HFI_PROP_ENC_QP_METADATA,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_ROI_INFO, ENC, H264|HEVC,
 		MSM_VIDC_META_DISABLE,
@@ -1923,7 +1923,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_ROI_INFO,
 		HFI_PROP_ROI_INFO,
-		CAP_FLAG_INPUT_PORT | CAP_FLAG_BITMASK},
+		CAP_FLAG_INPUT_PORT | CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_SALIENCY_INFO, ENC, H264|HEVC,
 		MSM_VIDC_META_DISABLE,
@@ -1931,7 +1931,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_SALIENCY_INFO,
 		HFI_PROP_ROI_AS_SALIENCY_INFO,
-		CAP_FLAG_INPUT_PORT | CAP_FLAG_BITMASK},
+		CAP_FLAG_INPUT_PORT | CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_DEC_QP_METADATA, DEC, CODECS_ALL,
 		MSM_VIDC_META_DISABLE,
@@ -1939,7 +1939,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_DEC_QP_METADATA,
 		HFI_PROP_DEC_QP_METADATA,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{GRID, ENC, HEIC,
 		0, 1, 1, 1,
@@ -1958,7 +1958,7 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 		0, MSM_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_MAX_NUM_REORDER_FRAMES,
 		HFI_PROP_MAX_NUM_REORDER_FRAMES,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{DELIVERY_MODE, ENC, HEVC,
 		0, 1, 1, 0,

+ 26 - 26
driver/platform/waipio/src/msm_vidc_waipio.c

@@ -314,7 +314,7 @@ static struct msm_platform_inst_capability instance_cap_data_waipio[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		0,
 		0,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{TS_REORDER, DEC, H264|HEVC,
 		V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
@@ -1352,7 +1352,7 @@ static struct msm_platform_inst_capability instance_cap_data_waipio[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_LTR_MARK_USE_DETAILS,
 		HFI_PROP_LTR_MARK_USE_DETAILS,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_SEQ_HDR_NAL, ENC, CODECS_ALL,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1360,7 +1360,7 @@ static struct msm_platform_inst_capability instance_cap_data_waipio[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_SEQ_HEADER_NAL,
 		HFI_PROP_METADATA_SEQ_HEADER_NAL,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_DPB_MISR, DEC, CODECS_ALL,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1368,7 +1368,7 @@ static struct msm_platform_inst_capability instance_cap_data_waipio[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_DPB_LUMA_CHROMA_MISR,
 		HFI_PROP_DPB_LUMA_CHROMA_MISR,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_OPB_MISR, DEC, CODECS_ALL,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1376,7 +1376,7 @@ static struct msm_platform_inst_capability instance_cap_data_waipio[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_OPB_LUMA_CHROMA_MISR,
 		HFI_PROP_OPB_LUMA_CHROMA_MISR,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_INTERLACE, DEC, H264,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1384,7 +1384,7 @@ static struct msm_platform_inst_capability instance_cap_data_waipio[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_INTERLACE,
 		HFI_PROP_INTERLACE_INFO,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_TIMESTAMP, DEC | ENC, CODECS_ALL,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1392,7 +1392,7 @@ static struct msm_platform_inst_capability instance_cap_data_waipio[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_TIMESTAMP,
 		HFI_PROP_TIMESTAMP,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_CONCEALED_MB_CNT, DEC, CODECS_ALL,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1400,7 +1400,7 @@ static struct msm_platform_inst_capability instance_cap_data_waipio[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_CONCEALED_MB_COUNT,
 		HFI_PROP_CONEALED_MB_COUNT,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_HIST_INFO, DEC, CODECS_ALL,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1408,7 +1408,7 @@ static struct msm_platform_inst_capability instance_cap_data_waipio[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_HISTOGRAM_INFO,
 		HFI_PROP_HISTOGRAM_INFO,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_SEI_MASTERING_DISP, ENC, HEVC|HEIC,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1416,7 +1416,7 @@ static struct msm_platform_inst_capability instance_cap_data_waipio[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_SEI_MASTERING_DISPLAY_COLOUR,
 		HFI_PROP_SEI_MASTERING_DISPLAY_COLOUR,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_SEI_MASTERING_DISP, DEC, HEVC|HEIC,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1425,7 +1425,7 @@ static struct msm_platform_inst_capability instance_cap_data_waipio[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_SEI_MASTERING_DISPLAY_COLOUR,
 		HFI_PROP_SEI_MASTERING_DISPLAY_COLOUR,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_SEI_CLL, ENC, HEVC|HEIC,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1433,7 +1433,7 @@ static struct msm_platform_inst_capability instance_cap_data_waipio[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_SEI_CONTENT_LIGHT_LEVEL,
 		HFI_PROP_SEI_CONTENT_LIGHT_LEVEL,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_SEI_CLL, DEC, HEVC|HEIC,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1442,7 +1442,7 @@ static struct msm_platform_inst_capability instance_cap_data_waipio[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_SEI_CONTENT_LIGHT_LEVEL,
 		HFI_PROP_SEI_CONTENT_LIGHT_LEVEL,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_HDR10PLUS, ENC, HEVC|HEIC,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1450,7 +1450,7 @@ static struct msm_platform_inst_capability instance_cap_data_waipio[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_HDR10PLUS,
 		HFI_PROP_SEI_HDR10PLUS_USERDATA,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_HDR10PLUS, DEC, HEVC|HEIC,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1459,7 +1459,7 @@ static struct msm_platform_inst_capability instance_cap_data_waipio[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_HDR10PLUS,
 		HFI_PROP_SEI_HDR10PLUS_USERDATA,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_EVA_STATS, ENC, CODECS_ALL,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1467,7 +1467,7 @@ static struct msm_platform_inst_capability instance_cap_data_waipio[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_EVA_STATS,
 		HFI_PROP_EVA_STAT_INFO,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_BUF_TAG, ENC, CODECS_ALL,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1476,7 +1476,7 @@ static struct msm_platform_inst_capability instance_cap_data_waipio[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_BUFFER_TAG,
 		HFI_PROP_BUFFER_TAG,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_BUF_TAG, DEC, CODECS_ALL,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1486,7 +1486,7 @@ static struct msm_platform_inst_capability instance_cap_data_waipio[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_BUFFER_TAG,
 		HFI_PROP_BUFFER_TAG,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_DPB_TAG_LIST, DEC, CODECS_ALL,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1494,7 +1494,7 @@ static struct msm_platform_inst_capability instance_cap_data_waipio[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_DPB_TAG_LIST,
 		HFI_PROP_DPB_TAG_LIST,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_SUBFRAME_OUTPUT, ENC, HEIC,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1502,7 +1502,7 @@ static struct msm_platform_inst_capability instance_cap_data_waipio[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_SUBFRAME_OUTPUT,
 		HFI_PROP_SUBFRAME_OUTPUT,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_SUBFRAME_OUTPUT, DEC, CODECS_ALL,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1510,7 +1510,7 @@ static struct msm_platform_inst_capability instance_cap_data_waipio[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_SUBFRAME_OUTPUT,
 		HFI_PROP_SUBFRAME_OUTPUT,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_ENC_QP_METADATA, ENC, CODECS_ALL,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1518,7 +1518,7 @@ static struct msm_platform_inst_capability instance_cap_data_waipio[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_ENC_QP_METADATA,
 		HFI_PROP_ENC_QP_METADATA,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_ROI_INFO, ENC, CODECS_ALL,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1526,7 +1526,7 @@ static struct msm_platform_inst_capability instance_cap_data_waipio[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_ROI_INFO,
 		HFI_PROP_ROI_INFO,
-		CAP_FLAG_INPUT_PORT | CAP_FLAG_BITMASK},
+		CAP_FLAG_INPUT_PORT | CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_SALIENCY_INFO, ENC, H264|HEVC,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1534,7 +1534,7 @@ static struct msm_platform_inst_capability instance_cap_data_waipio[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_SALIENCY_INFO,
 		HFI_PROP_ROI_AS_SALIENCY_INFO,
-		CAP_FLAG_INPUT_PORT | CAP_FLAG_BITMASK},
+		CAP_FLAG_INPUT_PORT | CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{META_DEC_QP_METADATA, DEC, CODECS_ALL,
 		V4L2_MPEG_VIDC_META_DISABLE,
@@ -1542,7 +1542,7 @@ static struct msm_platform_inst_capability instance_cap_data_waipio[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_DEC_QP_METADATA,
 		HFI_PROP_DEC_QP_METADATA,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 
 	{GRID, ENC, HEIC,
 		V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
@@ -1562,7 +1562,7 @@ static struct msm_platform_inst_capability instance_cap_data_waipio[] = {
 		0, V4L2_MPEG_VIDC_META_DISABLE,
 		V4L2_CID_MPEG_VIDC_METADATA_MAX_NUM_REORDER_FRAMES,
 		HFI_PROP_MAX_NUM_REORDER_FRAMES,
-		CAP_FLAG_BITMASK},
+		CAP_FLAG_BITMASK | CAP_FLAG_META},
 };
 
 static struct msm_platform_inst_cap_dependency instance_cap_dependency_data_waipio[] = {

+ 18 - 6
driver/vidc/inc/msm_vidc_driver.h

@@ -100,9 +100,9 @@ static inline bool is_internal_buffer(enum msm_vidc_buffer_type buffer_type)
 		buffer_type == MSM_VIDC_BUF_PARTIAL_DATA;
 }
 
-static inline bool is_meta_cap(u32 cap)
+static inline bool is_meta_cap(struct msm_vidc_inst *inst, u32 cap)
 {
-	if (cap > INST_CAP_NONE && cap < META_CAP_MAX)
+	if (inst->capabilities->cap[cap].flags & CAP_FLAG_META)
 		return true;
 
 	return false;
@@ -112,6 +112,9 @@ static inline bool is_meta_rx_inp_enabled(struct msm_vidc_inst *inst, u32 cap)
 {
 	bool enabled = false;
 
+	if (!is_meta_cap(inst, cap))
+		return false;
+
 	if (inst->capabilities->cap[cap].value & MSM_VIDC_META_ENABLE &&
 		inst->capabilities->cap[cap].value & MSM_VIDC_META_RX_INPUT)
 		enabled = true;
@@ -123,6 +126,9 @@ static inline bool is_meta_rx_out_enabled(struct msm_vidc_inst *inst, u32 cap)
 {
 	bool enabled = false;
 
+	if (!is_meta_cap(inst, cap))
+		return false;
+
 	if (inst->capabilities->cap[cap].value & MSM_VIDC_META_ENABLE &&
 		inst->capabilities->cap[cap].value & MSM_VIDC_META_RX_OUTPUT)
 		enabled = true;
@@ -134,6 +140,9 @@ static inline bool is_meta_tx_inp_enabled(struct msm_vidc_inst *inst, u32 cap)
 {
 	bool enabled = false;
 
+	if (!is_meta_cap(inst, cap))
+		return false;
+
 	if (inst->capabilities->cap[cap].value & MSM_VIDC_META_ENABLE &&
 		inst->capabilities->cap[cap].value & MSM_VIDC_META_TX_INPUT)
 		enabled = true;
@@ -145,6 +154,9 @@ static inline bool is_meta_tx_out_enabled(struct msm_vidc_inst *inst, u32 cap)
 {
 	bool enabled = false;
 
+	if (!is_meta_cap(inst, cap))
+		return false;
+
 	if (inst->capabilities->cap[cap].value & MSM_VIDC_META_ENABLE &&
 		inst->capabilities->cap[cap].value & MSM_VIDC_META_TX_OUTPUT)
 		enabled = true;
@@ -157,7 +169,7 @@ static inline bool is_any_meta_tx_out_enabled(struct msm_vidc_inst *inst)
 	bool enabled = false;
 	u32 i;
 
-	for (i = INST_CAP_NONE + 1; i < META_CAP_MAX; i++) {
+	for (i = INST_CAP_NONE + 1; i < INST_CAP_MAX; i++) {
 		if (is_meta_tx_out_enabled(inst, i)) {
 			enabled = true;
 			break;
@@ -172,7 +184,7 @@ static inline bool is_any_meta_tx_inp_enabled(struct msm_vidc_inst *inst)
 	bool enabled = false;
 	u32 i;
 
-	for (i = INST_CAP_NONE + 1; i < META_CAP_MAX; i++) {
+	for (i = INST_CAP_NONE + 1; i < INST_CAP_MAX; i++) {
 		if (is_meta_tx_inp_enabled(inst, i)) {
 			enabled = true;
 			break;
@@ -187,7 +199,7 @@ static inline bool is_input_meta_enabled(struct msm_vidc_inst *inst)
 	bool enabled = false;
 	u32 i;
 
-	for (i = INST_CAP_NONE + 1; i < META_CAP_MAX; i++) {
+	for (i = INST_CAP_NONE + 1; i < INST_CAP_MAX; i++) {
 		if (is_meta_tx_inp_enabled(inst, i) ||
 			is_meta_rx_inp_enabled(inst, i)) {
 			enabled = true;
@@ -203,7 +215,7 @@ static inline bool is_output_meta_enabled(struct msm_vidc_inst *inst)
 	bool enabled = false;
 	u32 i;
 
-	for (i = INST_CAP_NONE + 1; i < META_CAP_MAX; i++) {
+	for (i = INST_CAP_NONE + 1; i < INST_CAP_MAX; i++) {
 		if (is_meta_tx_out_enabled(inst, i) ||
 			is_meta_rx_out_enabled(inst, i)) {
 			enabled = true;

+ 1 - 2
driver/vidc/inc/msm_vidc_internal.h

@@ -389,7 +389,6 @@ enum msm_vidc_core_capability_type {
 enum msm_vidc_inst_capability_type {
 	INST_CAP_NONE = 0,
 	/* place all metadata after this line
-	 * (Between INST_CAP_NONE and META_CAP_MAX)
 	 */
 	META_SEQ_HDR_NAL,
 	META_BITSTREAM_RESOLUTION,
@@ -417,7 +416,6 @@ enum msm_vidc_inst_capability_type {
 	META_SALIENCY_INFO,
 	META_TRANSCODING_STAT_INFO,
 	META_DOLBY_RPU,
-	META_CAP_MAX,
 	/* end of metadata caps */
 	FRAME_WIDTH,
 	LOSSLESS_FRAME_WIDTH,
@@ -581,6 +579,7 @@ enum msm_vidc_inst_capability_flags {
 	CAP_FLAG_CLIENT_SET              = BIT(4),
 	CAP_FLAG_BITMASK                 = BIT(5),
 	CAP_FLAG_VOLATILE                = BIT(6),
+	CAP_FLAG_META                    = BIT(7),
 };
 
 struct msm_vidc_inst_cap {

+ 4 - 4
driver/vidc/src/msm_vdec.c

@@ -1008,7 +1008,7 @@ static int msm_vdec_subscribe_metadata(struct msm_vidc_inst *inst,
 	capability = inst->capabilities;
 	payload[0] = HFI_MODE_METADATA;
 	if (port == INPUT_PORT) {
-		for (i = INST_CAP_NONE + 1; i < META_CAP_MAX; i++) {
+		for (i = INST_CAP_NONE + 1; i < INST_CAP_MAX; i++) {
 			if (is_meta_rx_inp_enabled(inst, i) &&
 				msm_vidc_allow_metadata_subscription(
 					inst, i, port)) {
@@ -1017,7 +1017,7 @@ static int msm_vdec_subscribe_metadata(struct msm_vidc_inst *inst,
 			}
 		}
 	} else if (port == OUTPUT_PORT) {
-		for (i = INST_CAP_NONE + 1; i < META_CAP_MAX; i++) {
+		for (i = INST_CAP_NONE + 1; i < INST_CAP_MAX; i++) {
 			if (is_meta_rx_out_enabled(inst, i) &&
 				msm_vidc_allow_metadata_subscription(
 					inst, i, port)) {
@@ -1060,14 +1060,14 @@ static int msm_vdec_set_delivery_mode_metadata(struct msm_vidc_inst *inst,
 	payload[0] = HFI_MODE_METADATA;
 
 	if (port == INPUT_PORT) {
-		for (i = INST_CAP_NONE + 1; i < META_CAP_MAX; i++) {
+		for (i = INST_CAP_NONE + 1; i < INST_CAP_MAX; i++) {
 			if (is_meta_tx_inp_enabled(inst, i)) {
 				payload[count + 1] = capability->cap[i].hfi_id;
 				count++;
 			}
 		}
 	} else if (port == OUTPUT_PORT) {
-		for (i = INST_CAP_NONE + 1; i < META_CAP_MAX; i++) {
+		for (i = INST_CAP_NONE + 1; i < INST_CAP_MAX; i++) {
 			if (is_meta_tx_out_enabled(inst, i)  &&
 				msm_vidc_allow_metadata_delivery(
 					inst, i, port)) {

+ 4 - 4
driver/vidc/src/msm_venc.c

@@ -710,14 +710,14 @@ static int msm_venc_metadata_delivery(struct msm_vidc_inst *inst,
 	payload[0] = HFI_MODE_METADATA;
 
 	if (port == INPUT_PORT) {
-		for (i = INST_CAP_NONE + 1; i < META_CAP_MAX; i++) {
+		for (i = INST_CAP_NONE + 1; i < INST_CAP_MAX; i++) {
 			if (is_meta_tx_inp_enabled(inst, i)) {
 				payload[count + 1] = capability->cap[i].hfi_id;
 				count++;
 			}
 		}
 	} else if (port == OUTPUT_PORT) {
-		for (i = INST_CAP_NONE + 1; i < META_CAP_MAX; i++) {
+		for (i = INST_CAP_NONE + 1; i < INST_CAP_MAX; i++) {
 			if (is_meta_tx_out_enabled(inst, i)) {
 				payload[count + 1] = capability->cap[i].hfi_id;
 				count++;
@@ -758,14 +758,14 @@ static int msm_venc_metadata_subscription(struct msm_vidc_inst *inst,
 	payload[0] = HFI_MODE_METADATA;
 
 	if (port == INPUT_PORT) {
-		for (i = INST_CAP_NONE + 1; i < META_CAP_MAX; i++) {
+		for (i = INST_CAP_NONE + 1; i < INST_CAP_MAX; i++) {
 			if (is_meta_rx_inp_enabled(inst, i)) {
 				payload[count + 1] = capability->cap[i].hfi_id;
 				count++;
 			}
 		}
 	} else if (port == OUTPUT_PORT) {
-		for (i = INST_CAP_NONE + 1; i < META_CAP_MAX; i++) {
+		for (i = INST_CAP_NONE + 1; i < INST_CAP_MAX; i++) {
 			if (is_meta_rx_out_enabled(inst, i)) {
 				payload[count + 1] = capability->cap[i].hfi_id;
 				count++;

+ 3 - 3
driver/vidc/src/msm_vidc_control.c

@@ -418,7 +418,7 @@ int msm_vidc_update_cap_value(struct msm_vidc_inst *inst, u32 cap_id,
 
 	prev_value = inst->capabilities->cap[cap_id].value;
 
-	if (is_meta_cap(cap_id)) {
+	if (is_meta_cap(inst, cap_id)) {
 		/*
 		 * cumulative control value if client set same metadata
 		 * control multiple times.
@@ -808,7 +808,7 @@ int msm_vidc_ctrl_init(struct msm_vidc_inst *inst)
 				ctrl_cfg.type = V4L2_CTRL_TYPE_BITMASK;
 			else
 				ctrl_cfg.type = V4L2_CTRL_TYPE_INTEGER;
-			if (is_meta_cap(idx)) {
+			if (is_meta_cap(inst, idx)) {
 				/* bitmask is expected to be enabled for meta controls */
 				if (ctrl_cfg.type != V4L2_CTRL_TYPE_BITMASK) {
 					i_vpr_e(inst,
@@ -1078,7 +1078,7 @@ static int msm_vidc_update_static_property(struct msm_vidc_inst *inst,
 
 		msm_vidc_update_cap_value(inst, LAYER_ENABLE, enable, __func__);
 	}
-	if (is_meta_cap(cap_id)) {
+	if (is_meta_cap(inst, cap_id)) {
 		rc = msm_vidc_update_meta_port_settings(inst);
 		if (rc)
 			return rc;

+ 0 - 1
driver/vidc/src/msm_vidc_driver.c

@@ -83,7 +83,6 @@ static const struct msm_vidc_cap_name cap_name_arr[] = {
 	{META_SALIENCY_INFO,             "META_SALIENCY_INFO"         },
 	{META_TRANSCODING_STAT_INFO,     "META_TRANSCODING_STAT_INFO" },
 	{META_DOLBY_RPU,                 "META_DOLBY_RPU"             },
-	{META_CAP_MAX,                   "META_CAP_MAX"               },
 	{FRAME_WIDTH,                    "FRAME_WIDTH"                },
 	{LOSSLESS_FRAME_WIDTH,           "LOSSLESS_FRAME_WIDTH"       },
 	{SECURE_FRAME_WIDTH,             "SECURE_FRAME_WIDTH"         },