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) {