mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
qdm2: refactor joined stereo support
qdm2 does support only two channels. Loop over the run once. Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
This commit is contained in:
parent
12576afe20
commit
adadc3f244
@ -807,7 +807,7 @@ static void synthfilt_build_sb_samples(QDM2Context *q, GetBitContext *gb,
|
||||
int length, int sb_min, int sb_max)
|
||||
{
|
||||
int sb, j, k, n, ch, run, channels;
|
||||
int joined_stereo, zero_encoding, chs;
|
||||
int joined_stereo, zero_encoding;
|
||||
int type34_first;
|
||||
float type34_div = 0;
|
||||
float type34_predictor;
|
||||
@ -961,16 +961,18 @@ static void synthfilt_build_sb_samples(QDM2Context *q, GetBitContext *gb,
|
||||
}
|
||||
|
||||
if (joined_stereo) {
|
||||
float tmp[10][MPA_MAX_CHANNELS];
|
||||
|
||||
for (k = 0; k < run; k++) {
|
||||
tmp[k][0] = samples[k];
|
||||
tmp[k][1] = (sign_bits[(j + k) / 8]) ? -samples[k] : samples[k];
|
||||
for (k = 0; k < run && j + k < 128; k++) {
|
||||
q->sb_samples[0][j + k][sb] =
|
||||
q->tone_level[0][sb][(j + k) / 2] * samples[k];
|
||||
if (q->nb_channels == 2) {
|
||||
if (sign_bits[(j + k) / 8])
|
||||
q->sb_samples[1][j + k][sb] =
|
||||
q->tone_level[1][sb][(j + k) / 2] * -samples[k];
|
||||
else
|
||||
q->sb_samples[1][j + k][sb] =
|
||||
q->tone_level[1][sb][(j + k) / 2] * samples[k];
|
||||
}
|
||||
}
|
||||
for (chs = 0; chs < q->nb_channels; chs++)
|
||||
for (k = 0; k < run; k++)
|
||||
if ((j + k) < 128)
|
||||
q->sb_samples[chs][j + k][sb] = q->tone_level[chs][sb][((j + k)/2)] * tmp[k][chs];
|
||||
} else {
|
||||
for (k = 0; k < run; k++)
|
||||
if ((j + k) < 128)
|
||||
|
Loading…
Reference in New Issue
Block a user