static int restore_weight(int8_t weight)
{
- int result;
+ int result = 8 * weight;
- if ((result = (int) weight << 3) > 0)
+ if (result > 0)
result += (result + 64) >> 7;
return result;
uint32_t dbits = count_bits(v);
if ((v += v >> 9) < (1 << 8)) {
- *result += (dbits << 8) + wp_log2_table[(v << (9 - dbits)) & 0xff];
+ *result += (dbits << 8) + ff_wp_log2_table[(v << (9 - dbits)) & 0xff];
} else {
- *result += dbits = (dbits << 8) + wp_log2_table[(v >> (dbits - 9)) & 0xff];
+ *result += dbits = (dbits << 8) + ff_wp_log2_table[(v >> (dbits - 9)) & 0xff];
if (limit && dbits >= limit)
return 1;
ret = wv_mono(s, samples_l, !s->num_terms, 1);
} else {
for (i = 0; i < nb_samples; i++)
- crc += (crc << 3) + (samples_l[i] << 1) + samples_l[i] + samples_r[i];
+ crc += (crc << 3) + ((uint32_t)samples_l[i] << 1) + samples_l[i] + samples_r[i];
if (s->num_passes)
ret = wv_stereo(s, samples_l, samples_r, !s->num_terms, 1);
}
encode_flush(s);
flush_put_bits(&s->pb);
- data_size = put_bits_count(&s->pb) >> 3;
+ data_size = put_bytes_output(&s->pb);
bytestream2_put_le24(&pb, (data_size + 1) >> 1);
bytestream2_skip_p(&pb, data_size);
if (data_size & 1)
else
pack_int32(s, s->orig_l, s->orig_r, nb_samples);
flush_put_bits(&s->pb);
- data_size = put_bits_count(&s->pb) >> 3;
+ data_size = put_bytes_output(&s->pb);
bytestream2_put_le24(&pb, (data_size + 5) >> 1);
bytestream2_put_le32(&pb, s->crc_x);
bytestream2_skip_p(&pb, data_size);
.version = LIBAVUTIL_VERSION_INT,
};
-AVCodec ff_wavpack_encoder = {
+const AVCodec ff_wavpack_encoder = {
.name = "wavpack",
.long_name = NULL_IF_CONFIG_SMALL("WavPack"),
.type = AVMEDIA_TYPE_AUDIO,