[PATCH 08/18] media: coda: Add log to finish_encode if buffer is too small

From: Sergey Khimich
Date: Fri Mar 14 2025 - 11:31:52 EST


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