Loading msm/vidc/msm_vidc_common.c +3 −0 Original line number Diff line number Diff line Loading @@ -1407,6 +1407,9 @@ static void msm_vidc_comm_update_ctrl_limits(struct msm_vidc_inst *inst) msm_vidc_comm_update_ctrl(inst, V4L2_CID_MPEG_VIDEO_HEVC_LEVEL, &inst->capability.cap[CAP_HEVC_LEVEL]); msm_vidc_comm_update_ctrl(inst, V4L2_CID_MPEG_VIDC_VIDEO_VP9_LEVEL, &inst->capability.cap[CAP_VP9_LEVEL]); /* * Default value of level is unknown, but since we are not * using unknown value while updating level controls, we need Loading msm/vidc/msm_vidc_platform.c +63 −10 Original line number Diff line number Diff line Loading @@ -181,6 +181,9 @@ static struct msm_vidc_codec_capability bengal_capabilities_v0[] = { {CAP_SECURE_MBS_PER_FRAME, DOMAINS_ALL, CODECS_ALL, 64, 8160, 1, 8160}, {CAP_SECURE_BITRATE, DOMAINS_ALL, CODECS_ALL, 1, 35000000, 1, 20000000}, /* All intra encoding usecase specific */ {CAP_ALLINTRA_MAX_FPS, ENC, H264|HEVC, 1, 60, 1, 30}, /* Image specific */ {CAP_HEVC_IMAGE_FRAME_WIDTH, ENC, HEVC, 128, 512, 2, 512}, {CAP_HEVC_IMAGE_FRAME_HEIGHT, ENC, HEVC, 128, 512, 2, 512}, Loading @@ -200,13 +203,16 @@ static struct msm_vidc_codec_capability bengal_capabilities_v0[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_5, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1}, /* Level for AVC and HEVC decoder specific */ /* Level for AVC, HEVC and VP9 decoder specific */ {CAP_H264_LEVEL, DEC, H264, V4L2_MPEG_VIDEO_H264_LEVEL_1_0, V4L2_MPEG_VIDEO_H264_LEVEL_5_0, 1, V4L2_MPEG_VIDEO_H264_LEVEL_4_1}, {CAP_HEVC_LEVEL, DEC, HEVC, V4L2_MPEG_VIDEO_HEVC_LEVEL_1, V4L2_MPEG_VIDEO_HEVC_LEVEL_5, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1}, {CAP_VP9_LEVEL, DEC, VP9, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_UNUSED, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_5, 1, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_5}, }; static struct msm_vidc_codec_capability bengal_capabilities_v1[] = { Loading Loading @@ -245,6 +251,9 @@ static struct msm_vidc_codec_capability bengal_capabilities_v1[] = { {CAP_SECURE_MBS_PER_FRAME, DOMAINS_ALL, CODECS_ALL, 64, 8160, 1, 8160}, {CAP_SECURE_BITRATE, DOMAINS_ALL, CODECS_ALL, 1, 35000000, 1, 20000000}, /* All intra encoding usecase specific */ {CAP_ALLINTRA_MAX_FPS, ENC, H264|HEVC, 1, 60, 1, 30}, /* Image specific */ {CAP_HEVC_IMAGE_FRAME_WIDTH, ENC, HEVC, 128, 512, 2, 512}, {CAP_HEVC_IMAGE_FRAME_HEIGHT, ENC, HEVC, 128, 512, 2, 512}, Loading @@ -264,13 +273,16 @@ static struct msm_vidc_codec_capability bengal_capabilities_v1[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_5, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1}, /* Level for AVC and HEVC decoder specific */ /* Level for AVC, HEVC and VP9 decoder specific */ {CAP_H264_LEVEL, DEC, H264, V4L2_MPEG_VIDEO_H264_LEVEL_1_0, V4L2_MPEG_VIDEO_H264_LEVEL_5_0, 1, V4L2_MPEG_VIDEO_H264_LEVEL_4_1}, {CAP_HEVC_LEVEL, DEC, HEVC, V4L2_MPEG_VIDEO_HEVC_LEVEL_1, V4L2_MPEG_VIDEO_HEVC_LEVEL_5, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1}, {CAP_VP9_LEVEL, DEC, VP9, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_UNUSED, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_5, 1, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_5}, }; static struct msm_vidc_codec_capability holi_capabilities[] = { Loading Loading @@ -333,13 +345,16 @@ static struct msm_vidc_codec_capability holi_capabilities[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_5, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1}, /* Level for AVC and HEVC decoder specific */ /* Level for AVC, HEVC and VP9 decoder specific */ {CAP_H264_LEVEL, DEC, H264, V4L2_MPEG_VIDEO_H264_LEVEL_1_0, V4L2_MPEG_VIDEO_H264_LEVEL_5_0, 1, V4L2_MPEG_VIDEO_H264_LEVEL_4_1}, {CAP_HEVC_LEVEL, DEC, HEVC, V4L2_MPEG_VIDEO_HEVC_LEVEL_1, V4L2_MPEG_VIDEO_HEVC_LEVEL_5, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1}, {CAP_VP9_LEVEL, DEC, VP9, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_UNUSED, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_5, 1, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_5}, }; static struct msm_vidc_codec_capability scuba_capabilities[] = { Loading Loading @@ -402,13 +417,16 @@ static struct msm_vidc_codec_capability scuba_capabilities[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_5, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1}, /* Level for AVC and HEVC decoder specific */ /* Level for AVC, HEVC and VP9 decoder specific */ {CAP_H264_LEVEL, DEC, H264, V4L2_MPEG_VIDEO_H264_LEVEL_1_0, V4L2_MPEG_VIDEO_H264_LEVEL_5_0, 1, V4L2_MPEG_VIDEO_H264_LEVEL_4_1}, {CAP_HEVC_LEVEL, DEC, HEVC, V4L2_MPEG_VIDEO_HEVC_LEVEL_1, V4L2_MPEG_VIDEO_HEVC_LEVEL_5, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1}, {CAP_VP9_LEVEL, DEC, VP9, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_UNUSED, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_5, 1, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_5}, }; static struct msm_vidc_codec_capability lahaina_capabilities[] = { Loading Loading @@ -512,13 +530,16 @@ static struct msm_vidc_codec_capability lahaina_capabilities[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_6, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_6}, /* Level for AVC and HEVC decoder specific */ /* Level for AVC, HEVC and VP9 decoder specific */ {CAP_H264_LEVEL, DEC, H264, V4L2_MPEG_VIDEO_H264_LEVEL_1_0, V4L2_MPEG_VIDEO_H264_LEVEL_6_1, 1, V4L2_MPEG_VIDEO_H264_LEVEL_5_0}, {CAP_HEVC_LEVEL, DEC, HEVC, V4L2_MPEG_VIDEO_HEVC_LEVEL_1, V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_5}, {CAP_VP9_LEVEL, DEC, VP9, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_UNUSED, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_51, 1, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_51}, }; static struct msm_vidc_codec_capability yupik_capabilities_v0[] = { Loading Loading @@ -627,13 +648,16 @@ static struct msm_vidc_codec_capability yupik_capabilities_v0[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_5, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4}, /* Level for AVC and HEVC decoder specific */ /* Level for AVC, HEVC and VP9 decoder specific */ {CAP_H264_LEVEL, DEC, H264, V4L2_MPEG_VIDEO_H264_LEVEL_1_0, V4L2_MPEG_VIDEO_H264_LEVEL_5_2, 1, V4L2_MPEG_VIDEO_H264_LEVEL_4_0}, {CAP_HEVC_LEVEL, DEC, HEVC, V4L2_MPEG_VIDEO_HEVC_LEVEL_1, V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4}, {CAP_VP9_LEVEL, DEC, VP9, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_UNUSED, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_51, 1, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_51}, }; static struct msm_vidc_codec_capability yupik_capabilities_v1[] = { Loading Loading @@ -735,13 +759,16 @@ static struct msm_vidc_codec_capability yupik_capabilities_v1[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_5, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4}, /* Level for AVC and HEVC decoder specific */ /* Level for AVC, HEVC and VP9 decoder specific */ {CAP_H264_LEVEL, DEC, H264, V4L2_MPEG_VIDEO_H264_LEVEL_1_0, V4L2_MPEG_VIDEO_H264_LEVEL_5_2, 1, V4L2_MPEG_VIDEO_H264_LEVEL_4_0}, {CAP_HEVC_LEVEL, DEC, HEVC, V4L2_MPEG_VIDEO_HEVC_LEVEL_1, V4L2_MPEG_VIDEO_HEVC_LEVEL_5, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4}, {CAP_VP9_LEVEL, DEC, VP9, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_UNUSED, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_5, 1, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_5}, }; static struct msm_vidc_codec_capability shima_capabilities_v0[] = { Loading Loading @@ -848,13 +875,16 @@ static struct msm_vidc_codec_capability shima_capabilities_v0[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4}, /* Level for AVC and HEVC decoder specific */ /* Level for AVC, HEVC and VP9 decoder specific */ {CAP_H264_LEVEL, DEC, H264, V4L2_MPEG_VIDEO_H264_LEVEL_1_0, V4L2_MPEG_VIDEO_H264_LEVEL_6_0, 1, V4L2_MPEG_VIDEO_H264_LEVEL_4_0}, {CAP_HEVC_LEVEL, DEC, HEVC, V4L2_MPEG_VIDEO_HEVC_LEVEL_1, V4L2_MPEG_VIDEO_HEVC_LEVEL_6, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4}, {CAP_VP9_LEVEL, DEC, VP9, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_UNUSED, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_51, 1, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_51}, }; static struct msm_vidc_codec_capability shima_capabilities_v1[] = { Loading Loading @@ -955,13 +985,16 @@ static struct msm_vidc_codec_capability shima_capabilities_v1[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4}, /* Level for AVC and HEVC decoder specific */ /* Level for AVC, HEVC and VP9 decoder specific */ {CAP_H264_LEVEL, DEC, H264, V4L2_MPEG_VIDEO_H264_LEVEL_1_0, V4L2_MPEG_VIDEO_H264_LEVEL_5_2, 1, V4L2_MPEG_VIDEO_H264_LEVEL_4_0}, {CAP_HEVC_LEVEL, DEC, HEVC, V4L2_MPEG_VIDEO_HEVC_LEVEL_1, V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4}, {CAP_VP9_LEVEL, DEC, VP9, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_UNUSED, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_51, 1, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_51}, }; static struct msm_vidc_codec_capability shima_capabilities_v2[] = { Loading Loading @@ -1061,13 +1094,16 @@ static struct msm_vidc_codec_capability shima_capabilities_v2[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_5, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4}, /* Level for AVC and HEVC decoder specific */ /* Level for AVC, HEVC and VP9 decoder specific */ {CAP_H264_LEVEL, DEC, H264, V4L2_MPEG_VIDEO_H264_LEVEL_1_0, V4L2_MPEG_VIDEO_H264_LEVEL_5_1, 1, V4L2_MPEG_VIDEO_H264_LEVEL_4_0}, {CAP_HEVC_LEVEL, DEC, HEVC, V4L2_MPEG_VIDEO_HEVC_LEVEL_1, V4L2_MPEG_VIDEO_HEVC_LEVEL_5, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4}, {CAP_VP9_LEVEL, DEC, VP9, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_UNUSED, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_51, 1, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_51}, }; /* Generally Iris2 VPSS only support 8 multiple encoding if Loading Loading @@ -1538,6 +1574,10 @@ static struct msm_vidc_common_data bengal_common_data_v0[] = { .key = "qcom,max-image-load", .value = 262144, /* ((8192x8192)/256)@1fps */ }, { .key = "qcom,max-mbpf", .value = 65280,/* ((3840x2176)/256) x 2 */ }, { .key = "qcom,max-hq-mbs-per-frame", .value = 8160, Loading Loading @@ -1574,6 +1614,10 @@ static struct msm_vidc_common_data bengal_common_data_v0[] = { .key = "qcom,vpp_delay_supported", .value = 0, }, { .key = "qcom,no-cvp", .value = 1, }, }; static struct msm_vidc_common_data bengal_common_data_v1[] = { Loading Loading @@ -1605,6 +1649,10 @@ static struct msm_vidc_common_data bengal_common_data_v1[] = { .key = "qcom,max-image-load", .value = 262144, /* ((8192x8192)/256)@1fps */ }, { .key = "qcom,max-mbpf", .value = 65280,/* ((3840x2176)/256) x 2 */ }, { .key = "qcom,max-hq-mbs-per-frame", .value = 8160, Loading Loading @@ -1641,6 +1689,10 @@ static struct msm_vidc_common_data bengal_common_data_v1[] = { .key = "qcom,vpp_delay_supported", .value = 0, }, { .key = "qcom,no-cvp", .value = 1, }, }; static struct msm_vidc_common_data shima_common_data_v0[] = { Loading Loading @@ -2304,6 +2356,7 @@ static struct msm_vidc_platform_data scuba_data = { .codec_caps_count = ARRAY_SIZE(scuba_capabilities), .vpss_caps = NULL, .vpss_caps_count = 0, .max_inst_count = MAX_SUPPORTED_INSTANCES, }; static const struct of_device_id msm_vidc_dt_device[] = { Loading msm/vidc/vidc_hfi_api.h +1 −0 Original line number Diff line number Diff line Loading @@ -257,6 +257,7 @@ enum hal_capability { CAP_HEIC_IMAGE_FRAME_HEIGHT, CAP_H264_LEVEL, CAP_HEVC_LEVEL, CAP_VP9_LEVEL, CAP_MAX, }; Loading Loading
msm/vidc/msm_vidc_common.c +3 −0 Original line number Diff line number Diff line Loading @@ -1407,6 +1407,9 @@ static void msm_vidc_comm_update_ctrl_limits(struct msm_vidc_inst *inst) msm_vidc_comm_update_ctrl(inst, V4L2_CID_MPEG_VIDEO_HEVC_LEVEL, &inst->capability.cap[CAP_HEVC_LEVEL]); msm_vidc_comm_update_ctrl(inst, V4L2_CID_MPEG_VIDC_VIDEO_VP9_LEVEL, &inst->capability.cap[CAP_VP9_LEVEL]); /* * Default value of level is unknown, but since we are not * using unknown value while updating level controls, we need Loading
msm/vidc/msm_vidc_platform.c +63 −10 Original line number Diff line number Diff line Loading @@ -181,6 +181,9 @@ static struct msm_vidc_codec_capability bengal_capabilities_v0[] = { {CAP_SECURE_MBS_PER_FRAME, DOMAINS_ALL, CODECS_ALL, 64, 8160, 1, 8160}, {CAP_SECURE_BITRATE, DOMAINS_ALL, CODECS_ALL, 1, 35000000, 1, 20000000}, /* All intra encoding usecase specific */ {CAP_ALLINTRA_MAX_FPS, ENC, H264|HEVC, 1, 60, 1, 30}, /* Image specific */ {CAP_HEVC_IMAGE_FRAME_WIDTH, ENC, HEVC, 128, 512, 2, 512}, {CAP_HEVC_IMAGE_FRAME_HEIGHT, ENC, HEVC, 128, 512, 2, 512}, Loading @@ -200,13 +203,16 @@ static struct msm_vidc_codec_capability bengal_capabilities_v0[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_5, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1}, /* Level for AVC and HEVC decoder specific */ /* Level for AVC, HEVC and VP9 decoder specific */ {CAP_H264_LEVEL, DEC, H264, V4L2_MPEG_VIDEO_H264_LEVEL_1_0, V4L2_MPEG_VIDEO_H264_LEVEL_5_0, 1, V4L2_MPEG_VIDEO_H264_LEVEL_4_1}, {CAP_HEVC_LEVEL, DEC, HEVC, V4L2_MPEG_VIDEO_HEVC_LEVEL_1, V4L2_MPEG_VIDEO_HEVC_LEVEL_5, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1}, {CAP_VP9_LEVEL, DEC, VP9, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_UNUSED, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_5, 1, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_5}, }; static struct msm_vidc_codec_capability bengal_capabilities_v1[] = { Loading Loading @@ -245,6 +251,9 @@ static struct msm_vidc_codec_capability bengal_capabilities_v1[] = { {CAP_SECURE_MBS_PER_FRAME, DOMAINS_ALL, CODECS_ALL, 64, 8160, 1, 8160}, {CAP_SECURE_BITRATE, DOMAINS_ALL, CODECS_ALL, 1, 35000000, 1, 20000000}, /* All intra encoding usecase specific */ {CAP_ALLINTRA_MAX_FPS, ENC, H264|HEVC, 1, 60, 1, 30}, /* Image specific */ {CAP_HEVC_IMAGE_FRAME_WIDTH, ENC, HEVC, 128, 512, 2, 512}, {CAP_HEVC_IMAGE_FRAME_HEIGHT, ENC, HEVC, 128, 512, 2, 512}, Loading @@ -264,13 +273,16 @@ static struct msm_vidc_codec_capability bengal_capabilities_v1[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_5, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1}, /* Level for AVC and HEVC decoder specific */ /* Level for AVC, HEVC and VP9 decoder specific */ {CAP_H264_LEVEL, DEC, H264, V4L2_MPEG_VIDEO_H264_LEVEL_1_0, V4L2_MPEG_VIDEO_H264_LEVEL_5_0, 1, V4L2_MPEG_VIDEO_H264_LEVEL_4_1}, {CAP_HEVC_LEVEL, DEC, HEVC, V4L2_MPEG_VIDEO_HEVC_LEVEL_1, V4L2_MPEG_VIDEO_HEVC_LEVEL_5, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1}, {CAP_VP9_LEVEL, DEC, VP9, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_UNUSED, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_5, 1, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_5}, }; static struct msm_vidc_codec_capability holi_capabilities[] = { Loading Loading @@ -333,13 +345,16 @@ static struct msm_vidc_codec_capability holi_capabilities[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_5, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1}, /* Level for AVC and HEVC decoder specific */ /* Level for AVC, HEVC and VP9 decoder specific */ {CAP_H264_LEVEL, DEC, H264, V4L2_MPEG_VIDEO_H264_LEVEL_1_0, V4L2_MPEG_VIDEO_H264_LEVEL_5_0, 1, V4L2_MPEG_VIDEO_H264_LEVEL_4_1}, {CAP_HEVC_LEVEL, DEC, HEVC, V4L2_MPEG_VIDEO_HEVC_LEVEL_1, V4L2_MPEG_VIDEO_HEVC_LEVEL_5, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1}, {CAP_VP9_LEVEL, DEC, VP9, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_UNUSED, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_5, 1, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_5}, }; static struct msm_vidc_codec_capability scuba_capabilities[] = { Loading Loading @@ -402,13 +417,16 @@ static struct msm_vidc_codec_capability scuba_capabilities[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_5, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1}, /* Level for AVC and HEVC decoder specific */ /* Level for AVC, HEVC and VP9 decoder specific */ {CAP_H264_LEVEL, DEC, H264, V4L2_MPEG_VIDEO_H264_LEVEL_1_0, V4L2_MPEG_VIDEO_H264_LEVEL_5_0, 1, V4L2_MPEG_VIDEO_H264_LEVEL_4_1}, {CAP_HEVC_LEVEL, DEC, HEVC, V4L2_MPEG_VIDEO_HEVC_LEVEL_1, V4L2_MPEG_VIDEO_HEVC_LEVEL_5, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1}, {CAP_VP9_LEVEL, DEC, VP9, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_UNUSED, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_5, 1, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_5}, }; static struct msm_vidc_codec_capability lahaina_capabilities[] = { Loading Loading @@ -512,13 +530,16 @@ static struct msm_vidc_codec_capability lahaina_capabilities[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_6, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_6}, /* Level for AVC and HEVC decoder specific */ /* Level for AVC, HEVC and VP9 decoder specific */ {CAP_H264_LEVEL, DEC, H264, V4L2_MPEG_VIDEO_H264_LEVEL_1_0, V4L2_MPEG_VIDEO_H264_LEVEL_6_1, 1, V4L2_MPEG_VIDEO_H264_LEVEL_5_0}, {CAP_HEVC_LEVEL, DEC, HEVC, V4L2_MPEG_VIDEO_HEVC_LEVEL_1, V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_5}, {CAP_VP9_LEVEL, DEC, VP9, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_UNUSED, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_51, 1, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_51}, }; static struct msm_vidc_codec_capability yupik_capabilities_v0[] = { Loading Loading @@ -627,13 +648,16 @@ static struct msm_vidc_codec_capability yupik_capabilities_v0[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_5, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4}, /* Level for AVC and HEVC decoder specific */ /* Level for AVC, HEVC and VP9 decoder specific */ {CAP_H264_LEVEL, DEC, H264, V4L2_MPEG_VIDEO_H264_LEVEL_1_0, V4L2_MPEG_VIDEO_H264_LEVEL_5_2, 1, V4L2_MPEG_VIDEO_H264_LEVEL_4_0}, {CAP_HEVC_LEVEL, DEC, HEVC, V4L2_MPEG_VIDEO_HEVC_LEVEL_1, V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4}, {CAP_VP9_LEVEL, DEC, VP9, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_UNUSED, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_51, 1, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_51}, }; static struct msm_vidc_codec_capability yupik_capabilities_v1[] = { Loading Loading @@ -735,13 +759,16 @@ static struct msm_vidc_codec_capability yupik_capabilities_v1[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_5, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4}, /* Level for AVC and HEVC decoder specific */ /* Level for AVC, HEVC and VP9 decoder specific */ {CAP_H264_LEVEL, DEC, H264, V4L2_MPEG_VIDEO_H264_LEVEL_1_0, V4L2_MPEG_VIDEO_H264_LEVEL_5_2, 1, V4L2_MPEG_VIDEO_H264_LEVEL_4_0}, {CAP_HEVC_LEVEL, DEC, HEVC, V4L2_MPEG_VIDEO_HEVC_LEVEL_1, V4L2_MPEG_VIDEO_HEVC_LEVEL_5, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4}, {CAP_VP9_LEVEL, DEC, VP9, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_UNUSED, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_5, 1, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_5}, }; static struct msm_vidc_codec_capability shima_capabilities_v0[] = { Loading Loading @@ -848,13 +875,16 @@ static struct msm_vidc_codec_capability shima_capabilities_v0[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4}, /* Level for AVC and HEVC decoder specific */ /* Level for AVC, HEVC and VP9 decoder specific */ {CAP_H264_LEVEL, DEC, H264, V4L2_MPEG_VIDEO_H264_LEVEL_1_0, V4L2_MPEG_VIDEO_H264_LEVEL_6_0, 1, V4L2_MPEG_VIDEO_H264_LEVEL_4_0}, {CAP_HEVC_LEVEL, DEC, HEVC, V4L2_MPEG_VIDEO_HEVC_LEVEL_1, V4L2_MPEG_VIDEO_HEVC_LEVEL_6, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4}, {CAP_VP9_LEVEL, DEC, VP9, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_UNUSED, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_51, 1, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_51}, }; static struct msm_vidc_codec_capability shima_capabilities_v1[] = { Loading Loading @@ -955,13 +985,16 @@ static struct msm_vidc_codec_capability shima_capabilities_v1[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4}, /* Level for AVC and HEVC decoder specific */ /* Level for AVC, HEVC and VP9 decoder specific */ {CAP_H264_LEVEL, DEC, H264, V4L2_MPEG_VIDEO_H264_LEVEL_1_0, V4L2_MPEG_VIDEO_H264_LEVEL_5_2, 1, V4L2_MPEG_VIDEO_H264_LEVEL_4_0}, {CAP_HEVC_LEVEL, DEC, HEVC, V4L2_MPEG_VIDEO_HEVC_LEVEL_1, V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4}, {CAP_VP9_LEVEL, DEC, VP9, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_UNUSED, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_51, 1, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_51}, }; static struct msm_vidc_codec_capability shima_capabilities_v2[] = { Loading Loading @@ -1061,13 +1094,16 @@ static struct msm_vidc_codec_capability shima_capabilities_v2[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_5, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4}, /* Level for AVC and HEVC decoder specific */ /* Level for AVC, HEVC and VP9 decoder specific */ {CAP_H264_LEVEL, DEC, H264, V4L2_MPEG_VIDEO_H264_LEVEL_1_0, V4L2_MPEG_VIDEO_H264_LEVEL_5_1, 1, V4L2_MPEG_VIDEO_H264_LEVEL_4_0}, {CAP_HEVC_LEVEL, DEC, HEVC, V4L2_MPEG_VIDEO_HEVC_LEVEL_1, V4L2_MPEG_VIDEO_HEVC_LEVEL_5, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_4}, {CAP_VP9_LEVEL, DEC, VP9, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_UNUSED, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_51, 1, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_51}, }; /* Generally Iris2 VPSS only support 8 multiple encoding if Loading Loading @@ -1538,6 +1574,10 @@ static struct msm_vidc_common_data bengal_common_data_v0[] = { .key = "qcom,max-image-load", .value = 262144, /* ((8192x8192)/256)@1fps */ }, { .key = "qcom,max-mbpf", .value = 65280,/* ((3840x2176)/256) x 2 */ }, { .key = "qcom,max-hq-mbs-per-frame", .value = 8160, Loading Loading @@ -1574,6 +1614,10 @@ static struct msm_vidc_common_data bengal_common_data_v0[] = { .key = "qcom,vpp_delay_supported", .value = 0, }, { .key = "qcom,no-cvp", .value = 1, }, }; static struct msm_vidc_common_data bengal_common_data_v1[] = { Loading Loading @@ -1605,6 +1649,10 @@ static struct msm_vidc_common_data bengal_common_data_v1[] = { .key = "qcom,max-image-load", .value = 262144, /* ((8192x8192)/256)@1fps */ }, { .key = "qcom,max-mbpf", .value = 65280,/* ((3840x2176)/256) x 2 */ }, { .key = "qcom,max-hq-mbs-per-frame", .value = 8160, Loading Loading @@ -1641,6 +1689,10 @@ static struct msm_vidc_common_data bengal_common_data_v1[] = { .key = "qcom,vpp_delay_supported", .value = 0, }, { .key = "qcom,no-cvp", .value = 1, }, }; static struct msm_vidc_common_data shima_common_data_v0[] = { Loading Loading @@ -2304,6 +2356,7 @@ static struct msm_vidc_platform_data scuba_data = { .codec_caps_count = ARRAY_SIZE(scuba_capabilities), .vpss_caps = NULL, .vpss_caps_count = 0, .max_inst_count = MAX_SUPPORTED_INSTANCES, }; static const struct of_device_id msm_vidc_dt_device[] = { Loading
msm/vidc/vidc_hfi_api.h +1 −0 Original line number Diff line number Diff line Loading @@ -257,6 +257,7 @@ enum hal_capability { CAP_HEIC_IMAGE_FRAME_HEIGHT, CAP_H264_LEVEL, CAP_HEVC_LEVEL, CAP_VP9_LEVEL, CAP_MAX, }; Loading