Pass the desired resampler to CreateSampleConverter
This commit is contained in:
@@ -1666,7 +1666,7 @@ HRESULT ALCwasapiCapture::resetProxy()
|
||||
{
|
||||
mSampleConv = CreateSampleConverter(
|
||||
srcType, device->FmtType, ChannelsFromDevFmt(device->FmtChans, device->mAmbiOrder),
|
||||
OutputType.Format.nSamplesPerSec, device->Frequency
|
||||
OutputType.Format.nSamplesPerSec, device->Frequency, BSinc24Resampler
|
||||
);
|
||||
if(!mSampleConv)
|
||||
{
|
||||
|
||||
+8
-4
@@ -136,7 +136,9 @@ void Stereo2Mono(ALfloat *RESTRICT dst, const void *src, ALsizei frames)
|
||||
|
||||
} // namespace
|
||||
|
||||
SampleConverter *CreateSampleConverter(enum DevFmtType srcType, enum DevFmtType dstType, ALsizei numchans, ALsizei srcRate, ALsizei dstRate)
|
||||
SampleConverter *CreateSampleConverter(enum DevFmtType srcType, enum DevFmtType dstType,
|
||||
ALsizei numchans, ALsizei srcRate, ALsizei dstRate,
|
||||
Resampler resampler)
|
||||
{
|
||||
if(numchans <= 0 || srcRate <= 0 || dstRate <= 0)
|
||||
return nullptr;
|
||||
@@ -161,9 +163,11 @@ SampleConverter *CreateSampleConverter(enum DevFmtType srcType, enum DevFmtType
|
||||
converter->mResample = Resample_copy_C;
|
||||
else
|
||||
{
|
||||
/* TODO: Allow other resamplers. */
|
||||
BsincPrepare(converter->mIncrement, &converter->mState.bsinc, &bsinc12);
|
||||
converter->mResample = SelectResampler(BSinc12Resampler);
|
||||
if(resampler == BSinc24Resampler)
|
||||
BsincPrepare(converter->mIncrement, &converter->mState.bsinc, &bsinc24);
|
||||
else if(resampler == BSinc12Resampler)
|
||||
BsincPrepare(converter->mIncrement, &converter->mState.bsinc, &bsinc12);
|
||||
converter->mResample = SelectResampler(resampler);
|
||||
}
|
||||
|
||||
return converter;
|
||||
|
||||
+3
-1
@@ -29,7 +29,9 @@ struct SampleConverter {
|
||||
DEF_PLACE_NEWDEL()
|
||||
};
|
||||
|
||||
SampleConverter *CreateSampleConverter(enum DevFmtType srcType, enum DevFmtType dstType, ALsizei numchans, ALsizei srcRate, ALsizei dstRate);
|
||||
SampleConverter *CreateSampleConverter(enum DevFmtType srcType, enum DevFmtType dstType,
|
||||
ALsizei numchans, ALsizei srcRate, ALsizei dstRate,
|
||||
Resampler resampler);
|
||||
void DestroySampleConverter(SampleConverter **converter);
|
||||
|
||||
ALsizei SampleConverterInput(SampleConverter *converter, const ALvoid **src, ALsizei *srcframes, ALvoid *dst, ALsizei dstframes);
|
||||
|
||||
Reference in New Issue
Block a user