diff options
author | Nana Guo <nana.n.guo@intel.com> | 2015-12-17 13:06:07 -0500 |
---|---|---|
committer | Patrick Tjin <pattjin@google.com> | 2015-12-17 08:59:25 -0800 |
commit | 60f918a7a232576e3f77512ba729e4f9ccf49f25 (patch) | |
tree | 20929b5960a0e5b12676a5ea3d2825805237e929 | |
parent | 64a9b8fb6b6c6538b1bf1d4b1c9f22ca139093a9 (diff) | |
download | wrs_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.cpp | 5 |
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) { |