diff options
author | qctecmdr <qctecmdr@localhost> | 2019-11-21 01:03:21 -0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2019-11-21 01:03:21 -0800 |
commit | e5e1289ff22545eb89491d405432a8e302859472 (patch) | |
tree | e7d079a9115dc60dd46168edcab9eaf05ec38c82 | |
parent | 520ed653f5ebadddaae5f4ad869b3bb8313e2883 (diff) | |
parent | 5e4ae6f4b8fd8699abf50fb44d06c55b41578ecb (diff) | |
download | android_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.cpp | 15 |
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) { |