diff --git a/libavcodec/wavpackenc.c b/libavcodec/wavpackenc.c index 98a011fe18..979b92165b 100644 --- a/libavcodec/wavpackenc.c +++ b/libavcodec/wavpackenc.c @@ -2216,8 +2216,7 @@ static void pack_float_sample(WavPackEncodeContext *s, int32_t *sample) } } else if (shift_count) { if (s->float_flags & FLOAT_SHIFT_SENT) { - int32_t data = get_mantissa(*sample) & ((1 << shift_count) - 1); - put_bits(pb, shift_count, data); + put_sbits(pb, shift_count, get_mantissa(*sample)); } else if (s->float_flags & FLOAT_SHIFT_SAME) { put_bits(pb, 1, get_mantissa(*sample) & 1); }