Revert "decoder: set u4_frame_decoded to true only after both fields are decoded"

This reverts commit f76370c671.

Reason: This breaks interlaced clips which are sent one field at a time

C2 plugin for avc decoder is now updated to appropriately handle both
types of interlaced content, i.e. sent as one field per one input buffer
and sent as two fields per one input

Bug: 135146280
Bug: 152087140
Test: poc in bugs
Test: atest android.media.cts.DecoderTest

Change-Id: Ic79d13a4bd93573767c86ed31264e8780da8d9a5
This commit is contained in:
Harish Mahendrakar 2020-04-02 05:17:42 +05:30 committed by Wonsik Kim
parent 7286f5f021
commit e0ad0016f0

View file

@ -843,7 +843,12 @@ WORD32 ih264d_end_of_pic_dispbuf_mgr(dec_struct_t * ps_dec)
if(ret != OK)
return ret;
{
ivd_video_decode_op_t * ps_dec_output =
(ivd_video_decode_op_t *)ps_dec->pv_dec_out;
ps_dec_output->u4_frame_decoded_flag = 1;
}
if(ps_dec->au1_pic_buf_ref_flag[ps_dec->u1_pic_buf_id] == 0)
{
ih264_buf_mgr_release((buf_mgr_t *)ps_dec->pv_mv_buf_mgr,
@ -864,11 +869,6 @@ WORD32 ih264d_end_of_pic_dispbuf_mgr(dec_struct_t * ps_dec)
|| ((TOP_FIELD_ONLY | BOT_FIELD_ONLY)
== ps_dec->u1_top_bottom_decoded))
{
ivd_video_decode_op_t * ps_dec_output =
(ivd_video_decode_op_t *)ps_dec->pv_dec_out;
/* u4_frame_decoded_flag is set to 1 only after both fields
* are decoded or it is not a field */
ps_dec_output->u4_frame_decoded_flag = 1;
if(IVD_DECODE_FRAME_OUT == ps_dec->e_frm_out_mode)
{
ret = ih264d_assign_display_seq(ps_dec);