Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c0ff97c0 authored by Mingming Yin's avatar Mingming Yin Committed by Linux Build Service Account
Browse files

AudioFlinger: limit QTI resampler to 48kHz output

- Limit QTI resampler to 48kHz sample rate output
  due to the limitation of resampling from 192kHz
  to 44.1kHz
- Remove QTI resampler input/output limitation.

Change-Id: Icdfbb1c9980cc798d71ccbed76608d1b7cc5a980
CRs-Fixed: 743172
parent dcd4bd56
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
@@ -734,12 +734,7 @@ status_t AudioTrack::setSampleRate(uint32_t rate)
    if (AudioSystem::getOutputSamplingRateForAttr(&afSamplingRate, &mAttributes) != NO_ERROR) {
        return NO_INIT;
    }
    // Resampler implementation limits input sampling rate to 2/4 x output sampling rate.
#ifdef QTI_RESAMPLER
    if (rate == 0 || rate > afSamplingRate * 4) {
#else
    if (rate == 0 || rate > afSamplingRate * AUDIO_RESAMPLER_DOWN_RATIO_MAX) {
#endif
        return BAD_VALUE;
    }

+1 −1
Original line number Diff line number Diff line
@@ -932,7 +932,7 @@ bool AudioMixer::track_t::setResampler(uint32_t trackSampleRate, uint32_t devSam
                // quality level based on the initial ratio, but that could change later.
                // Should have a way to distinguish tracks with static ratios vs. dynamic ratios.
#ifdef QTI_RESAMPLER
                if (trackSampleRate > devSampleRate * 2) {
                if ((trackSampleRate > devSampleRate * 2) && (devSampleRate == 48000)) {
                    quality = AudioResampler::QTI_QUALITY;
                } else
#endif
+0 −10
Original line number Diff line number Diff line
@@ -1473,12 +1473,7 @@ sp<AudioFlinger::PlaybackThread::Track> AudioFlinger::PlaybackThread::createTrac
                lStatus = BAD_VALUE;
                goto Exit;
        }
        // Resampler implementation limits input sampling rate to 2/4 x output sampling rate.
#ifdef QTI_RESAMPLER
        if (sampleRate > mSampleRate * 4) {
#else
        if (sampleRate > mSampleRate * AUDIO_RESAMPLER_DOWN_RATIO_MAX) {
#endif
            ALOGE("Sample rate out of range: %u mSampleRate %u", sampleRate, mSampleRate);
            lStatus = BAD_VALUE;
            goto Exit;
@@ -3524,12 +3519,7 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::MixerThread::prepareTrac
                name,
                AudioMixer::TRACK,
                AudioMixer::MIXER_CHANNEL_MASK, (void *)(uintptr_t)mChannelMask);
            // limit track sample rate to 2 x output sample rate, which changes at re-configuration
#ifdef QTI_RESAMPLER
            uint32_t maxSampleRate = mSampleRate * 4;
#else
            uint32_t maxSampleRate = mSampleRate * AUDIO_RESAMPLER_DOWN_RATIO_MAX;
#endif
            uint32_t reqSampleRate = track->mAudioTrackServerProxy->getSampleRate();
            if (reqSampleRate == 0) {
                reqSampleRate = mSampleRate;