diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2019-05-04 23:03:49 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2019-05-04 23:03:49 +0000 |
commit | ae7bd65ea1525f352053265fcbd4dc0b68c5b2a8 (patch) | |
tree | d0ba55fd46cb12b1197726bb18effab6d9c9c421 | |
parent | f5a1adc40643f3a506d7f759fa4ace321254511c (diff) | |
parent | 3ea8f1d536da8f09f3e663cf173fe4f1b0fe4130 (diff) | |
download | libmpeg2-ae7bd65ea1525f352053265fcbd4dc0b68c5b2a8.tar.gz |
Snap for 5533229 from 3ea8f1d536da8f09f3e663cf173fe4f1b0fe4130 to qt-releaseandroid-vts-10.0_r9android-vts-10.0_r8android-vts-10.0_r7android-vts-10.0_r6android-vts-10.0_r5android-vts-10.0_r4android-vts-10.0_r3android-vts-10.0_r2android-vts-10.0_r16android-vts-10.0_r15android-vts-10.0_r14android-vts-10.0_r13android-vts-10.0_r12android-vts-10.0_r11android-vts-10.0_r10android-vts-10.0_r1android-security-10.0.0_r75android-security-10.0.0_r74android-security-10.0.0_r73android-security-10.0.0_r72android-security-10.0.0_r71android-security-10.0.0_r70android-security-10.0.0_r69android-security-10.0.0_r68android-security-10.0.0_r67android-security-10.0.0_r66android-security-10.0.0_r65android-security-10.0.0_r64android-security-10.0.0_r63android-security-10.0.0_r62android-security-10.0.0_r61android-security-10.0.0_r60android-security-10.0.0_r59android-security-10.0.0_r58android-security-10.0.0_r57android-security-10.0.0_r56android-security-10.0.0_r55android-security-10.0.0_r54android-security-10.0.0_r53android-security-10.0.0_r52android-security-10.0.0_r51android-security-10.0.0_r50android-security-10.0.0_r49android-security-10.0.0_r48android-cts-10.0_r9android-cts-10.0_r8android-cts-10.0_r7android-cts-10.0_r6android-cts-10.0_r5android-cts-10.0_r4android-cts-10.0_r3android-cts-10.0_r2android-cts-10.0_r16android-cts-10.0_r15android-cts-10.0_r14android-cts-10.0_r13android-cts-10.0_r12android-cts-10.0_r11android-cts-10.0_r10android-cts-10.0_r1android-10.0.0_r6android-10.0.0_r5android-10.0.0_r47android-10.0.0_r46android-10.0.0_r4android-10.0.0_r3android-10.0.0_r2android-10.0.0_r17android-10.0.0_r11android-10.0.0_r10android-10.0.0_r1android10-tests-releaseandroid10-security-releaseandroid10-s3-releaseandroid10-s2-releaseandroid10-s1-releaseandroid10-release
Change-Id: I48c58ca636958a8670b5662d82be8088c189fb88
-rw-r--r-- | common/impeg2_buf_mgr.c | 33 | ||||
-rw-r--r-- | common/impeg2_buf_mgr.h | 4 | ||||
-rw-r--r-- | decoder/impeg2d_api_main.c | 38 |
3 files changed, 43 insertions, 32 deletions
diff --git a/common/impeg2_buf_mgr.c b/common/impeg2_buf_mgr.c index c4aca4a..498259f 100644 --- a/common/impeg2_buf_mgr.c +++ b/common/impeg2_buf_mgr.c @@ -88,6 +88,39 @@ void impeg2_buf_mgr_init( } } +/** +******************************************************************************* +* +* @brief +* Buffer manager reset function. +* +* @par Description: +* Resets the buffer manager structure +* +* @param[in] ps_buf_mgr +* Pointer to the buffer manager +* +* @returns +* +* @remarks +* None +* +******************************************************************************* +*/ + +void impeg2_buf_mgr_reset( + buf_mgr_t *ps_buf_mgr) +{ + WORD32 id; + + ps_buf_mgr->u4_max_buf_cnt = BUF_MGR_MAX_CNT; + ps_buf_mgr->u4_active_buf_cnt = 0; + + for(id = 0; id < BUF_MGR_MAX_CNT; id++) + { + ps_buf_mgr->au4_status[id] = 0; + } +} /** ******************************************************************************* diff --git a/common/impeg2_buf_mgr.h b/common/impeg2_buf_mgr.h index 6b1cbef..aed157a 100644 --- a/common/impeg2_buf_mgr.h +++ b/common/impeg2_buf_mgr.h @@ -69,6 +69,10 @@ typedef struct void impeg2_buf_mgr_init( buf_mgr_t *ps_buf_mgr); +// resets the buffer API structure +void impeg2_buf_mgr_reset( + buf_mgr_t *ps_buf_mgr); + // Add buffer to buffer manager. 0: success, -1: fail (u4_active_buf_cnt has reached u4_max_buf_cnt) WORD32 impeg2_buf_mgr_add( buf_mgr_t *ps_buf_mgr, diff --git a/decoder/impeg2d_api_main.c b/decoder/impeg2d_api_main.c index d9bc644..33a7281 100644 --- a/decoder/impeg2d_api_main.c +++ b/decoder/impeg2d_api_main.c @@ -992,26 +992,11 @@ IV_API_CALL_STATUS_T impeg2d_api_reset(iv_obj_t *ps_dechdl, if(ps_dec_state_multi_core != NULL) { - if(ps_dec_state->aps_ref_pics[1] != NULL) - impeg2_buf_mgr_release(ps_dec_state->pv_pic_buf_mg, ps_dec_state->aps_ref_pics[1]->i4_buf_id, BUF_MGR_REF); - if(ps_dec_state->aps_ref_pics[0] != NULL) - impeg2_buf_mgr_release(ps_dec_state->pv_pic_buf_mg, ps_dec_state->aps_ref_pics[0]->i4_buf_id, BUF_MGR_REF); - while(1) - { - pic_buf_t *ps_disp_pic = impeg2_disp_mgr_get(&ps_dec_state->s_disp_mgr, &ps_dec_state->i4_disp_buf_id); - if(NULL == ps_disp_pic) - break; - if(0 == ps_dec_state->u4_share_disp_buf) - impeg2_buf_mgr_release(ps_dec_state->pv_pic_buf_mg, ps_disp_pic->i4_buf_id, BUF_MGR_DISP); - - } - - if((ps_dec_state->u4_deinterlace) && (NULL != ps_dec_state->ps_deint_pic)) - { - impeg2_buf_mgr_release(ps_dec_state->pv_pic_buf_mg, - ps_dec_state->ps_deint_pic->i4_buf_id, - MPEG2_BUF_MGR_DEINT); - } + impeg2_buf_mgr_reset(ps_dec_state->pv_pic_buf_mg); + /* Display buffer manager init behaves like a reset + * as it doesn't need to preserve picture buffer addresses + * like buffer manager */ + impeg2_disp_mgr_init(&ps_dec_state->s_disp_mgr); for(i4_num_threads = 0; i4_num_threads < MAX_THREADS; i4_num_threads++) { @@ -1102,18 +1087,7 @@ IV_API_CALL_STATUS_T impeg2d_api_set_params(iv_obj_t *ps_dechdl,void *pv_api_ip, if(ps_ctl_dec_ip->s_ivd_ctl_set_config_ip_t.u4_disp_wd != 0) { - if(ps_dec_state->u2_header_done == 1) - { - if (ps_ctl_dec_ip->s_ivd_ctl_set_config_ip_t.u4_disp_wd > ps_dec_state->u2_frame_width) - { - ps_dec_state->u4_frm_buf_stride = ps_ctl_dec_ip->s_ivd_ctl_set_config_ip_t.u4_disp_wd; - } - } - else - { - ps_dec_state->u4_frm_buf_stride = ps_ctl_dec_ip->s_ivd_ctl_set_config_ip_t.u4_disp_wd; - } - + ps_dec_state->u4_frm_buf_stride = ps_ctl_dec_ip->s_ivd_ctl_set_config_ip_t.u4_disp_wd; } else { |