summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorming_qian <ming.qian@nxp.com>2018-11-28 10:37:24 +0800
committerBryan O'Donoghue <bryan.odonoghue@linaro.org>2019-05-01 17:43:25 +0100
commit1bb190375c88297a078e49d4cafa1751f2decf00 (patch)
tree3764a80db2b6085a1f69575dde85624086bd6b8f
parent666f176541445656a7dd3fd0b7cce067351a527f (diff)
MLK-20478:VPU Encoder:drop invalid frame
Signed-off-by: ming_qian <ming.qian@nxp.com>
-rw-r--r--drivers/mxc/vpu-encoder-b0/vpu_encoder_b0.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/mxc/vpu-encoder-b0/vpu_encoder_b0.c b/drivers/mxc/vpu-encoder-b0/vpu_encoder_b0.c
index 83e92b7e694e..3697818e0eaf 100644
--- a/drivers/mxc/vpu-encoder-b0/vpu_encoder_b0.c
+++ b/drivers/mxc/vpu-encoder-b0/vpu_encoder_b0.c
@@ -2114,6 +2114,7 @@ static int precheck_frame(struct vpu_ctx *ctx, struct vpu_frame_info *frame)
vpu_err("[%d][%d]'s frame is invalid, want %d but %d, drop\n",
ctx->core_dev->id, ctx->str_index,
frame->bytesleft, length);
+ add_rptr(frame, length);
return -EINVAL;
}
@@ -2234,6 +2235,7 @@ static bool process_frame_done(struct queue_data *queue)
frame->rptr = get_ptr(stream_buffer_desc->rptr);
if (precheck_frame(ctx, frame)) {
+ stream_buffer_desc->rptr = frame->rptr;
put_frame_idle(frame);
frame = NULL;
return true;