aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNana Guo <nana.n.guo@intel.com>2015-12-17 13:06:07 -0500
committerPatrick Tjin <pattjin@google.com>2015-12-17 08:59:25 -0800
commit60f918a7a232576e3f77512ba729e4f9ccf49f25 (patch)
tree20929b5960a0e5b12676a5ea3d2825805237e929
parent64a9b8fb6b6c6538b1bf1d4b1c9f22ca139093a9 (diff)
downloadwrs_omxil_core-60f918a7a232576e3f77512ba729e4f9ccf49f25.tar.gz
wrs_omxil: re-cal clock time for nsec overflow case
re-cal clock time if nsec overflows to make sure the right time for pthread_cond_timewait Bug: 25834559 Change-Id: I325fc3c032dd0d7b465c3aa44ff1b95700f89835 Signed-off-by: Nana Guo <nana.n.guo@intel.com>
-rw-r--r--base/src/portbase.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/base/src/portbase.cpp b/base/src/portbase.cpp
index de91e7c..a707876 100644
--- a/base/src/portbase.cpp
+++ b/base/src/portbase.cpp
@@ -595,6 +595,11 @@ OMX_ERRORTYPE PortBase::WaitPortBufferCompletionTimeout(int64_t milliseconds)
clock_gettime(CLOCK_REALTIME, &tv);
tv.tv_sec += milliseconds/1000;
tv.tv_nsec+= (milliseconds%1000) * 1000000;
+ if (tv.tv_nsec >= 1000000000) {
+ tv.tv_sec += 1;
+ tv.tv_nsec -= 1000000000;
+ }
+
rc = pthread_cond_timedwait(&hdrs_wait, &hdrs_lock, &tv);
}
if (rc == ETIMEDOUT) {