summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorqctecmdr <qctecmdr@localhost>2019-11-21 01:03:21 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2019-11-21 01:03:21 -0800
commite5e1289ff22545eb89491d405432a8e302859472 (patch)
treee7d079a9115dc60dd46168edcab9eaf05ec38c82
parent520ed653f5ebadddaae5f4ad869b3bb8313e2883 (diff)
parent5e4ae6f4b8fd8699abf50fb44d06c55b41578ecb (diff)
downloadandroid_hardware_qcom_media-e5e1289ff22545eb89491d405432a8e302859472.tar.gz
android_hardware_qcom_media-e5e1289ff22545eb89491d405432a8e302859472.tar.bz2
android_hardware_qcom_media-e5e1289ff22545eb89491d405432a8e302859472.zip
Merge "mm-video-v4l2: vdec: Check for invalid timestamp in ETB"
-rw-r--r--mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp b/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp
index b644567a..179f53cb 100644
--- a/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp
+++ b/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp
@@ -7378,6 +7378,16 @@ OMX_ERRORTYPE omx_vdec::empty_this_buffer(OMX_IN OMX_HANDLETYPE hComp,
buffer->pBuffer = (OMX_U8*)drv_ctx.ptr_inputbuffer[nBufferIndex].bufferaddr;
}
+ /* Check if the input timestamp in seconds is greater than LONG_MAX
+ or lesser than LONG_MIN. */
+ if (buffer->nTimeStamp / 1000000 > LONG_MAX ||
+ buffer->nTimeStamp / 1000000 < LONG_MIN) {
+ /* This timestamp cannot be contained in driver timestamp field */
+ DEBUG_PRINT_ERROR("[ETB] BHdr(%p) pBuf(%p) nTS(%lld) nFL(%u) >> Invalid timestamp",
+ buffer, buffer->pBuffer, buffer->nTimeStamp, (unsigned int)buffer->nFilledLen);
+ return OMX_ErrorBadParameter;
+ }
+
DEBUG_PRINT_LOW("[ETB] BHdr(%p) pBuf(%p) nTS(%lld) nFL(%u)",
buffer, buffer->pBuffer, buffer->nTimeStamp, (unsigned int)buffer->nFilledLen);
if (arbitrary_bytes) {
@@ -8548,11 +8558,6 @@ OMX_ERRORTYPE omx_vdec::fill_buffer_done(OMX_HANDLETYPE hComp,
}
}
- if (buffer->nTimeStamp < 0) {
- DEBUG_PRINT_ERROR("[FBD] Invalid buffer timestamp %lld", (long long)buffer->nTimeStamp);
- return OMX_ErrorBadParameter;
- }
-
VIDC_TRACE_INT_LOW("FBD-TS", buffer->nTimeStamp / 1000);
if (m_cb.FillBufferDone) {