Merge cherrypicks of [4025658, 4025975, 4025659, 4025537, 4025557, 4025976, 4025579, 4024760, 4024761, 4025171, 4025172, 4025173, 4025703, 4025977, 4025596, 4025978, 4025979, 4025980, 4024381, 4024382, 4024383, 4024384, 4024385, 4024764, 4025982, 4024765, 4025984, 4025985, 4025987, 4025989, 4025991, 4025992, 4025993, 4025994, 4026035, 4026036, 4025558, 4025705, 4025706, 4025188, 4026037, 4025660, 4025661, 4025719, 4025581, 4025582, 4025583] into sparse-4732991-L90500000170950426
Change-Id: If2abb68f9096521b55552fdfaead279cfa26f6fb
diff --git a/decoder/ih264d_dpb_mgr.c b/decoder/ih264d_dpb_mgr.c
index 525adef..b7ee498 100644
--- a/decoder/ih264d_dpb_mgr.c
+++ b/decoder/ih264d_dpb_mgr.c
@@ -375,9 +375,6 @@
if((ps_dpb_info[i].ps_pic_buf == ps_pic_buf)
&& ps_dpb_info[i].u1_used_as_ref)
{
- /* Can occur only for field bottom pictures */
- ps_dpb_info[i].s_bot_field.u1_reference_info = IS_SHORT_TERM;
-
/*signal an error in the case of frame pic*/
if(ps_dpb_info[i].ps_pic_buf->u1_pic_type == FRM_PIC)
{
@@ -385,6 +382,8 @@
}
else
{
+ /* Can occur only for field bottom pictures */
+ ps_dpb_info[i].s_bot_field.u1_reference_info = IS_SHORT_TERM;
return OK;
}
}
diff --git a/encoder/ih264e_api.c b/encoder/ih264e_api.c
index 2ecfdf5..a996303 100644
--- a/encoder/ih264e_api.c
+++ b/encoder/ih264e_api.c
@@ -1147,6 +1147,24 @@
return (IV_FAIL);
}
+ if(ps_ip->s_ive_ip.u4_wd & 1)
+ {
+ ps_op->s_ive_op.u4_error_code |= 1
+ << IVE_UNSUPPORTEDPARAM;
+ ps_op->s_ive_op.u4_error_code |=
+ IH264E_WIDTH_NOT_SUPPORTED;
+ return (IV_FAIL);
+ }
+
+ if(ps_ip->s_ive_ip.u4_ht & 1)
+ {
+ ps_op->s_ive_op.u4_error_code |= 1
+ << IVE_UNSUPPORTEDPARAM;
+ ps_op->s_ive_op.u4_error_code |=
+ IH264E_HEIGHT_NOT_SUPPORTED;
+ return (IV_FAIL);
+ }
+
break;
}