the amount of REL_FRAME_BUFF event may be much bigger the BUFF_RDY
event.
it means that some frame buffer are not used for decoding,
and firmware just release it directly.
The frame who is need to skip is decoded but not ready.
Signed-off-by: ming_qian <ming.qian@nxp.com>
Reviewed-by: Shijie Qin <shijie.qin@nxp.com>
vpu_dbg(LVL_INFO, "warning: normal release and previous status %s, frame not for display, queue the buffer to list again\n",
bufstat[p_data_req->status]);
- if ((p_data_req->status == FRAME_DECODED || p_data_req->status == FRAME_FREE)) {
+ if (p_data_req->status == FRAME_DECODED) {
vpu_dec_skip_ts(ctx);
send_skip_event(ctx);
- add_buffer_to_queue(This, p_data_req);
}
+ add_buffer_to_queue(This, p_data_req);
}
if (p_data_req->status != FRAME_ALLOC) {
set_data_req_status(p_data_req, FRAME_RELEASE);