From f37cc5fe6cdef5b8eb77eaf97747b18dc99bc531 Mon Sep 17 00:00:00 2001 From: Akshata Sahukar Date: Tue, 6 Sep 2022 13:42:20 -0700 Subject: [PATCH] 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 --- driver/platform/anorak/src/msm_vidc_anorak.c | 66 ++++++++++---------- driver/platform/kalama/src/msm_vidc_kalama.c | 66 ++++++++++---------- driver/platform/waipio/src/msm_vidc_waipio.c | 52 +++++++-------- driver/vidc/inc/msm_vidc_driver.h | 24 +++++-- driver/vidc/inc/msm_vidc_internal.h | 3 +- driver/vidc/src/msm_vdec.c | 8 +-- driver/vidc/src/msm_venc.c | 8 +-- driver/vidc/src/msm_vidc_control.c | 6 +- driver/vidc/src/msm_vidc_driver.c | 1 - 9 files changed, 122 insertions(+), 112 deletions(-) diff --git a/driver/platform/anorak/src/msm_vidc_anorak.c b/driver/platform/anorak/src/msm_vidc_anorak.c index ffdecf8562..57ce7662d8 100644 --- a/driver/platform/anorak/src/msm_vidc_anorak.c +++ b/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, diff --git a/driver/platform/kalama/src/msm_vidc_kalama.c b/driver/platform/kalama/src/msm_vidc_kalama.c index e3e15f203e..147951be18 100644 --- a/driver/platform/kalama/src/msm_vidc_kalama.c +++ b/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, diff --git a/driver/platform/waipio/src/msm_vidc_waipio.c b/driver/platform/waipio/src/msm_vidc_waipio.c index 69863e467a..c310605a1a 100644 --- a/driver/platform/waipio/src/msm_vidc_waipio.c +++ b/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[] = { diff --git a/driver/vidc/inc/msm_vidc_driver.h b/driver/vidc/inc/msm_vidc_driver.h index f658feee63..2210b9e4b2 100644 --- a/driver/vidc/inc/msm_vidc_driver.h +++ b/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; diff --git a/driver/vidc/inc/msm_vidc_internal.h b/driver/vidc/inc/msm_vidc_internal.h index 73c54c763a..218a51d374 100644 --- a/driver/vidc/inc/msm_vidc_internal.h +++ b/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 { diff --git a/driver/vidc/src/msm_vdec.c b/driver/vidc/src/msm_vdec.c index b7d65e5d58..6473e1ff6e 100644 --- a/driver/vidc/src/msm_vdec.c +++ b/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)) { diff --git a/driver/vidc/src/msm_venc.c b/driver/vidc/src/msm_venc.c index 77ac058d66..46d2d2419c 100644 --- a/driver/vidc/src/msm_venc.c +++ b/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++; diff --git a/driver/vidc/src/msm_vidc_control.c b/driver/vidc/src/msm_vidc_control.c index 10230bbbf4..2692a044ec 100644 --- a/driver/vidc/src/msm_vidc_control.c +++ b/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; diff --git a/driver/vidc/src/msm_vidc_driver.c b/driver/vidc/src/msm_vidc_driver.c index 1675f6b18e..6482af8cc5 100644 --- a/driver/vidc/src/msm_vidc_driver.c +++ b/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" },