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

Commit 16a4d6e5 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: vidc: Add support for MBI extradata"

parents e5fc2c1c c09faee5
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -458,6 +458,9 @@ static int get_hfi_extradata_index(enum hal_extradata_id index)
	case HAL_EXTRADATA_LTR_INFO:
		ret = HFI_PROPERTY_PARAM_VENC_LTR_INFO;
		break;
	case HAL_EXTRADATA_METADATA_MBI:
		ret = HFI_PROPERTY_PARAM_VENC_MBI_DUMPING;
		break;
	default:
		dprintk(VIDC_WARN, "Extradata index not found: %d\n", index);
		break;
+19 −13
Original line number Diff line number Diff line
@@ -120,6 +120,7 @@ static const char *const mpeg_video_vidc_extradata[] = {
	"Extradata input crop",
	"Extradata digital zoom",
	"Extradata aspect ratio",
	"Extradata macroblock metadata",
};

static const char *const perf_level[] = {
@@ -687,7 +688,7 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		.name = "Extradata Type",
		.type = V4L2_CTRL_TYPE_MENU,
		.minimum = V4L2_MPEG_VIDC_EXTRADATA_NONE,
		.maximum = V4L2_MPEG_VIDC_EXTRADATA_LTR,
		.maximum = V4L2_MPEG_VIDC_EXTRADATA_METADATA_MBI,
		.default_value = V4L2_MPEG_VIDC_EXTRADATA_NONE,
		.menu_skip_mask = ~(
			(1 << V4L2_MPEG_VIDC_EXTRADATA_NONE) |
@@ -706,7 +707,8 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
			(1 << V4L2_MPEG_VIDC_EXTRADATA_INPUT_CROP) |
			(1 << V4L2_MPEG_VIDC_EXTRADATA_DIGITAL_ZOOM) |
			(1 << V4L2_MPEG_VIDC_EXTRADATA_ASPECT_RATIO) |
			(1 << V4L2_MPEG_VIDC_EXTRADATA_LTR)
			(1 << V4L2_MPEG_VIDC_EXTRADATA_LTR) |
			(1 << V4L2_MPEG_VIDC_EXTRADATA_METADATA_MBI)
			),
		.qmenu = mpeg_video_vidc_extradata,
		.step = 0,
@@ -962,29 +964,33 @@ static int msm_venc_queue_setup(struct vb2_queue *q,
			*num_buffers = buff_req->buffer_count_actual =
			max(*num_buffers, buff_req->buffer_count_actual);
		}
		if (*num_buffers < MIN_NUM_CAPTURE_BUFFERS)
			*num_buffers = MIN_NUM_CAPTURE_BUFFERS;

		if (*num_buffers > VIDEO_MAX_FRAME) {
			dprintk(VIDC_ERR,
				"Changing buffers requested, from %d to max"\
				" supported (%d) best effort encoding\n",
				*num_buffers, VIDEO_MAX_FRAME);
			*num_buffers = VIDEO_MAX_FRAME;
		if (*num_buffers < MIN_NUM_CAPTURE_BUFFERS ||
				*num_buffers > VIDEO_MAX_FRAME) {
			int temp = *num_buffers;

			*num_buffers = clamp_val(*num_buffers,
					MIN_NUM_CAPTURE_BUFFERS,
					VIDEO_MAX_FRAME);
			dprintk(VIDC_INFO,
				"Changing buffer count on CAPTURE_MPLANE from %d to %d for best effort encoding\n",
				temp, *num_buffers);
		}

		ctrl = v4l2_ctrl_find(&inst->ctrl_handler,
				V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA);
		if (ctrl)
			extradata = v4l2_ctrl_g_ctrl(ctrl);
		if ((extradata == V4L2_MPEG_VIDC_EXTRADATA_MULTISLICE_INFO) ||
			(extradata == V4L2_MPEG_VIDC_EXTRADATA_LTR))
		if (extradata != V4L2_MPEG_VIDC_EXTRADATA_NONE)
			*num_planes = *num_planes + 1;
		inst->fmts[CAPTURE_PORT]->num_planes = *num_planes;

		for (i = 0; i < *num_planes; i++) {
			sizes[i] = inst->fmts[CAPTURE_PORT]->get_frame_size(
					i, inst->prop.height[CAPTURE_PORT],
					inst->prop.width[CAPTURE_PORT]);
		}

		property_id = HAL_PARAM_BUFFER_COUNT_ACTUAL;
		new_buf_count.buffer_type = HAL_BUFFER_OUTPUT;
		new_buf_count.buffer_count_actual = *num_buffers;
+3 −0
Original line number Diff line number Diff line
@@ -3226,6 +3226,9 @@ enum hal_extradata_id msm_comm_get_hal_extradata_index(
	case V4L2_MPEG_VIDC_EXTRADATA_LTR:
		ret = HAL_EXTRADATA_LTR_INFO;
		break;
	case V4L2_MPEG_VIDC_EXTRADATA_METADATA_MBI:
		ret = HAL_EXTRADATA_METADATA_MBI;
		break;
	default:
		dprintk(VIDC_WARN, "Extradata not found: %d\n", index);
		break;
+3 −0
Original line number Diff line number Diff line
@@ -227,6 +227,9 @@ struct hfi_extradata_header {
	(HFI_PROPERTY_PARAM_VENC_OX_START + 0x002)
#define  HFI_PROPERTY_PARAM_VENC_LTR_INFO			\
	(HFI_PROPERTY_PARAM_VENC_OX_START + 0x003)
#define  HFI_PROPERTY_PARAM_VENC_MBI_DUMPING				\
	(HFI_PROPERTY_PARAM_VENC_OX_START + 0x005)

#define HFI_PROPERTY_CONFIG_VENC_OX_START				\
	(HFI_DOMAIN_BASE_VENC + HFI_ARCH_OX_OFFSET + 0x6000)
#define  HFI_PROPERTY_CONFIG_VENC_FRAME_QP				\
+1 −0
Original line number Diff line number Diff line
@@ -106,6 +106,7 @@ enum hal_extradata_id {
	HAL_EXTRADATA_INPUT_CROP,
	HAL_EXTRADATA_DIGITAL_ZOOM,
	HAL_EXTRADATA_LTR_INFO,
	HAL_EXTRADATA_METADATA_MBI,
};

enum hal_property {
Loading