decoder/mad: simplify "return", eliminate check

This check was redundant, because we could only exit the loop when
ret==DECODE_OK.
decoder/mad: make variables more local
decoder/mad: simplify if/else chain
decoder/mad: move duplicate code to RecoverFrameError()