[Decode] Reusing retired temporal buffer other than empty buffer to improve the robustness with error stream.
The retired temporal buffer has meaningful data which is able to benefit error stream.
diff --git a/media_driver/media_driver_next/agnostic/common/codec/hal/dec/shared/bufferMgr/decode_reference_associated_buffer.h b/media_driver/media_driver_next/agnostic/common/codec/hal/dec/shared/bufferMgr/decode_reference_associated_buffer.h
index 6cc217b..5051ae7 100644
--- a/media_driver/media_driver_next/agnostic/common/codec/hal/dec/shared/bufferMgr/decode_reference_associated_buffer.h
+++ b/media_driver/media_driver_next/agnostic/common/codec/hal/dec/shared/bufferMgr/decode_reference_associated_buffer.h
@@ -239,9 +239,11 @@
}
else
{
- auto iter = m_aviableBuffers.begin();
- m_currentBuffer = *iter;
- m_aviableBuffers.erase(iter);
+ // The function UpdateRefList always attach the retired buffers to end of
+ // aviable buffer list, reusing those buffers could improve the health with
+ // error stream, so pick up the last element of list for current frame.
+ m_currentBuffer = m_aviableBuffers.back();
+ m_aviableBuffers.pop_back();
m_bufferOp.Resize(m_currentBuffer);
}