aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhao Liang <leo.zhao@intel.com>2013-12-31 13:13:03 +0800
committerPatrick Tjin <pattjin@google.com>2014-07-21 22:03:42 -0700
commit46a9a52901ba2f967e57fde33b8a496fc0c82670 (patch)
treee6fc318843ecd5d1c34bd9ce45e7c3f626f12f70
parent2fbd2a6c3abf7da5bdc40dc3539dd7bcc515f2e1 (diff)
downloadwrs_omxil_core-46a9a52901ba2f967e57fde33b8a496fc0c82670.tar.gz
Fix omx core klockwork issue
BZ: 161839 Change-Id: I074def618a0b6e4a5a178c55793d64c692c80438 Signed-off-by: Zhao Liang <leo.zhao@intel.com>
-rw-r--r--base/src/componentbase.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/base/src/componentbase.cpp b/base/src/componentbase.cpp
index 4aa8815..ff68212 100644
--- a/base/src/componentbase.cpp
+++ b/base/src/componentbase.cpp
@@ -1856,6 +1856,10 @@ void ComponentBase::Work(void)
return;
}
+ memset(buffers, 0, sizeof(OMX_BUFFERHEADERTYPE *) * nr_ports);
+ memset(buffers_hdr, 0, sizeof(OMX_BUFFERHEADERTYPE *) * nr_ports);
+ memset(buffers_org, 0, sizeof(OMX_BUFFERHEADERTYPE *) * nr_ports);
+
pthread_mutex_lock(&ports_block);
while(IsAllBufferAvailable())
@@ -1878,7 +1882,7 @@ void ComponentBase::Work(void)
PostProcessBuffers(buffers, &retain[0]);
for (i = 0; i < nr_ports; i++) {
- if (*buffers[i] == NULL)
+ if (buffers_hdr[i] == NULL)
continue;
if(retain[i] == BUFFER_RETAIN_GETAGAIN) {
@@ -1900,6 +1904,9 @@ void ComponentBase::Work(void)
else {
for (i = 0; i < nr_ports; i++) {
+ if (buffers_hdr[i] == NULL)
+ continue;
+
/* return buffers by hands, these buffers're not in queue */
ports[i]->ReturnThisBuffer(*buffers[i]);
/* flush ports */