Message ID | CAHucTJskpMHw-G1AKMvb+MWOtKOarT-O+QR2DS7ci56gGVGe8g@mail.gmail.com |
---|---|
State | Superseded |
Headers | show |
On 27/09/2016 19:46, Adriano Pallavicino wrote: > --- > libavcodec/qdm2.c | 117 > +++++++++++++++++++++++++++--------------------------- > 1 file changed, 59 insertions(+), 58 deletions(-) > > diff --git a/libavcodec/qdm2.c b/libavcodec/qdm2.c > index dd8b257..e3cc902 100644 > --- a/libavcodec/qdm2.c > +++ b/libavcodec/qdm2.c > @@ -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++) > + 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++) > - 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++) > + 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++) > Could you send the patch as an attachment it is corrupted. -- Josh
diff --git a/libavcodec/qdm2.c b/libavcodec/qdm2.c index dd8b257..e3cc902 100644 --- a/libavcodec/qdm2.c +++ b/libavcodec/qdm2.c @@ -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