Audio: normalize conversion Stereo to 5.1, Quad to 7.1, 5.1 to 7.1 (bug #4104)
parent
21349901ea
commit
f869518533
|
@ -246,9 +246,8 @@ SDL_ConvertStereoTo51(SDL_AudioCVT * cvt, SDL_AudioFormat format)
|
||||||
lf = src[0];
|
lf = src[0];
|
||||||
rf = src[1];
|
rf = src[1];
|
||||||
ce = (lf + rf) * 0.5f;
|
ce = (lf + rf) * 0.5f;
|
||||||
/* !!! FIXME: FL and FR may clip */
|
dst[0] = 0.5 * (lf + (lf - ce)); /* FL */
|
||||||
dst[0] = lf + (lf - ce); /* FL */
|
dst[1] = 0.5 * (rf + (rf - ce)); /* FR */
|
||||||
dst[1] = rf + (rf - ce); /* FR */
|
|
||||||
dst[2] = ce; /* FC */
|
dst[2] = ce; /* FC */
|
||||||
dst[3] = 0; /* LFE (only meant for special LFE effects) */
|
dst[3] = 0; /* LFE (only meant for special LFE effects) */
|
||||||
dst[4] = lf; /* BL */
|
dst[4] = lf; /* BL */
|
||||||
|
@ -283,9 +282,8 @@ SDL_ConvertQuadTo51(SDL_AudioCVT * cvt, SDL_AudioFormat format)
|
||||||
lb = src[2];
|
lb = src[2];
|
||||||
rb = src[3];
|
rb = src[3];
|
||||||
ce = (lf + rf) * 0.5f;
|
ce = (lf + rf) * 0.5f;
|
||||||
/* !!! FIXME: FL and FR may clip */
|
dst[0] = 0.5 * (lf + (lf - ce)); /* FL */
|
||||||
dst[0] = lf + (lf - ce); /* FL */
|
dst[1] = 0.5 * (rf + (rf - ce)); /* FR */
|
||||||
dst[1] = rf + (rf - ce); /* FR */
|
|
||||||
dst[2] = ce; /* FC */
|
dst[2] = ce; /* FC */
|
||||||
dst[3] = 0; /* LFE (only meant for special LFE effects) */
|
dst[3] = 0; /* LFE (only meant for special LFE effects) */
|
||||||
dst[4] = lb; /* BL */
|
dst[4] = lb; /* BL */
|
||||||
|
@ -351,7 +349,6 @@ SDL_Convert51To71(SDL_AudioCVT * cvt, SDL_AudioFormat format)
|
||||||
rb = src[5];
|
rb = src[5];
|
||||||
ls = (lf + lb) * 0.5f;
|
ls = (lf + lb) * 0.5f;
|
||||||
rs = (rf + rb) * 0.5f;
|
rs = (rf + rb) * 0.5f;
|
||||||
/* !!! FIXME: these four may clip */
|
|
||||||
lf += lf - ls;
|
lf += lf - ls;
|
||||||
rf += rf - rs;
|
rf += rf - rs;
|
||||||
lb += lb - ls;
|
lb += lb - ls;
|
||||||
|
@ -360,10 +357,10 @@ SDL_Convert51To71(SDL_AudioCVT * cvt, SDL_AudioFormat format)
|
||||||
dst[2] = src[2]; /* FC */
|
dst[2] = src[2]; /* FC */
|
||||||
dst[7] = rs; /* SR */
|
dst[7] = rs; /* SR */
|
||||||
dst[6] = ls; /* SL */
|
dst[6] = ls; /* SL */
|
||||||
dst[5] = rb; /* BR */
|
dst[5] = 0.5 * rb; /* BR */
|
||||||
dst[4] = lb; /* BL */
|
dst[4] = 0.5 * lb; /* BL */
|
||||||
dst[1] = rf; /* FR */
|
dst[1] = 0.5 * rf; /* FR */
|
||||||
dst[0] = lf; /* FL */
|
dst[0] = 0.5 * lf; /* FL */
|
||||||
}
|
}
|
||||||
|
|
||||||
cvt->len_cvt = cvt->len_cvt * 4 / 3;
|
cvt->len_cvt = cvt->len_cvt * 4 / 3;
|
||||||
|
|
Loading…
Reference in New Issue