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 <pchavan@codeaurora.org>
This commit is contained in:
committed by
Iliyan Malchev
parent
d21217ca8d
commit
e69a3cf5a5
@@ -2359,8 +2359,16 @@ u32 vcd_handle_frame_done(
|
|||||||
|
|
||||||
if (cctxt->decoding)
|
if (cctxt->decoding)
|
||||||
op_frm->vcd_frm.frame = transc->frame;
|
op_frm->vcd_frm.frame = transc->frame;
|
||||||
else
|
else {
|
||||||
transc->frame = op_frm->vcd_frm.frame;
|
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;
|
transc->frame_done = true;
|
||||||
|
|
||||||
if (transc->input_done && transc->frame_done) {
|
if (transc->input_done && transc->frame_done) {
|
||||||
|
|||||||
Reference in New Issue
Block a user