From e94bb8d269ff2d81b319f25db888a91621e2af71 Mon Sep 17 00:00:00 2001
From: Philipp Zabel
Date: Fri, 12 Apr 2019 11:51:26 -0400
Subject: [PATCH] media: coda: improve decoder job finished debug message
Print a single line containing the following information:
- which frame was decoded, including its type,
- if no frame was decoded, the reason (code) why
- which decoded frame was returned, copied out by either rotator or VODA,
- if no frame was returned, the reason (code) why, and
- the output queue sequence number, which is only useful in case
each queued coded buffer corresponds to exactly one frame.
Signed-off-by: Philipp Zabel
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab
---
drivers/media/platform/coda/coda-bit.c | 34 ++++++++++++++++++++++----
1 file changed, 29 insertions(+), 5 deletions(-)
diff --git a/drivers/media/platform/coda/coda-bit.c b/drivers/media/platform/coda/coda-bit.c
index a0dbee2262e9..228743b82ace 100644
--- a/drivers/media/platform/coda/coda-bit.c
+++ b/drivers/media/platform/coda/coda-bit.c
@@ -2246,12 +2246,36 @@ static void coda_finish_decode(struct coda_ctx *ctx)
else
coda_m2m_buf_done(ctx, dst_buf, VB2_BUF_STATE_DONE);
- coda_dbg(1, ctx, "job finished: decoded %c frame (%u/%u)\n",
- coda_frame_type_char(dst_buf->flags),
- dst_buf->sequence, ctx->qsequence);
+ if (decoded_idx >= 0 &&
+ decoded_idx < ctx->num_internal_frames) {
+ coda_dbg(1, ctx, "job finished: decoded %c frame %u, returned %c frame %u (%u/%u)%s\n",
+ coda_frame_type_char(ctx->frame_types[decoded_idx]),
+ ctx->frame_metas[decoded_idx].sequence,
+ coda_frame_type_char(dst_buf->flags),
+ ctx->frame_metas[ctx->display_idx].sequence,
+ dst_buf->sequence, ctx->qsequence,
+ (dst_buf->flags & V4L2_BUF_FLAG_LAST) ?
+ " (last)" : "");
+ } else {
+ coda_dbg(1, ctx, "job finished: no frame decoded (%d), returned %c frame %u (%u/%u)%s\n",
+ decoded_idx,
+ coda_frame_type_char(dst_buf->flags),
+ ctx->frame_metas[ctx->display_idx].sequence,
+ dst_buf->sequence, ctx->qsequence,
+ (dst_buf->flags & V4L2_BUF_FLAG_LAST) ?
+ " (last)" : "");
+ }
} else {
- coda_dbg(1, ctx, "job finished: no frame decoded (%u/%u)\n",
- ctx->osequence, ctx->qsequence);
+ if (decoded_idx >= 0 &&
+ decoded_idx < ctx->num_internal_frames) {
+ coda_dbg(1, ctx, "job finished: decoded %c frame %u, no frame returned (%d)\n",
+ coda_frame_type_char(ctx->frame_types[decoded_idx]),
+ ctx->frame_metas[decoded_idx].sequence,
+ ctx->display_idx);
+ } else {
+ coda_dbg(1, ctx, "job finished: no frame decoded (%d) or returned (%d)\n",
+ decoded_idx, ctx->display_idx);
+ }
}
/* The rotator will copy the current display frame next time */
--
2.30.2