araw: fix overflows in 24-bit decoder
The high-order byte is promoted to 'int'. If the high-order bit is set, this results in an overflow (into the sign bit) when shifted by 24 bits to the left. This was flagged by the UB sanitiser. To fix that, promote all bytes to 32-bit unsigned first, to perform overflow-proof unsigned arithmetic.
Then to avoid aliasing errors, make sure the output is written as signed 32-bit values, since the decoder outputs S32N.
(cherry picked from commit 9260acab)