Use specialized click removal loops for mono and stereo output
This commit is contained in:
parent
f986f7dfad
commit
81d401eab5
44
Alc/ALu.c
44
Alc/ALu.c
@ -1057,18 +1057,48 @@ ALvoid aluMixData(ALCdevice *device, ALvoid *buffer, ALsizei size)
|
||||
UnlockDevice(device);
|
||||
|
||||
//Post processing loop
|
||||
for(i = 0;i < SamplesToDo;i++)
|
||||
if(device->FmtChans == DevFmtMono)
|
||||
{
|
||||
for(c = 0;c < MAXCHANNELS;c++)
|
||||
for(i = 0;i < SamplesToDo;i++)
|
||||
{
|
||||
device->DryBuffer[i][c] += device->ClickRemoval[c];
|
||||
device->ClickRemoval[c] -= device->ClickRemoval[c] / 256.0f;
|
||||
device->DryBuffer[i][FRONT_CENTER] += device->ClickRemoval[FRONT_CENTER];
|
||||
device->ClickRemoval[FRONT_CENTER] -= device->ClickRemoval[FRONT_CENTER] / 256.0f;
|
||||
}
|
||||
device->ClickRemoval[FRONT_CENTER] += device->PendingClicks[FRONT_CENTER];
|
||||
device->PendingClicks[FRONT_CENTER] = 0.0f;
|
||||
}
|
||||
else if(device->FmtChans == DevFmtStereo)
|
||||
{
|
||||
/* Assumes the first two channels are FRONT_LEFT and FRONT_RIGHT */
|
||||
for(i = 0;i < SamplesToDo;i++)
|
||||
{
|
||||
for(c = 0;c < 2;c++)
|
||||
{
|
||||
device->DryBuffer[i][c] += device->ClickRemoval[c];
|
||||
device->ClickRemoval[c] -= device->ClickRemoval[c] / 256.0f;
|
||||
}
|
||||
}
|
||||
for(c = 0;c < 2;c++)
|
||||
{
|
||||
device->ClickRemoval[c] += device->PendingClicks[c];
|
||||
device->PendingClicks[c] = 0.0f;
|
||||
}
|
||||
}
|
||||
for(i = 0;i < MAXCHANNELS;i++)
|
||||
else
|
||||
{
|
||||
device->ClickRemoval[i] += device->PendingClicks[i];
|
||||
device->PendingClicks[i] = 0.0f;
|
||||
for(i = 0;i < SamplesToDo;i++)
|
||||
{
|
||||
for(c = 0;c < MAXCHANNELS;c++)
|
||||
{
|
||||
device->DryBuffer[i][c] += device->ClickRemoval[c];
|
||||
device->ClickRemoval[c] -= device->ClickRemoval[c] / 256.0f;
|
||||
}
|
||||
}
|
||||
for(c = 0;c < MAXCHANNELS;c++)
|
||||
{
|
||||
device->ClickRemoval[c] += device->PendingClicks[c];
|
||||
device->PendingClicks[c] = 0.0f;
|
||||
}
|
||||
}
|
||||
|
||||
switch(device->FmtType)
|
||||
|
Loading…
x
Reference in New Issue
Block a user