I noticed that when the video signal degrades, the display loops through old frames instead of just freezing on the last good one. This is pretty dangerous and annoying.
Looking at the code in src/main.cpp, I saw that __FRAME_THREAD__ already checks for errinfo and discard flags (lines 332-344) and logs them, but then still sends those bad frames to the display anyway at line 351:
MppBuffer buffer = mpp_frame_get_buffer(frame);
if (buffer) {
Changing that to:
if (buffer && !errinfo && !discard) {
fixes it.
I noticed that when the video signal degrades, the display loops through old frames instead of just freezing on the last good one. This is pretty dangerous and annoying.
Looking at the code in
src/main.cpp, I saw that__FRAME_THREAD__already checks forerrinfoanddiscardflags (lines 332-344) and logs them, but then still sends those bad frames to the display anyway at line 351:MppBuffer buffer = mpp_frame_get_buffer(frame); if (buffer) {Changing that to:
fixes it.