aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhding3 <haitao.ding@intel.com>2014-12-04 09:11:40 +0800
committerEd Tam <etam@google.com>2014-12-05 12:59:06 -0800
commitc8580eefbc2dc1a563a3a327bba6b1e5cc9aca5c (patch)
tree297baf9d34529455d643ffe6005bf6b59cb9608b
parent7c51a53fdded8c5115afd1f2f32dfd269841ec9e (diff)
downloadwrs_omxil_core-c8580eefbc2dc1a563a3a327bba6b1e5cc9aca5c.tar.gz
BZ: 230000 Bug:18575549 Ignore buffer return when format change happens for meta data mode. The patch was ported from imin_legacy branch: https://android.intel.com:443/291947 Change-Id: I9226eb87d273d25a3c8152d0e5837a29bb574ac1 Signed-off-by: hding3 <haitao.ding@intel.com>
-rw-r--r--base/src/portbase.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/base/src/portbase.cpp b/base/src/portbase.cpp
index e939960..a43fe86 100644
--- a/base/src/portbase.cpp
+++ b/base/src/portbase.cpp
@@ -754,16 +754,20 @@ OMX_ERRORTYPE PortBase::RetainAndReturnBuffer( OMX_BUFFERHEADERTYPE *pRetain, OM
length = queue_length(&bufferq);
OMX_BUFFERHEADERTYPE *p;
/* remove returned buffer from the queue */
- for (OMX_U32 i = 0; i < length; i++) {
+ OMX_U32 i = 0;
+ for (i = 0; i < length; i++) {
p = (OMX_BUFFERHEADERTYPE *)queue_pop_head(&bufferq);
if (p == pReturn) {
break;
}
queue_push_tail(&bufferq, p);
}
-
pthread_mutex_unlock(&bufferq_lock);
+ if (i == length) {
+ return OMX_ErrorNone;
+ }
+
return ReturnThisBuffer(pReturn);
}