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

Commit d855c324 authored by Andy Hung's avatar Andy Hung Committed by Automerger Merge Worker
Browse files

Merge "Use audio_bytes_per_frame now supporting compressed formats" into main am: 8760c09f

parents 8b5a7d90 8760c09f
Loading
Loading
Loading
Loading
+4 −10
Original line number Diff line number Diff line
@@ -68,10 +68,9 @@ status_t AudioRecord::getMinFrameCount(
    }

    // We double the size of input buffer for ping pong use of record buffer.
    // Assumes audio_is_linear_pcm(format)
    const auto sampleSize = audio_channel_count_from_in_mask(channelMask) *
                                      audio_bytes_per_sample(format);
    if (sampleSize == 0 || ((*frameCount = (size * 2) / sampleSize) == 0)) {
    const auto frameSize = audio_bytes_per_frame(
            audio_channel_count_from_in_mask(channelMask), format);
    if (frameSize == 0 || ((*frameCount = (size * 2) / frameSize) == 0)) {
        ALOGE("%s(): Unsupported configuration: sampleRate %u, format %#x, channelMask %#x",
                __func__, sampleRate, format, channelMask);
        return BAD_VALUE;
@@ -353,12 +352,7 @@ status_t AudioRecord::set(
    }

    mChannelCount = audio_channel_count_from_in_mask(mChannelMask);

    if (audio_is_linear_pcm(mFormat)) {
        mFrameSize = mChannelCount * audio_bytes_per_sample(mFormat);
    } else {
        mFrameSize = sizeof(uint8_t);
    }
    mFrameSize = audio_bytes_per_frame(mChannelCount, mFormat);

    // mFrameCount is initialized in createRecord_l
    mReqFrameCount = frameCount;
+4 −9
Original line number Diff line number Diff line
@@ -594,18 +594,13 @@ status_t AudioTrack::set(
    channelCount = audio_channel_count_from_out_mask(channelMask);
    mChannelCount = channelCount;

    if (mFlags & AUDIO_OUTPUT_FLAG_DIRECT) {
        if (audio_has_proportional_frames(format)) {
            mFrameSize = channelCount * audio_bytes_per_sample(format);
        } else {
            mFrameSize = sizeof(uint8_t);
        }
    } else {
        ALOG_ASSERT(audio_has_proportional_frames(format));
        mFrameSize = channelCount * audio_bytes_per_sample(format);
    if (!(mFlags & AUDIO_OUTPUT_FLAG_DIRECT)) {
        // createTrack will return an error if PCM format is not supported by server,
        // so no need to check for specific PCM formats here
        ALOGW_IF(!audio_has_proportional_frames(format), "%s(): no direct flag for format 0x%x",
            __func__, format);
    }
    mFrameSize = audio_bytes_per_frame(channelCount, format);

    // sampling rate must be specified for direct outputs
    if (sampleRate == 0 && (mFlags & AUDIO_OUTPUT_FLAG_DIRECT) != 0) {
+1 −2
Original line number Diff line number Diff line
@@ -55,8 +55,7 @@ NBAIO_Format Format_from_SR_C(unsigned sampleRate, unsigned channelCount,
    ret.mSampleRate = sampleRate;
    ret.mChannelCount = channelCount;
    ret.mFormat = format;
    ret.mFrameSize = audio_is_linear_pcm(format) ?
            channelCount * audio_bytes_per_sample(format) : sizeof(uint8_t);
    ret.mFrameSize = audio_bytes_per_frame(channelCount, format);
    return ret;
}

+1 −2
Original line number Diff line number Diff line
@@ -113,8 +113,7 @@ TrackBase::TrackBase(
        mChannelCount(isOut ?
                audio_channel_count_from_out_mask(channelMask) :
                audio_channel_count_from_in_mask(channelMask)),
        mFrameSize(audio_has_proportional_frames(format) ?
                mChannelCount * audio_bytes_per_sample(format) : sizeof(int8_t)),
        mFrameSize(audio_bytes_per_frame(mChannelCount, format)),
        mFrameCount(frameCount),
        mSessionId(sessionId),
        mIsOut(isOut),