vp8/mt: reset worker mbd->corrupted at start of frame
Reset for keyframe, or all frames if error concealment
is enabled.
setup_decoding_thread_data() copies a fixed list of fields
from the main MACROBLOCKD into each worker's mb_row_di[i].mbd
at the start of every frame, but does not reset mbd->corrupted.
The worker MACROBLOCKDs are allocated once and persist for the
life of the decoder, whereas the main thread's xd->corrupted
is reset at the top of vp8_decode_frame().
If a worker's bool decoder runs past the end of its token
partition on one frame, all subsequent frames are reported as
corrupted even when well-formed.
Reset mbd->corrupted for every worker at the start of each
frame, mirroring the main-thread reset, but this should only
be done for keyframes or when error concealment is enabled.
Unittest added.
Bug: 504633668
Change-Id: I9120410035afedc77c4dbf868bcad5c534d98267
2 files changed