diff options
author | Harish Mahendrakar <harish.mahendrakar@ittiam.com> | 2019-12-17 15:42:03 -0800 |
---|---|---|
committer | Greg Wroblewski <musashi@google.com> | 2020-01-10 14:53:34 -0800 |
commit | 2eeb05bc66217c2f713b347fce7d5bc207a4b07d (patch) | |
tree | b3f58adf40d37d8c410bb91af3bfe02254a7943d | |
parent | 9039f3180426fb72155a7e8fcb4d637ab9a97bf2 (diff) | |
download | platform_external_libavc-security-oc-release.tar.gz platform_external_libavc-security-oc-release.tar.bz2 platform_external_libavc-security-oc-release.zip |
decoder: Fix minimum poc calculation check while adding to displayandroid-8.0.0_r50android-8.0.0_r49android-8.0.0_r48android-8.0.0_r47android-8.0.0_r46android-8.0.0_r45android-8.0.0_r44security-oc-releaseoreo-security-release
While adding the decoded buffer to display queue, allow buffer with
poc set to 0x7FFFFFFF
Bug: 145364230
Test: poc in bug
Change-Id: I2a15f73b8422cfa4fd3360bc21c0cea4542a3375
(cherry picked from commit ffcf2a87d66f935210ebd011eed474514d086b40)
-rw-r--r-- | decoder/ih264d_utils.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/decoder/ih264d_utils.c b/decoder/ih264d_utils.c index 9958f9b..4bcedd7 100644 --- a/decoder/ih264d_utils.c +++ b/decoder/ih264d_utils.c @@ -1227,7 +1227,9 @@ WORD32 ih264d_assign_display_seq(dec_struct_t *ps_dec) && (DO_NOT_DISP != ps_dpb_mgr->ai4_poc_buf_id_map[i][0])) { - if(i4_poc_buf_id_map[i][1] < i4_min_poc) + /* Checking for <= is necessary to handle cases where there is one + valid buffer with poc set to 0x7FFFFFFF. */ + if(i4_poc_buf_id_map[i][1] <= i4_min_poc) { i4_min_poc = i4_poc_buf_id_map[i][1]; i4_min_poc_buf_id = i4_poc_buf_id_map[i][0]; @@ -1290,8 +1292,8 @@ void ih264d_release_display_bufs(dec_struct_t *ps_dec) WORD32 (*i4_poc_buf_id_map)[3] = ps_dpb_mgr->ai4_poc_buf_id_map; i4_min_poc = 0x7fffffff; - i4_min_poc_buf_id = -1; - i4_min_index = -1; + i4_min_poc_buf_id = 0; + i4_min_index = 0; ih264d_delete_nonref_nondisplay_pics(ps_dpb_mgr); @@ -1302,7 +1304,9 @@ void ih264d_release_display_bufs(dec_struct_t *ps_dec) { if(i4_poc_buf_id_map[i][0] != -1) { - if(i4_poc_buf_id_map[i][1] < i4_min_poc) + /* Checking for <= is necessary to handle cases where there is one + valid buffer with poc set to 0x7FFFFFFF. */ + if(i4_poc_buf_id_map[i][1] <= i4_min_poc) { i4_min_poc = i4_poc_buf_id_map[i][1]; i4_min_poc_buf_id = i4_poc_buf_id_map[i][0]; |