mirror of
https://github.com/azahar-emu/soundtouch
synced 2025-11-07 07:30:02 +01:00
Added API to query for nominal input/output sample batch sizes
This commit is contained in:
parent
33334d8dab
commit
d024492262
@ -116,6 +116,31 @@ namespace soundtouch
|
|||||||
#define SETTING_OVERLAP_MS 5
|
#define SETTING_OVERLAP_MS 5
|
||||||
|
|
||||||
|
|
||||||
|
/// Call "getSetting" with this ID to query nominal average processing sequence
|
||||||
|
/// size in samples. This value tells approcimate value how many input samples
|
||||||
|
/// SoundTouch needs to gather before it does DSP processing run for the sample batch.
|
||||||
|
///
|
||||||
|
/// Notices:
|
||||||
|
/// - This is read-only parameter, i.e. setSetting ignores this parameter
|
||||||
|
/// - Returned value is approximate average value, exact processing batch
|
||||||
|
/// size may wary from time to time
|
||||||
|
/// - This parameter value is not constant but may change depending on
|
||||||
|
/// tempo/pitch/rate/samplerate settings.
|
||||||
|
#define SETTING_NOMINAL_INPUT_SEQUENCE 6
|
||||||
|
|
||||||
|
|
||||||
|
/// Call "getSetting" with this ID to query nominal average processing output
|
||||||
|
/// size in samples. This value tells approcimate value how many output samples
|
||||||
|
/// SoundTouch outputs once it does DSP processing run for a batch of input samples.
|
||||||
|
///
|
||||||
|
/// Notices:
|
||||||
|
/// - This is read-only parameter, i.e. setSetting ignores this parameter
|
||||||
|
/// - Returned value is approximate average value, exact processing batch
|
||||||
|
/// size may wary from time to time
|
||||||
|
/// - This parameter value is not constant but may change depending on
|
||||||
|
/// tempo/pitch/rate/samplerate settings.
|
||||||
|
#define SETTING_NOMINAL_OUTPUT_SEQUENCE 7
|
||||||
|
|
||||||
class SoundTouch : public FIFOProcessor
|
class SoundTouch : public FIFOProcessor
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
|||||||
@ -448,7 +448,13 @@ int SoundTouch::getSetting(int settingId) const
|
|||||||
pTDStretch->getParameters(NULL, NULL, NULL, &temp);
|
pTDStretch->getParameters(NULL, NULL, NULL, &temp);
|
||||||
return temp;
|
return temp;
|
||||||
|
|
||||||
default :
|
case SETTING_NOMINAL_INPUT_SEQUENCE :
|
||||||
|
return pTDStretch->getInputSampleReq();
|
||||||
|
|
||||||
|
case SETTING_NOMINAL_OUTPUT_SEQUENCE :
|
||||||
|
return pTDStretch->getOutputBatchSize();
|
||||||
|
|
||||||
|
default :
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -233,6 +233,18 @@ public:
|
|||||||
uint numSamples ///< Number of samples in 'samples' so that one sample
|
uint numSamples ///< Number of samples in 'samples' so that one sample
|
||||||
///< contains both channels if stereo
|
///< contains both channels if stereo
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/// return nominal input sample requirement for triggering a processing batch
|
||||||
|
int getInputSampleReq() const
|
||||||
|
{
|
||||||
|
return (int)(nominalSkip + 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// return nominal output sample amount when running a processing batch
|
||||||
|
int getOutputBatchSize() const
|
||||||
|
{
|
||||||
|
return seekWindowLength - overlapLength;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user