Loading media/libstagefright/codecs/aacdec/SoftAAC2.cpp +11 −19 Original line number Diff line number Diff line Loading @@ -929,30 +929,22 @@ void SoftAAC2::onQueueFilled(OMX_U32 /* portIndex */) { } if (mEndOfInput) { if (outputDelayRingBufferSamplesAvailable() > 0 && outputDelayRingBufferSamplesAvailable() < mStreamInfo->frameSize * mStreamInfo->numChannels) { ALOGE("not a complete frame of samples available"); mSignalledError = true; notify(OMX_EventError, OMX_ErrorUndefined, 0, NULL); return; } if (mEndOfInput && !outQueue.empty() && outputDelayRingBufferSamplesAvailable() == 0) { int ringBufAvail = outputDelayRingBufferSamplesAvailable(); if (!outQueue.empty() && ringBufAvail < mStreamInfo->frameSize * mStreamInfo->numChannels) { if (!mEndOfOutput) { // send empty block signaling EOS // send partial or empty block signaling EOS mEndOfOutput = true; BufferInfo *outInfo = *outQueue.begin(); OMX_BUFFERHEADERTYPE *outHeader = outInfo->mHeader; if (outHeader->nOffset != 0) { ALOGE("outHeader->nOffset != 0 is not handled"); mSignalledError = true; notify(OMX_EventError, OMX_ErrorUndefined, 0, NULL); return; INT_PCM *outBuffer = reinterpret_cast<INT_PCM *>(outHeader->pBuffer + outHeader->nOffset); int32_t ns = outputDelayRingBufferGetSamples(outBuffer, ringBufAvail); if (ns < 0) { ns = 0; } outHeader->nFilledLen = 0; outHeader->nFilledLen = ns; outHeader->nFlags = OMX_BUFFERFLAG_EOS; outHeader->nTimeStamp = mBufferTimestamps.itemAt(0); Loading Loading @@ -991,7 +983,7 @@ void SoftAAC2::onPortFlushCompleted(OMX_U32 portIndex) { } int32_t ns = outputDelayRingBufferGetSamples(0, avail); if (ns != avail) { ALOGE("not a complete frame of samples available"); ALOGW("not a complete frame of samples available"); break; } mOutputBufferCount++; Loading Loading
media/libstagefright/codecs/aacdec/SoftAAC2.cpp +11 −19 Original line number Diff line number Diff line Loading @@ -929,30 +929,22 @@ void SoftAAC2::onQueueFilled(OMX_U32 /* portIndex */) { } if (mEndOfInput) { if (outputDelayRingBufferSamplesAvailable() > 0 && outputDelayRingBufferSamplesAvailable() < mStreamInfo->frameSize * mStreamInfo->numChannels) { ALOGE("not a complete frame of samples available"); mSignalledError = true; notify(OMX_EventError, OMX_ErrorUndefined, 0, NULL); return; } if (mEndOfInput && !outQueue.empty() && outputDelayRingBufferSamplesAvailable() == 0) { int ringBufAvail = outputDelayRingBufferSamplesAvailable(); if (!outQueue.empty() && ringBufAvail < mStreamInfo->frameSize * mStreamInfo->numChannels) { if (!mEndOfOutput) { // send empty block signaling EOS // send partial or empty block signaling EOS mEndOfOutput = true; BufferInfo *outInfo = *outQueue.begin(); OMX_BUFFERHEADERTYPE *outHeader = outInfo->mHeader; if (outHeader->nOffset != 0) { ALOGE("outHeader->nOffset != 0 is not handled"); mSignalledError = true; notify(OMX_EventError, OMX_ErrorUndefined, 0, NULL); return; INT_PCM *outBuffer = reinterpret_cast<INT_PCM *>(outHeader->pBuffer + outHeader->nOffset); int32_t ns = outputDelayRingBufferGetSamples(outBuffer, ringBufAvail); if (ns < 0) { ns = 0; } outHeader->nFilledLen = 0; outHeader->nFilledLen = ns; outHeader->nFlags = OMX_BUFFERFLAG_EOS; outHeader->nTimeStamp = mBufferTimestamps.itemAt(0); Loading Loading @@ -991,7 +983,7 @@ void SoftAAC2::onPortFlushCompleted(OMX_U32 portIndex) { } int32_t ns = outputDelayRingBufferGetSamples(0, avail); if (ns != avail) { ALOGE("not a complete frame of samples available"); ALOGW("not a complete frame of samples available"); break; } mOutputBufferCount++; Loading