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

Commit cdded187 authored by Andreas Huber's avatar Andreas Huber Committed by Android (Google) Code Review
Browse files

Merge "Ignore corrupt aac audio frames and substitute silence." into froyo

parents 040301ca 3f26cade
Loading
Loading
Loading
Loading
+19 −12
Original line number Diff line number Diff line
@@ -203,18 +203,24 @@ status_t AACDecoder::read(

    Int decoderErr = PVMP4AudioDecodeFrame(mConfig, mDecoderBuf);

    size_t numOutBytes =
        mConfig->frameLength * sizeof(int16_t) * mConfig->desiredChannels;

    if (decoderErr != MP4AUDEC_SUCCESS) {
        LOGE("AAC decoder returned error %d", decoderErr);
        LOGW("AAC decoder returned error %d, substituting silence", decoderErr);

        buffer->release();
        buffer = NULL;
        memset(buffer->data(), 0, numOutBytes);

        return ERROR_MALFORMED;
        // Discard input buffer.
        mInputBuffer->release();
        mInputBuffer = NULL;

        // fall through
    }

    buffer->set_range(
            0, mConfig->frameLength * sizeof(int16_t) * mConfig->desiredChannels);
    buffer->set_range(0, numOutBytes);

    if (mInputBuffer != NULL) {
        mInputBuffer->set_range(
                mInputBuffer->range_offset() + mConfig->inputBufferUsedLength,
                mInputBuffer->range_length() - mConfig->inputBufferUsedLength);
@@ -223,6 +229,7 @@ status_t AACDecoder::read(
            mInputBuffer->release();
            mInputBuffer = NULL;
        }
    }

    buffer->meta_data()->setInt64(
            kKeyTime,