diff options
author | Hamsalekha S <hamsalekha.s@ittiam.com> | 2017-06-06 10:26:16 +0530 |
---|---|---|
committer | Dan Pasanen <dan.pasanen@gmail.com> | 2017-09-15 10:18:43 -0500 |
commit | 73ff61bcd6983ca5dfe9cc2cebbb71f045f142f0 (patch) | |
tree | 2e9821b790d753acad5ae7315cff5630f4f168ea /decoder/ih264d_parse_slice.c | |
parent | 1a4a25a4a3a8142989911778c3bd72cca55228a2 (diff) | |
download | android_external_libavc-73ff61bcd6983ca5dfe9cc2cebbb71f045f142f0.tar.gz android_external_libavc-73ff61bcd6983ca5dfe9cc2cebbb71f045f142f0.tar.bz2 android_external_libavc-73ff61bcd6983ca5dfe9cc2cebbb71f045f142f0.zip |
Initialize DPB structures to valid values.
When the first frame is a B frame, the colocated picture
will now point to the current frame.
Test: run poc with and without this patch
Bug: 38115076
Change-Id: I48a8f128740551d6a9252931dafcf8c629ecad0d
(cherry picked from commit b8d362561e48dde8898eb0415f298d64e76f2b7c)
Diffstat (limited to 'decoder/ih264d_parse_slice.c')
-rw-r--r-- | decoder/ih264d_parse_slice.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/decoder/ih264d_parse_slice.c b/decoder/ih264d_parse_slice.c index ab9f3f6..849b9c5 100644 --- a/decoder/ih264d_parse_slice.c +++ b/decoder/ih264d_parse_slice.c @@ -441,11 +441,23 @@ WORD32 ih264d_start_of_pic(dec_struct_t *ps_dec, ps_dec->au1_pic_buf_ref_flag[cur_pic_buf_id] = 0; { - /*make first entry of list0 point to cur pic,so that if first Islice is in error, ref pic struct will have valid entries*/ + /*make first entry of list0 and list1 point to cur pic, + *so that if first slice is in error, ref pic struct will have valid entries*/ ps_dec->ps_ref_pic_buf_lx[0] = ps_dec->ps_dpb_mgr->ps_init_dpb[0]; + ps_dec->ps_ref_pic_buf_lx[1] = ps_dec->ps_dpb_mgr->ps_init_dpb[1]; *(ps_dec->ps_dpb_mgr->ps_init_dpb[0][0]) = *ps_cur_pic; /* Initialize for field reference as well */ *(ps_dec->ps_dpb_mgr->ps_init_dpb[0][MAX_REF_BUFS]) = *ps_cur_pic; + + *(ps_dec->ps_dpb_mgr->ps_mod_dpb[0][0]) = *ps_cur_pic; + /* Initialize for field reference as well */ + *(ps_dec->ps_dpb_mgr->ps_mod_dpb[0][MAX_REF_BUFS]) = *ps_cur_pic; + *(ps_dec->ps_dpb_mgr->ps_init_dpb[1][0]) = *ps_cur_pic; + /* Initialize for field reference as well */ + *(ps_dec->ps_dpb_mgr->ps_init_dpb[1][MAX_REF_BUFS]) = *ps_cur_pic; + *(ps_dec->ps_dpb_mgr->ps_mod_dpb[1][0]) = *ps_cur_pic; + /* Initialize for field reference as well */ + *(ps_dec->ps_dpb_mgr->ps_mod_dpb[1][MAX_REF_BUFS]) = *ps_cur_pic; } if(!ps_dec->ps_cur_pic) |