X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fdcahuff.c;h=9fb42a675b1e359334fed8115efe7422d1299f5a;hb=1daa08bd96991d798ab883e049ef9177001efa98;hp=bea353021459b1b50016c9345e844cde622755ca;hpb=127cc6dd3d0b8ce8875aecacc5c2aaf45bf52243;p=ffmpeg diff --git a/libavcodec/dcahuff.c b/libavcodec/dcahuff.c index bea35302145..9fb42a675b1 100644 --- a/libavcodec/dcahuff.c +++ b/libavcodec/dcahuff.c @@ -1335,3 +1335,25 @@ av_cold void ff_dca_init_vlcs(void) vlcs_initialized = 1; } + +uint32_t ff_dca_vlc_calc_quant_bits(int *values, uint8_t n, uint8_t sel, uint8_t table) +{ + uint8_t i, id; + uint32_t sum = 0; + for (i = 0; i < n; i++) { + id = values[i] - bitalloc_offsets[table]; + av_assert0(id < bitalloc_sizes[table]); + sum += bitalloc_bits[table][sel][id]; + } + return sum; +} + +void ff_dca_vlc_enc_quant(PutBitContext *pb, int *values, uint8_t n, uint8_t sel, uint8_t table) +{ + uint8_t i, id; + for (i = 0; i < n; i++) { + id = values[i] - bitalloc_offsets[table]; + av_assert0(id < bitalloc_sizes[table]); + put_bits(pb, bitalloc_bits[table][sel][id], bitalloc_codes[table][sel][id]); + } +}