Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 446693d0 authored by Gaviraju Doddabettahalli Bettegowda's avatar Gaviraju Doddabettahalli Bettegowda Committed by Gerrit - the friendly Code Review server
Browse files

msm: vidc: update VP9 level ranges

Added changes to update decoder VP9 level ranges
According to the platform specific.

Change-Id: Ie0115bf255fa2edc2ebed047d095e086cb18b3e0
parent ebf28bcf
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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
+40 −10
Original line number Diff line number Diff line
@@ -203,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[] = {
@@ -270,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[] = {
@@ -339,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[] = {
@@ -408,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[] = {
@@ -518,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[] = {
@@ -633,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[] = {
@@ -741,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[] = {
@@ -854,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[] = {
@@ -961,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[] = {
@@ -1067,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
+1 −0
Original line number Diff line number Diff line
@@ -257,6 +257,7 @@ enum hal_capability {
	CAP_HEIC_IMAGE_FRAME_HEIGHT,
	CAP_H264_LEVEL,
	CAP_HEVC_LEVEL,
	CAP_VP9_LEVEL,
	CAP_MAX,
};