wavpack: Clip samples after shifting

It doesn't make much sense to clip pre-shift,
nor is it correct for proper decoding.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
This commit is contained in:
Derek Buitenhuis 2011-12-16 13:31:28 -05:00 committed by Anton Khirnov
parent 0b4c323213
commit 365e1ec26d

View File

@ -405,12 +405,12 @@ static inline int wv_get_value_integer(WavpackFrameContext *s, uint32_t *crc, in
} }
bit = (S & s->and) | s->or; bit = (S & s->and) | s->or;
bit = (((S + bit) << s->shift) - bit); bit = (((S + bit) << s->shift) - bit) << s->post_shift;
if(s->hybrid) if(s->hybrid)
bit = av_clip(bit, -s->hybrid_maxclip, s->hybrid_maxclip - 1); bit = av_clip(bit, -s->hybrid_maxclip, s->hybrid_maxclip - 1);
return bit << s->post_shift; return bit;
} }
static float wv_get_value_float(WavpackFrameContext *s, uint32_t *crc, int S) static float wv_get_value_float(WavpackFrameContext *s, uint32_t *crc, int S)