diff options
author | Harish Mahendrakar <harish.mahendrakar@ittiam.com> | 2020-04-02 05:17:42 +0530 |
---|---|---|
committer | Wonsik Kim <wonsik@google.com> | 2020-04-06 15:33:53 -0700 |
commit | e0ad0016f0f545ab1c15c3769b5e69a80a8b4c0e (patch) | |
tree | 003bd20a15ba378c92143ab41e55e32fffbb1b40 | |
parent | 7286f5f02166585585ba6d31916f802a64ad8b31 (diff) | |
download | platform_external_libavc-e0ad0016f0f545ab1c15c3769b5e69a80a8b4c0e.tar.gz platform_external_libavc-e0ad0016f0f545ab1c15c3769b5e69a80a8b4c0e.tar.bz2 platform_external_libavc-e0ad0016f0f545ab1c15c3769b5e69a80a8b4c0e.zip |
Revert "decoder: set u4_frame_decoded to true only after both fields are decoded"
This reverts commit f76370c67166496742be22568b27e3d4e01b6267.
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
-rw-r--r-- | decoder/ih264d_parse_slice.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/decoder/ih264d_parse_slice.c b/decoder/ih264d_parse_slice.c index 5e6d64b..927f1c0 100644 --- a/decoder/ih264d_parse_slice.c +++ b/decoder/ih264d_parse_slice.c @@ -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); |