You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	avcodec/qdm2: Initialize array of VLCs in a loop
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
		| @@ -127,6 +127,8 @@ static av_cold void build_vlc(VLC *vlc, int nb_bits, int nb_codes, int idx, | |||||||
|  |  | ||||||
| static av_cold void qdm2_init_vlc(void) | static av_cold void qdm2_init_vlc(void) | ||||||
| { | { | ||||||
|  |     const uint8_t (*tab)[2] = tab_fft_tone_offset; | ||||||
|  |  | ||||||
|     build_vlc(&vlc_tab_level, 8, 24, 0, tab_level); |     build_vlc(&vlc_tab_level, 8, 24, 0, tab_level); | ||||||
|     build_vlc(&vlc_tab_diff,  8, 33, 1, tab_diff); |     build_vlc(&vlc_tab_diff,  8, 33, 1, tab_diff); | ||||||
|     build_vlc(&vlc_tab_run,   5,  6, 2, tab_run); |     build_vlc(&vlc_tab_run,   5,  6, 2, tab_run); | ||||||
| @@ -144,11 +146,11 @@ static av_cold void qdm2_init_vlc(void) | |||||||
|     build_vlc(&vlc_tab_type30, 6,  9, 10, tab_type30); |     build_vlc(&vlc_tab_type30, 6,  9, 10, tab_type30); | ||||||
|     build_vlc(&vlc_tab_type34, 5, 10, 11, tab_type34); |     build_vlc(&vlc_tab_type34, 5, 10, 11, tab_type34); | ||||||
|  |  | ||||||
|     build_vlc(&vlc_tab_fft_tone_offset[0], 8, 23, 12, tab_fft_tone_offset_0); |     for (int i = 0; i < 5; i++) { | ||||||
|     build_vlc(&vlc_tab_fft_tone_offset[1], 8, 28, 13, tab_fft_tone_offset_1); |         build_vlc(&vlc_tab_fft_tone_offset[i], 8, tab_fft_tone_offset_sizes[i], | ||||||
|     build_vlc(&vlc_tab_fft_tone_offset[2], 8, 31, 14, tab_fft_tone_offset_2); |                   12 + i, tab); | ||||||
|     build_vlc(&vlc_tab_fft_tone_offset[3], 8, 34, 15, tab_fft_tone_offset_3); |         tab += tab_fft_tone_offset_sizes[i]; | ||||||
|     build_vlc(&vlc_tab_fft_tone_offset[4], 8, 37, 16, tab_fft_tone_offset_4); |     } | ||||||
| } | } | ||||||
|  |  | ||||||
| #endif /* CONFIG_HARDCODED_TABLES */ | #endif /* CONFIG_HARDCODED_TABLES */ | ||||||
|   | |||||||
| @@ -91,45 +91,37 @@ static const uint8_t tab_type34[10][2] = { | |||||||
|     { 4, 3 }, { 6, 3 }, { 5, 3 }, |     { 4, 3 }, { 6, 3 }, { 5, 3 }, | ||||||
| }; | }; | ||||||
|  |  | ||||||
| /* values in this table range from -1..22; adjust retrieved value by -1 */ | static const uint8_t tab_fft_tone_offset_sizes[] = { | ||||||
| static const uint8_t tab_fft_tone_offset_0[23][2] = { |     23, 28, 31, 34, 37 | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | static const uint8_t tab_fft_tone_offset[][2] = { | ||||||
|  |     /* First table - 23 entries with range -1..21 */ | ||||||
|     {  2,  2 }, {  7,  7 }, { 15,  8 }, { 21,  8 }, {  3,  6 }, {  6,  6 }, |     {  2,  2 }, {  7,  7 }, { 15,  8 }, { 21,  8 }, {  3,  6 }, {  6,  6 }, | ||||||
|     { 13,  7 }, { 14,  8 }, { 18,  8 }, {  4,  4 }, {  5,  5 }, { 11,  7 }, |     { 13,  7 }, { 14,  8 }, { 18,  8 }, {  4,  4 }, {  5,  5 }, { 11,  7 }, | ||||||
|     { 10,  7 }, { 20,  6 }, { 12,  8 }, { 16,  9 }, { 22, 10 }, {  0, 10 }, |     { 10,  7 }, { 20,  6 }, { 12,  8 }, { 16,  9 }, { 22, 10 }, {  0, 10 }, | ||||||
|     { 17,  7 }, { 19,  6 }, {  8,  6 }, {  9,  6 }, {  1,  1 }, |     { 17,  7 }, { 19,  6 }, {  8,  6 }, {  9,  6 }, {  1,  1 }, | ||||||
| }; |     /* Second table - 28 entries with range -1..26 */ | ||||||
|  |  | ||||||
| /* values in this table range from -1..27; adjust retrieved value by -1 */ |  | ||||||
| static const uint8_t tab_fft_tone_offset_1[28][2] = { |  | ||||||
|     {  8,  6 }, {  2,  6 }, {  7,  6 }, { 23,  7 }, { 12,  7 }, {  5,  4 }, |     {  8,  6 }, {  2,  6 }, {  7,  6 }, { 23,  7 }, { 12,  7 }, {  5,  4 }, | ||||||
|     { 10,  6 }, { 20,  8 }, { 25,  9 }, { 26, 10 }, { 27, 11 }, {  0, 11 }, |     { 10,  6 }, { 20,  8 }, { 25,  9 }, { 26, 10 }, { 27, 11 }, {  0, 11 }, | ||||||
|     { 22,  7 }, {  9,  5 }, { 13,  6 }, { 17,  6 }, {  4,  5 }, { 14,  6 }, |     { 22,  7 }, {  9,  5 }, { 13,  6 }, { 17,  6 }, {  4,  5 }, { 14,  6 }, | ||||||
|     { 19,  7 }, { 24,  7 }, {  3,  6 }, { 11,  6 }, { 21,  6 }, { 18,  6 }, |     { 19,  7 }, { 24,  7 }, {  3,  6 }, { 11,  6 }, { 21,  6 }, { 18,  6 }, | ||||||
|     { 16,  6 }, { 15,  6 }, {  6,  3 }, {  1,  1 }, |     { 16,  6 }, { 15,  6 }, {  6,  3 }, {  1,  1 }, | ||||||
| }; |     /* Third table - 31 entries with range -1..30  (1 omitted) */ | ||||||
|  |  | ||||||
| /* values in this table range from -1..31; adjust retrieved value by -1 */ |  | ||||||
| static const uint8_t tab_fft_tone_offset_2[31][2] = { |  | ||||||
|     { 14,  7 }, { 17,  7 }, { 15,  7 }, { 23,  9 }, { 28, 10 }, { 29, 11 }, |     { 14,  7 }, { 17,  7 }, { 15,  7 }, { 23,  9 }, { 28, 10 }, { 29, 11 }, | ||||||
|     { 30, 13 }, {  0, 13 }, { 31, 12 }, { 25,  8 }, { 10,  5 }, {  8,  4 }, |     { 30, 13 }, {  0, 13 }, { 31, 12 }, { 25,  8 }, { 10,  5 }, {  8,  4 }, | ||||||
|     {  9,  4 }, {  4,  4 }, { 22,  8 }, {  3,  8 }, { 21,  8 }, { 26,  9 }, |     {  9,  4 }, {  4,  4 }, { 22,  8 }, {  3,  8 }, { 21,  8 }, { 26,  9 }, | ||||||
|     { 27,  9 }, { 12,  6 }, { 11,  5 }, { 16,  7 }, { 18,  7 }, { 20,  8 }, |     { 27,  9 }, { 12,  6 }, { 11,  5 }, { 16,  7 }, { 18,  7 }, { 20,  8 }, | ||||||
|     { 24,  8 }, { 19,  7 }, { 13,  5 }, {  5,  3 }, {  1,  2 }, {  6,  3 }, |     { 24,  8 }, { 19,  7 }, { 13,  5 }, {  5,  3 }, {  1,  2 }, {  6,  3 }, | ||||||
|     {  7,  3 }, |     {  7,  3 }, | ||||||
| }; |     /* Fourth table - 34 entries with range -1..33 (1 omitted) */ | ||||||
|  |  | ||||||
| /* values in this table range from -1..34; adjust retrieved value by -1 */ |  | ||||||
| static const uint8_t tab_fft_tone_offset_3[34][2] = { |  | ||||||
|     {  4,  4 }, {  7,  4 }, { 10,  4 }, {  3, 10 }, { 27, 10 }, { 29, 10 }, |     {  4,  4 }, {  7,  4 }, { 10,  4 }, {  3, 10 }, { 27, 10 }, { 29, 10 }, | ||||||
|     { 28, 10 }, { 22,  8 }, { 21,  7 }, { 15,  6 }, { 14,  5 }, {  8,  4 }, |     { 28, 10 }, { 22,  8 }, { 21,  7 }, { 15,  6 }, { 14,  5 }, {  8,  4 }, | ||||||
|     { 16,  6 }, { 19,  7 }, { 23,  8 }, { 26,  9 }, { 30, 10 }, { 33, 13 }, |     { 16,  6 }, { 19,  7 }, { 23,  8 }, { 26,  9 }, { 30, 10 }, { 33, 13 }, | ||||||
|     { 34, 14 }, {  0, 14 }, { 32, 12 }, { 31, 11 }, { 12,  5 }, {  5,  3 }, |     { 34, 14 }, {  0, 14 }, { 32, 12 }, { 31, 11 }, { 12,  5 }, {  5,  3 }, | ||||||
|     {  9,  3 }, {  1,  4 }, { 20,  7 }, { 25,  8 }, { 24,  8 }, { 18,  6 }, |     {  9,  3 }, {  1,  4 }, { 20,  7 }, { 25,  8 }, { 24,  8 }, { 18,  6 }, | ||||||
|     { 17,  5 }, {  6,  3 }, { 11,  4 }, { 13,  4 }, |     { 17,  5 }, {  6,  3 }, { 11,  4 }, { 13,  4 }, | ||||||
| }; |     /* Fifth table - 37 entries with range -1..36 (1 omitted) */ | ||||||
|  |  | ||||||
| /* values in this table range from -1..37; adjust retrieved value by -1 */ |  | ||||||
| static const uint8_t tab_fft_tone_offset_4[37][2] = { |  | ||||||
|     {  5,  3 }, {  4,  3 }, { 19,  8 }, { 33, 12 }, { 31, 12 }, { 28, 11 }, |     {  5,  3 }, {  4,  3 }, { 19,  8 }, { 33, 12 }, { 31, 12 }, { 28, 11 }, | ||||||
|     { 34, 14 }, { 37, 14 }, { 35, 15 }, {  0, 15 }, { 36, 14 }, { 32, 12 }, |     { 34, 14 }, { 37, 14 }, { 35, 15 }, {  0, 15 }, { 36, 14 }, { 32, 12 }, | ||||||
|     { 30, 11 }, { 24,  9 }, { 22,  8 }, { 23,  9 }, { 29, 10 }, { 27, 10 }, |     { 30, 11 }, { 24,  9 }, { 22,  8 }, { 23,  9 }, { 29, 10 }, { 27, 10 }, | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user