Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@gmail.com> --- libavcodec/qdm2_tablegen.h | 159 +++++++------------------------------ 1 file changed, 27 insertions(+), 132 deletions(-)
diff --git a/libavcodec/qdm2_tablegen.h b/libavcodec/qdm2_tablegen.h index 309bb4b53c..0e57902fc9 100644 --- a/libavcodec/qdm2_tablegen.h +++ b/libavcodec/qdm2_tablegen.h @@ -115,145 +115,40 @@ static const uint16_t qdm2_vlc_offs[] = { static VLC_TYPE qdm2_table[3838][2]; -static av_cold void qdm2_init_vlc(void) +static av_cold void build_vlc(VLC *vlc, int nb_bits, int nb_codes, int idx, + const uint8_t tab[][2]) { - vlc_tab_level.table = &qdm2_table[qdm2_vlc_offs[0]]; - vlc_tab_level.table_allocated = qdm2_vlc_offs[1] - qdm2_vlc_offs[0]; - ff_init_vlc_from_lengths(&vlc_tab_level, 8, 24, - &tab_level[0][1], 2, - &tab_level[0][0], 2, 1, 0, - INIT_VLC_USE_NEW_STATIC | INIT_VLC_LE); - - vlc_tab_diff.table = &qdm2_table[qdm2_vlc_offs[1]]; - vlc_tab_diff.table_allocated = qdm2_vlc_offs[2] - qdm2_vlc_offs[1]; - ff_init_vlc_from_lengths(&vlc_tab_diff, 8, 33, - &tab_diff[0][1], 2, - &tab_diff[0][0], 2, 1, 0, - INIT_VLC_USE_NEW_STATIC | INIT_VLC_LE); - - vlc_tab_run.table = &qdm2_table[qdm2_vlc_offs[2]]; - vlc_tab_run.table_allocated = qdm2_vlc_offs[3] - qdm2_vlc_offs[2]; - ff_init_vlc_from_lengths(&vlc_tab_run, 5, 6, - &tab_run[0][1], 2, - &tab_run[0][0], 2, 1, 0, - INIT_VLC_USE_NEW_STATIC | INIT_VLC_LE); - - fft_level_exp_alt_vlc.table = &qdm2_table[qdm2_vlc_offs[3]]; - fft_level_exp_alt_vlc.table_allocated = qdm2_vlc_offs[4] - - qdm2_vlc_offs[3]; - ff_init_vlc_from_lengths(&fft_level_exp_alt_vlc, 8, 28, - &fft_level_exp_alt[0][1], 2, - &fft_level_exp_alt[0][0], 2, 1, 0, - INIT_VLC_USE_NEW_STATIC | INIT_VLC_LE); - - fft_level_exp_vlc.table = &qdm2_table[qdm2_vlc_offs[4]]; - fft_level_exp_vlc.table_allocated = qdm2_vlc_offs[5] - qdm2_vlc_offs[4]; - ff_init_vlc_from_lengths(&fft_level_exp_vlc, 8, 20, - &fft_level_exp[0][1], 2, - &fft_level_exp[0][0], 2, 1, 0, - INIT_VLC_USE_NEW_STATIC | INIT_VLC_LE); - - fft_stereo_exp_vlc.table = &qdm2_table[qdm2_vlc_offs[5]]; - fft_stereo_exp_vlc.table_allocated = qdm2_vlc_offs[6] - - qdm2_vlc_offs[5]; - ff_init_vlc_from_lengths(&fft_stereo_exp_vlc, 6, 7, - &fft_stereo_exp[0][1], 2, - &fft_stereo_exp[0][0], 2, 1, 0, - INIT_VLC_USE_NEW_STATIC | INIT_VLC_LE); - - fft_stereo_phase_vlc.table = &qdm2_table[qdm2_vlc_offs[6]]; - fft_stereo_phase_vlc.table_allocated = qdm2_vlc_offs[7] - - qdm2_vlc_offs[6]; - ff_init_vlc_from_lengths(&fft_stereo_phase_vlc, 6, 9, - &fft_stereo_phase[0][1], 2, - &fft_stereo_phase[0][0], 2, 1, 0, - INIT_VLC_USE_NEW_STATIC | INIT_VLC_LE); - - vlc_tab_tone_level_idx_hi1.table = - &qdm2_table[qdm2_vlc_offs[7]]; - vlc_tab_tone_level_idx_hi1.table_allocated = qdm2_vlc_offs[8] - - qdm2_vlc_offs[7]; - ff_init_vlc_from_lengths(&vlc_tab_tone_level_idx_hi1, 8, 20, - &tab_tone_level_idx_hi1[0][1], 2, - &tab_tone_level_idx_hi1[0][0], 2, 1, 0, - INIT_VLC_USE_NEW_STATIC | INIT_VLC_LE); - - vlc_tab_tone_level_idx_mid.table = - &qdm2_table[qdm2_vlc_offs[8]]; - vlc_tab_tone_level_idx_mid.table_allocated = qdm2_vlc_offs[9] - - qdm2_vlc_offs[8]; - ff_init_vlc_from_lengths(&vlc_tab_tone_level_idx_mid, 8, 13, - &tab_tone_level_idx_mid[0][1], 2, - &tab_tone_level_idx_mid[0][0], 2, 1, 0, - INIT_VLC_USE_NEW_STATIC | INIT_VLC_LE); - - vlc_tab_tone_level_idx_hi2.table = - &qdm2_table[qdm2_vlc_offs[9]]; - vlc_tab_tone_level_idx_hi2.table_allocated = qdm2_vlc_offs[10] - - qdm2_vlc_offs[9]; - ff_init_vlc_from_lengths(&vlc_tab_tone_level_idx_hi2, 8, 18, - &tab_tone_level_idx_hi2[0][1], 2, - &tab_tone_level_idx_hi2[0][0], 2, 1, 0, - INIT_VLC_USE_NEW_STATIC | INIT_VLC_LE); - - vlc_tab_type30.table = &qdm2_table[qdm2_vlc_offs[10]]; - vlc_tab_type30.table_allocated = qdm2_vlc_offs[11] - qdm2_vlc_offs[10]; - ff_init_vlc_from_lengths(&vlc_tab_type30, 6, 9, - &tab_type30[0][1], 2, - &tab_type30[0][0], 2, 1, 0, - INIT_VLC_USE_NEW_STATIC | INIT_VLC_LE); + vlc->table = &qdm2_table[qdm2_vlc_offs[idx]]; + vlc->table_allocated = qdm2_vlc_offs[idx + 1] - qdm2_vlc_offs[idx]; + ff_init_vlc_from_lengths(vlc, nb_bits, nb_codes, + &tab[0][1], 2, &tab[0][0], 2, 1, + 0, INIT_VLC_USE_NEW_STATIC | INIT_VLC_OUTPUT_LE); +} - vlc_tab_type34.table = &qdm2_table[qdm2_vlc_offs[11]]; - vlc_tab_type34.table_allocated = qdm2_vlc_offs[12] - qdm2_vlc_offs[11]; - ff_init_vlc_from_lengths(&vlc_tab_type34, 5, 10, - &tab_type34[0][1], 2, - &tab_type34[0][0], 2, 1, 0, - INIT_VLC_USE_NEW_STATIC | INIT_VLC_LE); +static av_cold void qdm2_init_vlc(void) +{ + build_vlc(&vlc_tab_level, 8, 24, 0, tab_level); + build_vlc(&vlc_tab_diff, 8, 33, 1, tab_diff); + build_vlc(&vlc_tab_run, 5, 6, 2, tab_run); - vlc_tab_fft_tone_offset[0].table = - &qdm2_table[qdm2_vlc_offs[12]]; - vlc_tab_fft_tone_offset[0].table_allocated = qdm2_vlc_offs[13] - - qdm2_vlc_offs[12]; - ff_init_vlc_from_lengths(&vlc_tab_fft_tone_offset[0], 8, 23, - &tab_fft_tone_offset_0[0][1], 2, - &tab_fft_tone_offset_0[0][0], 2, 1, 0, - INIT_VLC_USE_NEW_STATIC | INIT_VLC_LE); + build_vlc(&fft_level_exp_alt_vlc, 8, 28, 3, fft_level_exp_alt); + build_vlc(&fft_level_exp_vlc, 8, 20, 4, fft_level_exp); - vlc_tab_fft_tone_offset[1].table = - &qdm2_table[qdm2_vlc_offs[13]]; - vlc_tab_fft_tone_offset[1].table_allocated = qdm2_vlc_offs[14] - - qdm2_vlc_offs[13]; - ff_init_vlc_from_lengths(&vlc_tab_fft_tone_offset[1], 8, 28, - &tab_fft_tone_offset_1[0][1], 2, - &tab_fft_tone_offset_1[0][0], 2, 1, 0, - INIT_VLC_USE_NEW_STATIC | INIT_VLC_LE); + build_vlc(&fft_stereo_exp_vlc, 6, 7, 5, fft_stereo_exp); + build_vlc(&fft_stereo_phase_vlc, 6, 9, 6, fft_stereo_phase); - vlc_tab_fft_tone_offset[2].table = - &qdm2_table[qdm2_vlc_offs[14]]; - vlc_tab_fft_tone_offset[2].table_allocated = qdm2_vlc_offs[15] - - qdm2_vlc_offs[14]; - ff_init_vlc_from_lengths(&vlc_tab_fft_tone_offset[2], 8, 31, - &tab_fft_tone_offset_2[0][1], 2, - &tab_fft_tone_offset_2[0][0], 2, 1, 0, - INIT_VLC_USE_NEW_STATIC | INIT_VLC_LE); + build_vlc(&vlc_tab_tone_level_idx_hi1, 8, 20, 7, tab_tone_level_idx_hi1); + build_vlc(&vlc_tab_tone_level_idx_mid, 8, 13, 8, tab_tone_level_idx_mid); + build_vlc(&vlc_tab_tone_level_idx_hi2, 8, 18, 9, tab_tone_level_idx_hi2); - vlc_tab_fft_tone_offset[3].table = - &qdm2_table[qdm2_vlc_offs[15]]; - vlc_tab_fft_tone_offset[3].table_allocated = qdm2_vlc_offs[16] - - qdm2_vlc_offs[15]; - ff_init_vlc_from_lengths(&vlc_tab_fft_tone_offset[3], 8, 34, - &tab_fft_tone_offset_3[0][1], 2, - &tab_fft_tone_offset_3[0][0], 2, 1, 0, - INIT_VLC_USE_NEW_STATIC | INIT_VLC_LE); + build_vlc(&vlc_tab_type30, 6, 9, 10, tab_type30); + build_vlc(&vlc_tab_type34, 5, 10, 11, tab_type34); - vlc_tab_fft_tone_offset[4].table = - &qdm2_table[qdm2_vlc_offs[16]]; - vlc_tab_fft_tone_offset[4].table_allocated = qdm2_vlc_offs[17] - - qdm2_vlc_offs[16]; - ff_init_vlc_from_lengths(&vlc_tab_fft_tone_offset[4], 8, 37, - &tab_fft_tone_offset_4[0][1], 2, - &tab_fft_tone_offset_4[0][0], 2, 1, 0, - INIT_VLC_USE_NEW_STATIC | INIT_VLC_LE); + build_vlc(&vlc_tab_fft_tone_offset[0], 8, 23, 12, tab_fft_tone_offset_0); + build_vlc(&vlc_tab_fft_tone_offset[1], 8, 28, 13, tab_fft_tone_offset_1); + build_vlc(&vlc_tab_fft_tone_offset[2], 8, 31, 14, tab_fft_tone_offset_2); + build_vlc(&vlc_tab_fft_tone_offset[3], 8, 34, 15, tab_fft_tone_offset_3); + build_vlc(&vlc_tab_fft_tone_offset[4], 8, 37, 16, tab_fft_tone_offset_4); } #endif /* CONFIG_HARDCODED_TABLES */ -- 2.25.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".