mirror of https://github.com/mgba-emu/mgba.git
Qt: Ensure proper audio sample rate is used when resampling audio
This commit is contained in:
parent
9d7b79db27
commit
712b0ccb84
|
@ -39,6 +39,8 @@ public slots:
|
|||
virtual void setBufferSamples(int samples) = 0;
|
||||
virtual void inputParametersChanged() = 0;
|
||||
|
||||
virtual unsigned sampleRate() const = 0;
|
||||
|
||||
protected:
|
||||
GBAThread* input() { return m_context; }
|
||||
|
||||
|
|
|
@ -83,3 +83,10 @@ void AudioProcessorQt::inputParametersChanged() {
|
|||
m_device->setFormat(m_audioOutput->format());
|
||||
}
|
||||
}
|
||||
|
||||
unsigned AudioProcessorQt::sampleRate() const {
|
||||
if (!m_audioOutput) {
|
||||
return 0;
|
||||
}
|
||||
return m_audioOutput->format().sampleRate();
|
||||
}
|
||||
|
|
|
@ -28,6 +28,8 @@ public slots:
|
|||
virtual void setBufferSamples(int samples);
|
||||
virtual void inputParametersChanged();
|
||||
|
||||
virtual unsigned sampleRate() const override;
|
||||
|
||||
private:
|
||||
QAudioOutput* m_audioOutput;
|
||||
AudioDevice* m_device;
|
||||
|
|
|
@ -54,3 +54,7 @@ void AudioProcessorSDL::setBufferSamples(int samples) {
|
|||
|
||||
void AudioProcessorSDL::inputParametersChanged() {
|
||||
}
|
||||
|
||||
unsigned AudioProcessorSDL::sampleRate() const {
|
||||
return m_audio.obtainedSpec.freq;
|
||||
}
|
||||
|
|
|
@ -29,6 +29,8 @@ public slots:
|
|||
virtual void setBufferSamples(int samples);
|
||||
virtual void inputParametersChanged();
|
||||
|
||||
virtual unsigned sampleRate() const override;
|
||||
|
||||
private:
|
||||
GBASDLAudio m_audio;
|
||||
};
|
||||
|
|
|
@ -746,7 +746,7 @@ void GameController::redoSamples(int samples) {
|
|||
if (m_threadContext.gba) {
|
||||
sampleRate = m_threadContext.gba->audio.sampleRate;
|
||||
}
|
||||
ratio = GBAAudioCalculateRatio(sampleRate, m_threadContext.fpsTarget, 44100);
|
||||
ratio = GBAAudioCalculateRatio(sampleRate, m_threadContext.fpsTarget, m_audioProcess->sampleRate());
|
||||
m_threadContext.audioBuffers = ceil(samples / ratio);
|
||||
#else
|
||||
m_threadContext.audioBuffers = samples;
|
||||
|
|
Loading…
Reference in New Issue