diff options
Diffstat (limited to 'src/plugins/audiocapture/audioencodercontrol.cpp')
-rw-r--r-- | src/plugins/audiocapture/audioencodercontrol.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/plugins/audiocapture/audioencodercontrol.cpp b/src/plugins/audiocapture/audioencodercontrol.cpp index d8a83bf26..6fc519cef 100644 --- a/src/plugins/audiocapture/audioencodercontrol.cpp +++ b/src/plugins/audiocapture/audioencodercontrol.cpp @@ -54,13 +54,12 @@ static QAudioFormat audioSettingsToAudioFormat(const QAudioEncoderSettings &sett fmt.setCodec(settings.codec()); fmt.setChannelCount(settings.channelCount()); fmt.setSampleRate(settings.sampleRate()); - if (settings.sampleRate() == 8000 && settings.bitRate() == 8000) { - fmt.setSampleType(QAudioFormat::UnSignedInt); - fmt.setSampleSize(8); - } else { - fmt.setSampleSize(16); - fmt.setSampleType(QAudioFormat::SignedInt); - } + int sampleSize = 16; + if (settings.bitRate() && settings.channelCount() && settings.sampleRate()) + sampleSize = settings.bitRate() / settings.channelCount() / settings.sampleRate(); + fmt.setSampleSize(sampleSize); + fmt.setSampleType(sampleSize == 8 ? QAudioFormat::UnSignedInt : QAudioFormat::SignedInt); + fmt.setByteOrder(QAudioDeviceInfo::defaultInputDevice().preferredFormat().byteOrder()); return fmt; } |