Эх сурвалжийг харах

Merge "video: driver: Introduce CAP_FLAG_META flag for metadata caps"

qctecmdr 2 жил өмнө
parent
commit
e072a88b28

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

@@ -329,7 +329,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
@@ -1472,7 +1472,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,
@@ -1481,7 +1481,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,
@@ -1509,7 +1509,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,
@@ -1517,7 +1517,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,
@@ -1525,7 +1525,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,
@@ -1533,7 +1533,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,
@@ -1541,7 +1541,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,
@@ -1549,7 +1549,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,
@@ -1557,7 +1557,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,
@@ -1565,7 +1565,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,
@@ -1573,7 +1573,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,
@@ -1581,7 +1581,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,
@@ -1589,7 +1589,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,
@@ -1597,7 +1597,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,
@@ -1606,7 +1606,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,
@@ -1614,7 +1614,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,
@@ -1623,7 +1623,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,
@@ -1631,7 +1631,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,
@@ -1640,7 +1640,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,
@@ -1648,7 +1648,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,
@@ -1656,7 +1656,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,
@@ -1664,7 +1664,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,
@@ -1673,7 +1673,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
@@ -1687,7 +1687,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,
@@ -1695,7 +1695,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,
@@ -1703,7 +1703,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,
@@ -1711,7 +1711,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,
@@ -1719,7 +1719,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,
@@ -1727,7 +1727,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,
@@ -1735,7 +1735,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,
@@ -1743,7 +1743,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,
@@ -1763,7 +1763,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

@@ -566,7 +566,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
@@ -1672,7 +1672,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,
@@ -1681,7 +1681,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,
@@ -1707,7 +1707,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,
@@ -1715,7 +1715,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,
@@ -1723,7 +1723,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,
@@ -1731,7 +1731,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,
@@ -1739,7 +1739,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,
@@ -1747,7 +1747,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,
@@ -1755,7 +1755,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,
@@ -1763,7 +1763,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,
@@ -1771,7 +1771,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,
@@ -1779,7 +1779,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,
@@ -1787,7 +1787,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,
@@ -1795,7 +1795,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,
@@ -1804,7 +1804,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,
@@ -1812,7 +1812,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,
@@ -1821,7 +1821,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,
@@ -1829,7 +1829,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,
@@ -1838,7 +1838,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,
@@ -1846,7 +1846,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,
@@ -1854,7 +1854,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,
@@ -1862,7 +1862,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,
@@ -1871,7 +1871,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
@@ -1885,7 +1885,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,
@@ -1893,7 +1893,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,
@@ -1901,7 +1901,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,
@@ -1909,7 +1909,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,
@@ -1917,7 +1917,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,
@@ -1925,7 +1925,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,
@@ -1933,7 +1933,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,
@@ -1941,7 +1941,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,
@@ -1960,7 +1960,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

@@ -316,7 +316,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,
@@ -1354,7 +1354,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,
@@ -1362,7 +1362,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,
@@ -1370,7 +1370,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,
@@ -1378,7 +1378,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,
@@ -1386,7 +1386,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,
@@ -1394,7 +1394,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,
@@ -1402,7 +1402,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,
@@ -1410,7 +1410,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,
@@ -1418,7 +1418,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,
@@ -1427,7 +1427,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,
@@ -1435,7 +1435,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,
@@ -1444,7 +1444,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,
@@ -1452,7 +1452,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,
@@ -1461,7 +1461,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,
@@ -1469,7 +1469,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,
@@ -1478,7 +1478,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,
@@ -1488,7 +1488,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,
@@ -1496,7 +1496,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,
@@ -1504,7 +1504,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,
@@ -1512,7 +1512,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,
@@ -1520,7 +1520,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,
@@ -1528,7 +1528,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,
@@ -1536,7 +1536,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,
@@ -1544,7 +1544,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,
@@ -1564,7 +1564,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

@@ -390,7 +390,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,
@@ -418,7 +417,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,
@@ -582,6 +580,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"         },