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

Commit 36c87ca6 authored by Andreas Huber's avatar Andreas Huber Committed by Android Git Automerger
Browse files

am 10d40772: am cdded187: Merge "Ignore corrupt aac audio frames and...

am 10d40772: am cdded187: Merge "Ignore corrupt aac audio frames and substitute silence." into froyo

Merge commit '10d40772' into kraken

* commit '10d40772':
  Ignore corrupt aac audio frames and substitute silence.
parents e8985420 10d40772
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,