Loading msm/vidc/msm_vidc_common.c +4 −0 Original line number Diff line number Diff line Loading @@ -1462,6 +1462,10 @@ 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]); /* Default value of level is unknown, but since we are not using unknown value while updating level controls, we need to reinitialize inst->level to HFI unknown value */ inst->level = HFI_LEVEL_UNKNOWN; } static void handle_session_init_done(enum hal_command_response cmd, void *data) Loading msm/vidc/msm_vidc_platform.c +18 −6 Original line number Diff line number Diff line Loading @@ -248,7 +248,11 @@ static struct msm_vidc_codec_capability lito_capabilities_v0[] = { {CAP_HEIC_IMAGE_FRAME_WIDTH, ENC, HEVC, 512, 8192, 1, 8192}, {CAP_HEIC_IMAGE_FRAME_HEIGHT, ENC, HEVC, 512, 8192, 1, 8192}, /* Level for AVC and HEVC encoder specific */ /* Level for AVC and HEVC encoder specific. Default for levels is UNKNOWN value. But if we use unknown value here to set as default, max value needs to be set to unknown as well, which creates a problem of allowing client to set higher level than supported */ {CAP_H264_LEVEL, ENC, H264, V4L2_MPEG_VIDEO_H264_LEVEL_1_0, V4L2_MPEG_VIDEO_H264_LEVEL_6_0, 1, V4L2_MPEG_VIDEO_H264_LEVEL_6_0}, Loading @@ -256,7 +260,7 @@ static struct msm_vidc_codec_capability lito_capabilities_v0[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_6, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_6}, /* Level for AVC, HEVC and VP9 decoder specific */ /* Level for AVC and HEVC 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}, Loading Loading @@ -338,7 +342,11 @@ static struct msm_vidc_codec_capability lito_capabilities_v1[] = { {CAP_HEIC_IMAGE_FRAME_WIDTH, ENC, HEVC, 512, 8192, 1, 8192}, {CAP_HEIC_IMAGE_FRAME_HEIGHT, ENC, HEVC, 512, 8192, 1, 8192}, /* Level for AVC and HEVC encoder specific */ /* Level for AVC and HEVC encoder specific. Default for levels is UNKNOWN value. But if we use unknown value here to set as default, max value needs to be set to unknown as well, which creates a problem of allowing client to set higher level than supported */ {CAP_H264_LEVEL, ENC, H264, V4L2_MPEG_VIDEO_H264_LEVEL_1_0, V4L2_MPEG_VIDEO_H264_LEVEL_6_0, 1, V4L2_MPEG_VIDEO_H264_LEVEL_6_0}, Loading @@ -346,7 +354,7 @@ static struct msm_vidc_codec_capability lito_capabilities_v1[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_6, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_6}, /* Level for AVC, HEVC and VP9 decoder specific */ /* Level for AVC and HEVC 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}, Loading Loading @@ -469,7 +477,11 @@ static struct msm_vidc_codec_capability kona_capabilities[] = { {CAP_HEIC_IMAGE_FRAME_WIDTH, ENC, HEVC, 512, 16384, 1, 16384}, {CAP_HEIC_IMAGE_FRAME_HEIGHT, ENC, HEVC, 512, 16384, 1, 16384}, /* Level for AVC and HEVC encoder specific */ /* Level for AVC and HEVC encoder specific. Default for levels is UNKNOWN value. But if we use unknown value here to set as default, max value needs to be set to unknown as well, which creates a problem of allowing client to set higher level than supported */ {CAP_H264_LEVEL, ENC, H264, V4L2_MPEG_VIDEO_H264_LEVEL_1_0, V4L2_MPEG_VIDEO_H264_LEVEL_6_0, 1, V4L2_MPEG_VIDEO_H264_LEVEL_6_0}, Loading @@ -477,7 +489,7 @@ static struct msm_vidc_codec_capability kona_capabilities[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_6, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_6}, /* Level for AVC, HEVC and VP9 decoder specific */ /* Level for AVC and HEVC 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}, Loading Loading
msm/vidc/msm_vidc_common.c +4 −0 Original line number Diff line number Diff line Loading @@ -1462,6 +1462,10 @@ 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]); /* Default value of level is unknown, but since we are not using unknown value while updating level controls, we need to reinitialize inst->level to HFI unknown value */ inst->level = HFI_LEVEL_UNKNOWN; } static void handle_session_init_done(enum hal_command_response cmd, void *data) Loading
msm/vidc/msm_vidc_platform.c +18 −6 Original line number Diff line number Diff line Loading @@ -248,7 +248,11 @@ static struct msm_vidc_codec_capability lito_capabilities_v0[] = { {CAP_HEIC_IMAGE_FRAME_WIDTH, ENC, HEVC, 512, 8192, 1, 8192}, {CAP_HEIC_IMAGE_FRAME_HEIGHT, ENC, HEVC, 512, 8192, 1, 8192}, /* Level for AVC and HEVC encoder specific */ /* Level for AVC and HEVC encoder specific. Default for levels is UNKNOWN value. But if we use unknown value here to set as default, max value needs to be set to unknown as well, which creates a problem of allowing client to set higher level than supported */ {CAP_H264_LEVEL, ENC, H264, V4L2_MPEG_VIDEO_H264_LEVEL_1_0, V4L2_MPEG_VIDEO_H264_LEVEL_6_0, 1, V4L2_MPEG_VIDEO_H264_LEVEL_6_0}, Loading @@ -256,7 +260,7 @@ static struct msm_vidc_codec_capability lito_capabilities_v0[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_6, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_6}, /* Level for AVC, HEVC and VP9 decoder specific */ /* Level for AVC and HEVC 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}, Loading Loading @@ -338,7 +342,11 @@ static struct msm_vidc_codec_capability lito_capabilities_v1[] = { {CAP_HEIC_IMAGE_FRAME_WIDTH, ENC, HEVC, 512, 8192, 1, 8192}, {CAP_HEIC_IMAGE_FRAME_HEIGHT, ENC, HEVC, 512, 8192, 1, 8192}, /* Level for AVC and HEVC encoder specific */ /* Level for AVC and HEVC encoder specific. Default for levels is UNKNOWN value. But if we use unknown value here to set as default, max value needs to be set to unknown as well, which creates a problem of allowing client to set higher level than supported */ {CAP_H264_LEVEL, ENC, H264, V4L2_MPEG_VIDEO_H264_LEVEL_1_0, V4L2_MPEG_VIDEO_H264_LEVEL_6_0, 1, V4L2_MPEG_VIDEO_H264_LEVEL_6_0}, Loading @@ -346,7 +354,7 @@ static struct msm_vidc_codec_capability lito_capabilities_v1[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_6, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_6}, /* Level for AVC, HEVC and VP9 decoder specific */ /* Level for AVC and HEVC 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}, Loading Loading @@ -469,7 +477,11 @@ static struct msm_vidc_codec_capability kona_capabilities[] = { {CAP_HEIC_IMAGE_FRAME_WIDTH, ENC, HEVC, 512, 16384, 1, 16384}, {CAP_HEIC_IMAGE_FRAME_HEIGHT, ENC, HEVC, 512, 16384, 1, 16384}, /* Level for AVC and HEVC encoder specific */ /* Level for AVC and HEVC encoder specific. Default for levels is UNKNOWN value. But if we use unknown value here to set as default, max value needs to be set to unknown as well, which creates a problem of allowing client to set higher level than supported */ {CAP_H264_LEVEL, ENC, H264, V4L2_MPEG_VIDEO_H264_LEVEL_1_0, V4L2_MPEG_VIDEO_H264_LEVEL_6_0, 1, V4L2_MPEG_VIDEO_H264_LEVEL_6_0}, Loading @@ -477,7 +489,7 @@ static struct msm_vidc_codec_capability kona_capabilities[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_6, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_6}, /* Level for AVC, HEVC and VP9 decoder specific */ /* Level for AVC and HEVC 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}, Loading