summaryrefslogtreecommitdiff
path: root/drivers/media/platform
diff options
context:
space:
mode:
authorHans Verkuil <hans.verkuil@cisco.com>2018-09-10 11:00:40 -0400
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>2018-09-24 09:12:06 -0400
commitb09d8b25f4d833a79c560b050db386ea9d87a288 (patch)
treeefc69ed240c97bd992d4e0f733b99f2e5126f231 /drivers/media/platform
parentd61b3b41014df01ef96a07a973ea56f55abfbe74 (diff)
media: vicodec: set state->info before calling the encode/decode funcs
state->info was NULL since I completely forgot to set state->info. Oops. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Reported-by: Ezequiel Garcia <ezequiel@collabora.com> Tested-by: Ezequiel Garcia <ezequiel@collabora.com> [hans.verkuil@cisco.com: re-add q_out which was removed by commit 703fe34bac] Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Diffstat (limited to 'drivers/media/platform')
-rw-r--r--drivers/media/platform/vicodec/vicodec-core.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/media/platform/vicodec/vicodec-core.c b/drivers/media/platform/vicodec/vicodec-core.c
index a044475d0469..152ac44b0277 100644
--- a/drivers/media/platform/vicodec/vicodec-core.c
+++ b/drivers/media/platform/vicodec/vicodec-core.c
@@ -175,12 +175,18 @@ static int device_process(struct vicodec_ctx *ctx,
}
if (ctx->is_enc) {
- unsigned int size = v4l2_fwht_encode(state, p_in, p_out);
+ struct vicodec_q_data *q_out;
- vb2_set_plane_payload(&out_vb->vb2_buf, 0, size);
+ q_out = get_q_data(ctx, V4L2_BUF_TYPE_VIDEO_OUTPUT);
+ state->info = q_out->info;
+ ret = v4l2_fwht_encode(state, p_in, p_out);
+ if (ret < 0)
+ return ret;
+ vb2_set_plane_payload(&out_vb->vb2_buf, 0, ret);
} else {
+ state->info = q_cap->info;
ret = v4l2_fwht_decode(state, p_in, p_out);
- if (ret)
+ if (ret < 0)
return ret;
vb2_set_plane_payload(&out_vb->vb2_buf, 0, q_cap->sizeimage);
}