mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-02-06 06:44:29 +00:00
lavc/qdm2: increase code clarity
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Josh de Kock <josh@itanimul.li>
This commit is contained in:
parent
7e9e1b7070
commit
25866680fd
@ -537,7 +537,7 @@ static void fill_coding_method_array(sb_int8_array tone_level_idx,
|
||||
/* This case is untested, no samples available */
|
||||
avpriv_request_sample(NULL, "!superblocktype_2_3");
|
||||
return;
|
||||
for (ch = 0; ch < nb_channels; ch++)
|
||||
for (ch = 0; ch < nb_channels; ch++) {
|
||||
for (sb = 0; sb < 30; sb++) {
|
||||
for (j = 1; j < 63; j++) { // The loop only iterates to 63 so the code doesn't overflow the buffer
|
||||
add1 = tone_level_idx[ch][sb][j] - 10;
|
||||
@ -566,67 +566,68 @@ static void fill_coding_method_array(sb_int8_array tone_level_idx,
|
||||
}
|
||||
tone_level_idx_temp[ch][sb][0] = tone_level_idx_temp[ch][sb][1];
|
||||
}
|
||||
acc = 0;
|
||||
for (ch = 0; ch < nb_channels; ch++)
|
||||
for (sb = 0; sb < 30; sb++)
|
||||
for (j = 0; j < 64; j++)
|
||||
acc += tone_level_idx_temp[ch][sb][j];
|
||||
|
||||
multres = 0x66666667LL * (acc * 10);
|
||||
esp_40 = (multres >> 32) / 8 + ((multres & 0xffffffff) >> 31);
|
||||
for (ch = 0; ch < nb_channels; ch++)
|
||||
for (sb = 0; sb < 30; sb++)
|
||||
for (j = 0; j < 64; j++) {
|
||||
comp = tone_level_idx_temp[ch][sb][j]* esp_40 * 10;
|
||||
if (comp < 0)
|
||||
comp += 0xff;
|
||||
comp /= 256; // signed shift
|
||||
switch(sb) {
|
||||
case 0:
|
||||
if (comp < 30)
|
||||
comp = 30;
|
||||
comp += 15;
|
||||
break;
|
||||
case 1:
|
||||
if (comp < 24)
|
||||
comp = 24;
|
||||
comp += 10;
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
if (comp < 16)
|
||||
comp = 16;
|
||||
}
|
||||
if (comp <= 5)
|
||||
tmp = 0;
|
||||
else if (comp <= 10)
|
||||
tmp = 10;
|
||||
else if (comp <= 16)
|
||||
tmp = 16;
|
||||
else if (comp <= 24)
|
||||
tmp = -1;
|
||||
else
|
||||
tmp = 0;
|
||||
coding_method[ch][sb][j] = ((tmp & 0xfffa) + 30 )& 0xff;
|
||||
}
|
||||
}
|
||||
acc = 0;
|
||||
for (ch = 0; ch < nb_channels; ch++)
|
||||
for (sb = 0; sb < 30; sb++)
|
||||
fix_coding_method_array(sb, nb_channels, coding_method);
|
||||
for (ch = 0; ch < nb_channels; ch++)
|
||||
for (sb = 0; sb < 30; sb++)
|
||||
for (j = 0; j < 64; j++)
|
||||
if (sb >= 10) {
|
||||
if (coding_method[ch][sb][j] < 10)
|
||||
coding_method[ch][sb][j] = 10;
|
||||
for (j = 0; j < 64; j++)
|
||||
acc += tone_level_idx_temp[ch][sb][j];
|
||||
|
||||
multres = 0x66666667LL * (acc * 10);
|
||||
esp_40 = (multres >> 32) / 8 + ((multres & 0xffffffff) >> 31);
|
||||
for (ch = 0; ch < nb_channels; ch++)
|
||||
for (sb = 0; sb < 30; sb++)
|
||||
for (j = 0; j < 64; j++) {
|
||||
comp = tone_level_idx_temp[ch][sb][j]* esp_40 * 10;
|
||||
if (comp < 0)
|
||||
comp += 0xff;
|
||||
comp /= 256; // signed shift
|
||||
switch(sb) {
|
||||
case 0:
|
||||
if (comp < 30)
|
||||
comp = 30;
|
||||
comp += 15;
|
||||
break;
|
||||
case 1:
|
||||
if (comp < 24)
|
||||
comp = 24;
|
||||
comp += 10;
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
if (comp < 16)
|
||||
comp = 16;
|
||||
}
|
||||
if (comp <= 5)
|
||||
tmp = 0;
|
||||
else if (comp <= 10)
|
||||
tmp = 10;
|
||||
else if (comp <= 16)
|
||||
tmp = 16;
|
||||
else if (comp <= 24)
|
||||
tmp = -1;
|
||||
else
|
||||
tmp = 0;
|
||||
coding_method[ch][sb][j] = ((tmp & 0xfffa) + 30 )& 0xff;
|
||||
}
|
||||
for (sb = 0; sb < 30; sb++)
|
||||
fix_coding_method_array(sb, nb_channels, coding_method);
|
||||
for (ch = 0; ch < nb_channels; ch++)
|
||||
for (sb = 0; sb < 30; sb++)
|
||||
for (j = 0; j < 64; j++)
|
||||
if (sb >= 10) {
|
||||
if (coding_method[ch][sb][j] < 10)
|
||||
coding_method[ch][sb][j] = 10;
|
||||
} else {
|
||||
if (sb >= 2) {
|
||||
if (coding_method[ch][sb][j] < 16)
|
||||
coding_method[ch][sb][j] = 16;
|
||||
} else {
|
||||
if (sb >= 2) {
|
||||
if (coding_method[ch][sb][j] < 16)
|
||||
coding_method[ch][sb][j] = 16;
|
||||
} else {
|
||||
if (coding_method[ch][sb][j] < 30)
|
||||
coding_method[ch][sb][j] = 30;
|
||||
}
|
||||
if (coding_method[ch][sb][j] < 30)
|
||||
coding_method[ch][sb][j] = 30;
|
||||
}
|
||||
}
|
||||
} else { // superblocktype_2_3 != 0
|
||||
for (ch = 0; ch < nb_channels; ch++)
|
||||
for (sb = 0; sb < 30; sb++)
|
||||
|
Loading…
Reference in New Issue
Block a user