Loading media/libstagefright/codecs/flac/enc/SoftFlacEncoder.cpp +32 −39 Original line number Diff line number Diff line Loading @@ -399,6 +399,7 @@ void SoftFlacEncoder::onQueueFilled(OMX_U32 portIndex) { mEncoderWriteData = true; mEncoderReturnedEncodedData = false; mEncoderReturnedNbBytes = 0; if (inHeader->nFilledLen) { mCurrentInputTimeStamp = inHeader->nTimeStamp; const unsigned nbInputFrames = inHeader->nFilledLen / frameSize; Loading @@ -422,6 +423,7 @@ void SoftFlacEncoder::onQueueFilled(OMX_U32 portIndex) { mFlacStreamEncoder, mInputBufferPcm32, nbInputFrames /*samples per channel*/ ); } inInfo->mOwnedByUs = false; inQueue.erase(inQueue.begin()); Loading @@ -434,32 +436,23 @@ void SoftFlacEncoder::onQueueFilled(OMX_U32 portIndex) { OMX_BUFFERHEADERTYPE *outHeader = outInfo->mHeader; if (ok) { if (mEncoderReturnedEncodedData && (mEncoderReturnedNbBytes != 0)) { ALOGV(" dequeueing buffer on output port after writing data"); outInfo->mOwnedByUs = false; outQueue.erase(outQueue.begin()); outInfo = NULL; notifyFillBufferDone(outHeader); outHeader = NULL; mEncoderReturnedEncodedData = false; } else { ALOGV(" encoder process_interleaved returned without data to write"); if (mSawInputEOS) { ALOGV("encoded %d, bytes %lld, eos %d", mEncoderReturnedEncodedData, (long long )mEncoderReturnedNbBytes, mSawInputEOS); if (mSawInputEOS && !mEncoderReturnedEncodedData) { ALOGV("finishing encoder"); mSentOutputEOS = true; FLAC__stream_encoder_finish(mFlacStreamEncoder); if (mEncoderReturnedEncodedData && (mEncoderReturnedNbBytes != 0)) { ALOGV(" dequeueing residual buffer on output port after writing data"); outHeader->nFlags = OMX_BUFFERFLAG_EOS; } if (mSawInputEOS || mEncoderReturnedEncodedData) { ALOGV(" dequeueing buffer on output port after writing data"); outInfo->mOwnedByUs = false; outQueue.erase(outQueue.begin()); outInfo = NULL; outHeader->nFlags = OMX_BUFFERFLAG_EOS; notifyFillBufferDone(outHeader); outHeader = NULL; mEncoderReturnedEncodedData = false; } } } } else { ALOGE(" error encountered during encoding"); mSignalledError = true; Loading Loading
media/libstagefright/codecs/flac/enc/SoftFlacEncoder.cpp +32 −39 Original line number Diff line number Diff line Loading @@ -399,6 +399,7 @@ void SoftFlacEncoder::onQueueFilled(OMX_U32 portIndex) { mEncoderWriteData = true; mEncoderReturnedEncodedData = false; mEncoderReturnedNbBytes = 0; if (inHeader->nFilledLen) { mCurrentInputTimeStamp = inHeader->nTimeStamp; const unsigned nbInputFrames = inHeader->nFilledLen / frameSize; Loading @@ -422,6 +423,7 @@ void SoftFlacEncoder::onQueueFilled(OMX_U32 portIndex) { mFlacStreamEncoder, mInputBufferPcm32, nbInputFrames /*samples per channel*/ ); } inInfo->mOwnedByUs = false; inQueue.erase(inQueue.begin()); Loading @@ -434,32 +436,23 @@ void SoftFlacEncoder::onQueueFilled(OMX_U32 portIndex) { OMX_BUFFERHEADERTYPE *outHeader = outInfo->mHeader; if (ok) { if (mEncoderReturnedEncodedData && (mEncoderReturnedNbBytes != 0)) { ALOGV(" dequeueing buffer on output port after writing data"); outInfo->mOwnedByUs = false; outQueue.erase(outQueue.begin()); outInfo = NULL; notifyFillBufferDone(outHeader); outHeader = NULL; mEncoderReturnedEncodedData = false; } else { ALOGV(" encoder process_interleaved returned without data to write"); if (mSawInputEOS) { ALOGV("encoded %d, bytes %lld, eos %d", mEncoderReturnedEncodedData, (long long )mEncoderReturnedNbBytes, mSawInputEOS); if (mSawInputEOS && !mEncoderReturnedEncodedData) { ALOGV("finishing encoder"); mSentOutputEOS = true; FLAC__stream_encoder_finish(mFlacStreamEncoder); if (mEncoderReturnedEncodedData && (mEncoderReturnedNbBytes != 0)) { ALOGV(" dequeueing residual buffer on output port after writing data"); outHeader->nFlags = OMX_BUFFERFLAG_EOS; } if (mSawInputEOS || mEncoderReturnedEncodedData) { ALOGV(" dequeueing buffer on output port after writing data"); outInfo->mOwnedByUs = false; outQueue.erase(outQueue.begin()); outInfo = NULL; outHeader->nFlags = OMX_BUFFERFLAG_EOS; notifyFillBufferDone(outHeader); outHeader = NULL; mEncoderReturnedEncodedData = false; } } } } else { ALOGE(" error encountered during encoding"); mSignalledError = true; Loading