vidc:720p: Fix first buffer with EOS flag in video decoder

The video driver is throwing error for erronious header
input buffer with EOS flag enabled. This commit will
fix the error case by amending the EOS handling for the
first buffer.

CRs-fixed: 370048
Change-Id: I8917aa288d6547319e8b1df54e27afd69ab36162
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
This commit is contained in:
Maheshwar Ajja 2012-06-14 12:24:18 +05:30 committed by Stephen Boyd
parent dc7422cd01
commit 849e25608e
2 changed files with 11 additions and 6 deletions

View file

@ -391,8 +391,10 @@ static u32 ddl_handle_core_recoverable_errors(struct ddl_context \
ddl->decoding &&
!ddl->codec_data.decoder.header_in_start &&
!ddl->codec_data.decoder.dec_disp_info.img_size_x &&
!ddl->codec_data.decoder.dec_disp_info.img_size_y
) {
!ddl->codec_data.decoder.dec_disp_info.img_size_y &&
!eos) {
DBG("Treat header in start error %u as success",
vcd_status);
/* this is first frame seq. header only case */
vcd_status = VCD_S_SUCCESS;
ddl->input_frame.vcd_frm.flags |=
@ -426,9 +428,10 @@ static u32 ddl_handle_core_recoverable_errors(struct ddl_context \
}
/* if it is decoder EOS case */
if (ddl->decoding && eos)
if (ddl->decoding && eos) {
DBG("DEC-EOS_RUN");
ddl_decode_eos_run(ddl);
else
} else
DDL_IDLE(ddl_context);
return true;

View file

@ -2045,10 +2045,12 @@ u32 vcd_handle_input_done_in_eos(
transc->in_use = true;
if ((codec_config &&
(status != VCD_ERR_BITSTREAM_ERR)) ||
((status == VCD_ERR_BITSTREAM_ERR) &&
(codec_config && (status == VCD_ERR_BITSTREAM_ERR) &&
!(cctxt->status.mask & VCD_FIRST_IP_DONE) &&
(core_type == VCD_CORE_720P)))
(core_type == VCD_CORE_720P))) {
VCD_MSG_HIGH("handle EOS for codec config");
vcd_handle_eos_done(cctxt, transc, VCD_S_SUCCESS);
}
}
return rc;
}