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

Commit 2ff30b20 authored by Jorge Solano Altamirano's avatar Jorge Solano Altamirano
Browse files

msm: vidc: Add support to request frame level QP information



The resulting QP information for H264 is the slice level
QP averaged over whole frame; for all other codecs its
frame level QP.

Change-Id: I288904b05d886c1e94fc113b8bd3fba5b13b48f3
Signed-off-by: default avatarJorge Solano Altamirano <jsolano@codeaurora.org>
parent 1cae95b2
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -376,6 +376,9 @@ static int get_hfi_extradata_index(enum hal_extradata_id index)
	case HAL_EXTRADATA_STREAM_USERDATA:
		ret = HFI_PROPERTY_PARAM_VDEC_STREAM_USERDATA_EXTRADATA;
		break;
	case HAL_EXTRADATA_FRAME_QP:
		ret = HFI_PROPERTY_PARAM_VDEC_FRAME_QP_EXTRADATA;
		break;
	default:
		dprintk(VIDC_WARN, "Extradata index not found: %d\n", index);
		break;
+3 −2
Original line number Diff line number Diff line
@@ -255,7 +255,7 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
		.name = "Extradata Type",
		.type = V4L2_CTRL_TYPE_MENU,
		.minimum = V4L2_MPEG_VIDC_EXTRADATA_NONE,
		.maximum = V4L2_MPEG_VIDC_EXTRADATA_STREAM_USERDATA,
		.maximum = V4L2_MPEG_VIDC_EXTRADATA_FRAME_QP,
		.default_value = V4L2_MPEG_VIDC_EXTRADATA_NONE,
		.menu_skip_mask = ~(
			(1 << V4L2_MPEG_VIDC_EXTRADATA_NONE) |
@@ -275,7 +275,8 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
			(1 << V4L2_MPEG_VIDC_INDEX_EXTRADATA_DIGITAL_ZOOM) |
			(1 << V4L2_MPEG_VIDC_INDEX_EXTRADATA_ASPECT_RATIO) |
			(1 << V4L2_MPEG_VIDC_EXTRADATA_MPEG2_SEQDISP) |
			(1 << V4L2_MPEG_VIDC_EXTRADATA_STREAM_USERDATA)
			(1 << V4L2_MPEG_VIDC_EXTRADATA_STREAM_USERDATA) |
			(1 << V4L2_MPEG_VIDC_EXTRADATA_FRAME_QP)
			),
		.qmenu = mpeg_video_vidc_extradata,
		.step = 0,
+3 −0
Original line number Diff line number Diff line
@@ -3180,6 +3180,9 @@ enum hal_extradata_id msm_comm_get_hal_extradata_index(
	case V4L2_MPEG_VIDC_EXTRADATA_STREAM_USERDATA:
		ret = HAL_EXTRADATA_STREAM_USERDATA;
		break;
	case V4L2_MPEG_VIDC_EXTRADATA_FRAME_QP:
		ret = HAL_EXTRADATA_FRAME_QP;
		break;
	default:
		dprintk(VIDC_WARN, "Extradata not found: %d\n", index);
		break;
+3 −0
Original line number Diff line number Diff line
@@ -80,6 +80,7 @@
#define HFI_EXTRADATA_RECOVERY_POINT_SEI	0x00000009
#define HFI_EXTRADATA_MPEG2_SEQDISP		0x0000000D
#define HFI_EXTRADATA_STREAM_USERDATA		0x0000000E
#define HFI_EXTRADATA_FRAME_QP			0x0000000F
#define HFI_EXTRADATA_MULTISLICE_INFO		0x7F100000
#define HFI_EXTRADATA_NUM_CONCEALED_MB		0x7F100001
#define HFI_EXTRADATA_INDEX					0x7F100002
@@ -199,6 +200,8 @@ struct hfi_extradata_header {
	(HFI_PROPERTY_PARAM_VDEC_OX_START + 0x016)
#define HFI_PROPERTY_PARAM_VDEC_STREAM_USERDATA_EXTRADATA \
	(HFI_PROPERTY_PARAM_VDEC_OX_START + 0x017)
#define HFI_PROPERTY_PARAM_VDEC_FRAME_QP_EXTRADATA \
	(HFI_PROPERTY_PARAM_VDEC_OX_START + 0x018)
#define HFI_PROPERTY_PARAM_VDEC_SCS_THRESHOLD \
	(HFI_PROPERTY_PARAM_VDEC_OX_START + 0x01A)

+1 −0
Original line number Diff line number Diff line
@@ -100,6 +100,7 @@ enum hal_extradata_id {
	HAL_EXTRADATA_ASPECT_RATIO,
	HAL_EXTRADATA_MPEG2_SEQDISP,
	HAL_EXTRADATA_STREAM_USERDATA,
	HAL_EXTRADATA_FRAME_QP,
};

enum hal_property {
Loading