summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2019-05-04 23:03:49 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2019-05-04 23:03:49 +0000
commitae7bd65ea1525f352053265fcbd4dc0b68c5b2a8 (patch)
treed0ba55fd46cb12b1197726bb18effab6d9c9c421
parentf5a1adc40643f3a506d7f759fa4ace321254511c (diff)
parent3ea8f1d536da8f09f3e663cf173fe4f1b0fe4130 (diff)
downloadlibmpeg2-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.c33
-rw-r--r--common/impeg2_buf_mgr.h4
-rw-r--r--decoder/impeg2d_api_main.c38
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
{