|
@@ -68,6 +68,7 @@ static const struct msm_vidc_cap_name cap_name_arr[] = {
|
|
{META_TIMESTAMP, "META_TIMESTAMP" },
|
|
{META_TIMESTAMP, "META_TIMESTAMP" },
|
|
{META_CONCEALED_MB_CNT, "META_CONCEALED_MB_CNT" },
|
|
{META_CONCEALED_MB_CNT, "META_CONCEALED_MB_CNT" },
|
|
{META_HIST_INFO, "META_HIST_INFO" },
|
|
{META_HIST_INFO, "META_HIST_INFO" },
|
|
|
|
+ {META_PICTURE_TYPE, "META_PICTURE_TYPE" },
|
|
{META_SEI_MASTERING_DISP, "META_SEI_MASTERING_DISP" },
|
|
{META_SEI_MASTERING_DISP, "META_SEI_MASTERING_DISP" },
|
|
{META_SEI_CLL, "META_SEI_CLL" },
|
|
{META_SEI_CLL, "META_SEI_CLL" },
|
|
{META_HDR10PLUS, "META_HDR10PLUS" },
|
|
{META_HDR10PLUS, "META_HDR10PLUS" },
|
|
@@ -1320,6 +1321,7 @@ bool msm_vidc_allow_s_ctrl(struct msm_vidc_inst *inst, u32 id)
|
|
case V4L2_CID_MPEG_VIDC_INPUT_METADATA_FD:
|
|
case V4L2_CID_MPEG_VIDC_INPUT_METADATA_FD:
|
|
case V4L2_CID_MPEG_VIDC_FRAME_RATE:
|
|
case V4L2_CID_MPEG_VIDC_FRAME_RATE:
|
|
case V4L2_CID_MPEG_VIDC_OPERATING_RATE:
|
|
case V4L2_CID_MPEG_VIDC_OPERATING_RATE:
|
|
|
|
+ case V4L2_CID_MPEG_VIDC_SW_FENCE_ID:
|
|
allow = true;
|
|
allow = true;
|
|
break;
|
|
break;
|
|
default:
|
|
default:
|
|
@@ -1408,6 +1410,7 @@ bool msm_vidc_allow_metadata_subscription(struct msm_vidc_inst *inst, u32 cap_id
|
|
case META_SEI_MASTERING_DISP:
|
|
case META_SEI_MASTERING_DISP:
|
|
case META_SEI_CLL:
|
|
case META_SEI_CLL:
|
|
case META_HDR10PLUS:
|
|
case META_HDR10PLUS:
|
|
|
|
+ case META_PICTURE_TYPE:
|
|
if (!is_meta_rx_inp_enabled(inst, META_OUTBUF_FENCE)) {
|
|
if (!is_meta_rx_inp_enabled(inst, META_OUTBUF_FENCE)) {
|
|
i_vpr_h(inst,
|
|
i_vpr_h(inst,
|
|
"%s: cap: %24s not allowed as output buffer fence is disabled\n",
|
|
"%s: cap: %24s not allowed as output buffer fence is disabled\n",
|
|
@@ -2098,9 +2101,8 @@ int msm_vidc_get_fence_fd(struct msm_vidc_inst *inst, int *fence_fd)
|
|
}
|
|
}
|
|
|
|
|
|
if (!found) {
|
|
if (!found) {
|
|
- i_vpr_e(inst, "%s: could not find matching fence for fence id: %d\n",
|
|
|
|
|
|
+ i_vpr_h(inst, "%s: could not find matching fence for fence id: %d\n",
|
|
__func__, inst->capabilities->cap[FENCE_ID].value);
|
|
__func__, inst->capabilities->cap[FENCE_ID].value);
|
|
- rc = -EINVAL;
|
|
|
|
goto exit;
|
|
goto exit;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -3893,6 +3895,9 @@ static int msm_vidc_v4l2_buffer_event(struct msm_vidc_inst *inst,
|
|
event_data = (struct v4l2_event_vidc_metadata *)event.u.data;
|
|
event_data = (struct v4l2_event_vidc_metadata *)event.u.data;
|
|
event_data->type = INPUT_META_PLANE;
|
|
event_data->type = INPUT_META_PLANE;
|
|
event_data->fd = buf->fd;
|
|
event_data->fd = buf->fd;
|
|
|
|
+ event_data->index = buf->index;
|
|
|
|
+ event_data->bytesused = buf->data_size;
|
|
|
|
+ event_data->offset = buf->data_offset;
|
|
|
|
|
|
v4l2_event_queue_fh(&inst->event_handler, &event);
|
|
v4l2_event_queue_fh(&inst->event_handler, &event);
|
|
|
|
|