mirror of https://git.ffmpeg.org/ffmpeg.git
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:
parent
0b4c323213
commit
365e1ec26d
|
@ -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)
|
||||||
|
|
Loading…
Reference in New Issue