From e69a3cf5a54ca6ee2d75ce04903f558e8994749c Mon Sep 17 00:00:00 2001 From: Praveen Chavan Date: Thu, 18 Apr 2013 11:34:22 -0700 Subject: [PATCH] msm: vidc: set EOS on output buffer pending transaction If EOS is signalled while an output buffer is in transaction, mark EOS when that buffer is returned. This is observed in case client sends an empty buffer with EOS. Change-Id: Idc050c9a76157bcf8a80e254e550f956537f98f1 Signed-off-by: Praveen Chavan --- drivers/video/msm/vidc/common/vcd/vcd_sub.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/video/msm/vidc/common/vcd/vcd_sub.c b/drivers/video/msm/vidc/common/vcd/vcd_sub.c index 138e1965204..699d569597c 100644 --- a/drivers/video/msm/vidc/common/vcd/vcd_sub.c +++ b/drivers/video/msm/vidc/common/vcd/vcd_sub.c @@ -2359,8 +2359,16 @@ u32 vcd_handle_frame_done( if (cctxt->decoding) op_frm->vcd_frm.frame = transc->frame; - else - transc->frame = op_frm->vcd_frm.frame; + else { + transc->frame = op_frm->vcd_frm.frame; + if ((transc->flags & VCD_FRAME_FLAG_EOS) && + !(op_frm->vcd_frm.flags & VCD_FRAME_FLAG_EOS)) { + op_frm->vcd_frm.flags |= VCD_FRAME_FLAG_EOS; + pr_err("%s: add EOS flag to the output "\ + "from transc(0x%x)", + __func__, (u32)transc); + } + } transc->frame_done = true; if (transc->input_done && transc->frame_done) {