Removed processing 0 length EOS frame in advance.
BZ: IMINAN-46982
When receiving 0 length frame, ISV will process it in advance.
If this frame is an EOS one, all frames remaining in out queue
will be freed. So just process 0 length EOS frame as normal one.
Fixes: 23916092
Test: netflix, play movies, youtube, test apk
Change-Id: If0dac3ad4fdb6a731712aacdab73c1ac6f9ae560
Signed-off-by: Lang Dai <[email protected]>
Signed-off-by: Austin Hu <[email protected]>
diff --git a/ISV/omx/isv_omxcomponent.cpp b/ISV/omx/isv_omxcomponent.cpp
index 1f87deb..043da1b 100644
--- a/ISV/omx/isv_omxcomponent.cpp
+++ b/ISV/omx/isv_omxcomponent.cpp
@@ -710,7 +710,7 @@
return OMX_ErrorUndefined;
}
- if(!mVPPEnabled || !mVPPOn || mVPPFlushing || pBuffer->nFilledLen == 0) {
+ if(!mVPPEnabled || !mVPPOn || mVPPFlushing || (pBuffer->nFilledLen == 0 && !(pBuffer->nFlags & OMX_BUFFERFLAG_EOS))) {
ALOGD_IF(ISV_COMPONENT_DEBUG, "%s: FillBufferDone pBuffer %p, timeStamp %.2f ms", __func__, pBuffer, pBuffer->nTimeStamp/1E3);
return mpCallBacks->FillBufferDone(&mBaseComponent, pAppData, pBuffer);
}