[mpp_enc]: Fix task queue metadata release issue

When encoder dequeue the completed task the input frame should be get
from metadata.

Change-Id: I134f89974e3655b8c40e358071a32ae4a0c28bc0
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
This commit is contained in:
Herman Chen
2021-02-25 13:57:03 +08:00
parent 22e73ba651
commit b21305dc02
2 changed files with 9 additions and 1 deletions

View File

@@ -186,10 +186,12 @@ static MPP_RET release_task_in_port(MppPort port)
MppTask mpp_task;
do {
ret = mpp_port_dequeue(port, &mpp_task);
ret = mpp_port_poll(port, MPP_POLL_NON_BLOCK);
if (ret)
break;
mpp_port_dequeue(port, &mpp_task);
mpp_assert(mpp_task);
if (mpp_task) {
packet = NULL;
frame = NULL;

View File

@@ -459,6 +459,12 @@ MPP_RET Mpp::put_frame(MppFrame frame)
}
mpp_assert(mInputTask);
if (mInputTask) {
MppFrame frm_out = NULL;
mpp_task_meta_get_frame(mInputTask, KEY_INPUT_FRAME, &frm_out);
mpp_assert(frm_out == frame);
}
RET:
mpp_stopwatch_record(stopwatch, "put_frame finish");