[media] s5p-mfc: Add support for resolution change event
When a resolution change point is reached, queue an event to signal the userspace that a new set of buffers is required before decoding can continue. Signed-off-by: Pawel Osciak <posciak@chromium.org> Signed-off-by: Arun Kumar K <arun.kk@samsung.com> Acked-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Acked-by: Kamil Debski <k.debski@samsung.com> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
This commit is contained in:
parent
3cbe6e5bca
commit
0520e4cc3b
|
@ -342,8 +342,16 @@ static void s5p_mfc_handle_frame(struct s5p_mfc_ctx *ctx,
|
|||
/* All frames remaining in the buffer have been extracted */
|
||||
if (dst_frame_status == S5P_FIMV_DEC_STATUS_DECODING_EMPTY) {
|
||||
if (ctx->state == MFCINST_RES_CHANGE_FLUSH) {
|
||||
static const struct v4l2_event ev_src_ch = {
|
||||
.type = V4L2_EVENT_SOURCE_CHANGE,
|
||||
.u.src_change.changes =
|
||||
V4L2_EVENT_SRC_CH_RESOLUTION,
|
||||
};
|
||||
|
||||
s5p_mfc_handle_frame_all_extracted(ctx);
|
||||
ctx->state = MFCINST_RES_CHANGE_END;
|
||||
v4l2_event_queue_fh(&ctx->fh, &ev_src_ch);
|
||||
|
||||
goto leave_handle_frame;
|
||||
} else {
|
||||
s5p_mfc_handle_frame_all_extracted(ctx);
|
||||
|
|
|
@ -867,6 +867,8 @@ static int vidioc_subscribe_event(struct v4l2_fh *fh,
|
|||
switch (sub->type) {
|
||||
case V4L2_EVENT_EOS:
|
||||
return v4l2_event_subscribe(fh, sub, 2, NULL);
|
||||
case V4L2_EVENT_SOURCE_CHANGE:
|
||||
return v4l2_src_change_event_subscribe(fh, sub);
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue