diff options
author | Ray Essick <essick@google.com> | 2016-06-21 21:15:43 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2016-06-21 21:15:43 +0000 |
commit | e8463cdf28c28907ea08e23708b3019a3eed1555 (patch) | |
tree | cdffc7649fa89b503c241cf41e240de03591e8ea | |
parent | 27b7a14f48a300acaf8baae18e963c2be0675e3d (diff) | |
parent | cbf620e01c7a66c9f20b89b8a534351f903e927a (diff) | |
download | android_external_libavc-e8463cdf28c28907ea08e23708b3019a3eed1555.tar.gz android_external_libavc-e8463cdf28c28907ea08e23708b3019a3eed1555.tar.bz2 android_external_libavc-e8463cdf28c28907ea08e23708b3019a3eed1555.zip |
Merge "Decoder: Simplified error checks on display stride"
-rw-r--r-- | decoder/ih264d_api.c | 48 |
1 files changed, 19 insertions, 29 deletions
diff --git a/decoder/ih264d_api.c b/decoder/ih264d_api.c index cd91483..35ea948 100644 --- a/decoder/ih264d_api.c +++ b/decoder/ih264d_api.c @@ -2914,40 +2914,30 @@ WORD32 ih264d_set_params(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) } } - if((0 != ps_dec->u4_app_disp_width) - && (ps_ctl_ip->u4_disp_wd - != ps_dec->u4_app_disp_width)) + if(ps_ctl_ip->u4_disp_wd >= ps_dec->u2_pic_wd) { - ps_ctl_op->u4_error_code |= (1 << IVD_UNSUPPORTEDPARAM); - ps_ctl_op->u4_error_code |= ERROR_DISP_WIDTH_INVALID; - ret = IV_FAIL; + ps_dec->u4_app_disp_width = ps_ctl_ip->u4_disp_wd; + } + else if(0 == ps_dec->i4_header_decoded) + { + ps_dec->u4_app_disp_width = ps_ctl_ip->u4_disp_wd; + } + else if(ps_ctl_ip->u4_disp_wd == 0) + { + ps_dec->u4_app_disp_width = 0; } else { - if(ps_ctl_ip->u4_disp_wd >= ps_dec->u2_pic_wd) - { - ps_dec->u4_app_disp_width = ps_ctl_ip->u4_disp_wd; - } - else if(0 == ps_dec->i4_header_decoded) - { - ps_dec->u4_app_disp_width = ps_ctl_ip->u4_disp_wd; - } - else if(ps_ctl_ip->u4_disp_wd == 0) - { - ps_dec->u4_app_disp_width = 0; - } - else - { - /* - * Set the display width to zero. This will ensure that the wrong value we had stored (0xFFFFFFFF) - * does not propogate. - */ - ps_dec->u4_app_disp_width = 0; - ps_ctl_op->u4_error_code |= (1 << IVD_UNSUPPORTEDPARAM); - ps_ctl_op->u4_error_code |= ERROR_DISP_WIDTH_INVALID; - ret = IV_FAIL; - } + /* + * Set the display width to zero. This will ensure that the wrong value we had stored (0xFFFFFFFF) + * does not propogate. + */ + ps_dec->u4_app_disp_width = 0; + ps_ctl_op->u4_error_code |= (1 << IVD_UNSUPPORTEDPARAM); + ps_ctl_op->u4_error_code |= ERROR_DISP_WIDTH_INVALID; + ret = IV_FAIL; } + if(ps_ctl_ip->e_vid_dec_mode == IVD_DECODE_FRAME) ps_dec->i4_decode_header = 0; else if(ps_ctl_ip->e_vid_dec_mode == IVD_DECODE_HEADER) |