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

Commit e1083a99 authored by Jean-Michel Trivi's avatar Jean-Michel Trivi Committed by Android (Google) Code Review
Browse files

Merge "Configure the resampler with the correct channel count when downmixing"

parents 13692a5d acb86ccc
Loading
Loading
Loading
Loading
+5 −7
Original line number Diff line number Diff line
@@ -3507,14 +3507,12 @@ void* AudioFlinger::ThreadBase::TrackBase::getBuffer(uint32_t offset, uint32_t f
    int8_t *bufferEnd = bufferStart + frames * frameSize;

    // Check validity of returned pointer in case the track control block would have been corrupted.
    if (bufferStart < mBuffer || bufferStart > bufferEnd || bufferEnd > mBufferEnd ||
        ((unsigned long)bufferStart & (unsigned long)(frameSize - 1))) {
        ALOGE("TrackBase::getBuffer buffer out of range:\n    start: %p, end %p , mBuffer %p mBufferEnd %p\n    \
                server %u, serverBase %u, user %u, userBase %u",
    ALOG_ASSERT(!(bufferStart < mBuffer || bufferStart > bufferEnd || bufferEnd > mBufferEnd),
            "TrackBase::getBuffer buffer out of range:\n"
                "    start: %p, end %p , mBuffer %p mBufferEnd %p\n"
                "    server %u, serverBase %u, user %u, userBase %u, frameSize %d",
                bufferStart, bufferEnd, mBuffer, mBufferEnd,
                cblk->server, cblk->serverBase, cblk->user, cblk->userBase);
        return NULL;
    }
                cblk->server, cblk->serverBase, cblk->user, cblk->userBase, frameSize);

    return bufferStart;
}
+5 −2
Original line number Diff line number Diff line
@@ -504,7 +504,10 @@ bool AudioMixer::track_t::setResampler(uint32_t value, uint32_t devSampleRate)
            sampleRate = value;
            if (resampler == NULL) {
                resampler = AudioResampler::create(
                        format, channelCount, devSampleRate);
                        format,
                        // the resampler sees the number of channels after the downmixer, if any
                        downmixerBufferProvider != NULL ? MAX_NUM_CHANNELS : channelCount,
                        devSampleRate);
                resampler->setLocalTimeFreq(localTimeFreq);
            }
            return true;