diff options
author | Malathi Gottam <mgottam@codeaurora.org> | 2020-05-21 14:35:58 +0530 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2020-06-07 23:23:28 -0700 |
commit | 30a2a28d45793a4946c1667844a429adb43e8f90 (patch) | |
tree | 77d6002a7969a742a6aac5e1f3f418fd029c8ac1 | |
parent | e5d42a17efc3e56fd913ae04ae50cf0f1efd0650 (diff) |
mm-video-v4l2: Limit the filledLen in omx hdr to max buffer size
In case if the filled length of buffer in Video HAL exceeds
max allocated buffer size, then set filledlen of openmax header
as this max size instead of NULL.
Change-Id: I49120bcd3d3afb2b56190943aac03a019641ef89
-rw-r--r-- | mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp | 11 |
1 files changed, 5 insertions, 6 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 4d300dbf..180da0c2 100644 --- a/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp +++ b/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp @@ -8986,6 +8986,11 @@ int omx_vdec::async_message_process (void *context, void* message) if (vdec_msg->msgdata.output_frame.len <= omxhdr->nAllocLen) { omxhdr->nFilledLen = vdec_msg->msgdata.output_frame.len; + } else { + DEBUG_PRINT_ERROR("Invalid filled length = %u, set it as buffer size = %u", + (unsigned int)vdec_msg->msgdata.output_frame.len, omxhdr->nAllocLen); + omxhdr->nFilledLen = omxhdr->nAllocLen; + } omxhdr->nOffset = vdec_msg->msgdata.output_frame.offset; omxhdr->nTimeStamp = vdec_msg->msgdata.output_frame.time_stamp; omxhdr->nFlags = 0; @@ -9162,12 +9167,6 @@ int omx_vdec::async_message_process (void *context, void* message) ((unsigned long)vdec_msg->msgdata.output_frame.bufferaddr + (unsigned long)vdec_msg->msgdata.output_frame.offset), vdec_msg->msgdata.output_frame.len); - } else { - DEBUG_PRINT_ERROR("Invalid filled length = %u, buffer size = %u, prev_length = %u", - (unsigned int)vdec_msg->msgdata.output_frame.len, - omxhdr->nAllocLen, omx->prev_n_filled_len); - omxhdr->nFilledLen = 0; - } omx->post_event ((unsigned long)omxhdr, vdec_msg->status_code, OMX_COMPONENT_GENERATE_FBD); |