summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMalathi Gottam <mgottam@codeaurora.org>2020-05-21 14:35:58 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2020-06-07 23:23:28 -0700
commit30a2a28d45793a4946c1667844a429adb43e8f90 (patch)
tree77d6002a7969a742a6aac5e1f3f418fd029c8ac1
parente5d42a17efc3e56fd913ae04ae50cf0f1efd0650 (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.cpp11
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);