From: Vladimir Yakovlev <vovchkir@xxxxxxxxx> CODA_RET_ENC_PIC_FLAG flag means that bitstream buffer size is not enough to save one frame data when buffer reset mode is used. If this flag is set, currently encoded bitstream is corrupted. Co-developed-by: Sergey Khimich <serghox@xxxxxxxxx> Signed-off-by: Sergey Khimich <serghox@xxxxxxxxx> Signed-off-by: Vladimir Yakovlev <vovchkir@xxxxxxxxx> --- drivers/media/platform/chips-media/coda/coda-bit.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/chips-media/coda/coda-bit.c b/drivers/media/platform/chips-media/coda/coda-bit.c index 3e3bb3d64ec9..515eb8be4b86 100644 --- a/drivers/media/platform/chips-media/coda/coda-bit.c +++ b/drivers/media/platform/chips-media/coda/coda-bit.c @@ -1641,6 +1641,7 @@ static void coda_finish_encode(struct coda_ctx *ctx) struct vb2_v4l2_buffer *src_buf, *dst_buf; struct coda_dev *dev = ctx->dev; u32 wr_ptr, start_ptr; + int val; if (ctx->aborting) return; @@ -1674,7 +1675,12 @@ static void coda_finish_encode(struct coda_ctx *ctx) coda_dbg(1, ctx, "frame size = %u\n", wr_ptr - start_ptr); coda_read(dev, CODA_RET_ENC_PIC_SLICE_NUM); - coda_read(dev, CODA_RET_ENC_PIC_FLAG); + val = coda_read(dev, CODA_RET_ENC_PIC_FLAG); + if (val > 0) { + v4l2_err(&dev->v4l2_dev, + "Encode fail. Encode buffer is too small\n"); + // TODO what to do next? + } dst_buf->flags &= ~(V4L2_BUF_FLAG_KEYFRAME | V4L2_BUF_FLAG_PFRAME | -- 2.30.2