summaryrefslogtreecommitdiffstats
path: root/encoder/ih264e_api.c
diff options
context:
space:
mode:
authorDoney Alex <doney.alex@ittiam.com>2016-02-24 12:00:03 +0530
committerHangyu Kuang <hkuang@google.com>2016-03-11 22:10:12 +0000
commitdfe686ad4a159a25195d614fa88cf00828f443db (patch)
tree6289db47cacd3448c92dfb50be03e9b3c903b2af /encoder/ih264e_api.c
parent1a5bf73cb0321ead3d839822986c45454c2f9fa7 (diff)
downloadandroid_external_libavc-dfe686ad4a159a25195d614fa88cf00828f443db.tar.gz
android_external_libavc-dfe686ad4a159a25195d614fa88cf00828f443db.tar.bz2
android_external_libavc-dfe686ad4a159a25195d614fa88cf00828f443db.zip
DO NOT MERGE Encoder: Added support for Constrained intra prediction.
Change-Id: I674746047b2b007ca4bc52fad1a2cd9b177cd7bb
Diffstat (limited to 'encoder/ih264e_api.c')
-rw-r--r--encoder/ih264e_api.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/encoder/ih264e_api.c b/encoder/ih264e_api.c
index 75c22d0..1c9a48b 100644
--- a/encoder/ih264e_api.c
+++ b/encoder/ih264e_api.c
@@ -1420,6 +1420,16 @@ static IV_STATUS_T api_check_struct_sanity(iv_obj_t *ps_handle,
return IV_FAIL;
}
+ if ((ps_ip->s_ive_ip.u4_constrained_intra_pred != 0)
+ && (ps_ip->s_ive_ip.u4_constrained_intra_pred != 1))
+ {
+ ps_op->s_ive_op.u4_error_code |= 1
+ << IVE_UNSUPPORTEDPARAM;
+ ps_op->s_ive_op.u4_error_code |=
+ IH264E_INVALID_CONSTRAINED_INTRA_PREDICTION_MODE;
+ return IV_FAIL;
+ }
+
if ((ps_ip->s_ive_ip.u4_enc_speed_preset != IVE_CONFIG)
&& (ps_ip->s_ive_ip.u4_enc_speed_preset != IVE_SLOWEST)
&& (ps_ip->s_ive_ip.u4_enc_speed_preset != IVE_NORMAL)
@@ -1979,7 +1989,7 @@ IH264E_ERROR_T ih264e_codec_update_config(codec_t *ps_codec,
else if (ps_cfg->e_cmd == IVE_CMD_CTL_SET_IPE_PARAMS)
{
ps_curr_cfg->u4_enc_speed_preset = ps_cfg->u4_enc_speed_preset;
-
+ ps_curr_cfg->u4_constrained_intra_pred = ps_cfg->u4_constrained_intra_pred;
if (ps_curr_cfg->u4_enc_speed_preset == IVE_SLOWEST)
{/* high quality */
/* enable diamond search */
@@ -5069,6 +5079,8 @@ static IV_STATUS_T ih264_set_ipe_params(void *pv_api_ip,
ps_cfg->u4_enable_intra_4x4 = ps_ip->s_ive_ip.u4_enable_intra_4x4;
ps_cfg->u4_enc_speed_preset = ps_ip->s_ive_ip.u4_enc_speed_preset;
+ ps_cfg->u4_constrained_intra_pred = ps_ip->s_ive_ip.u4_constrained_intra_pred;
+
ps_cfg->u4_timestamp_high = ps_ip->s_ive_ip.u4_timestamp_high;
ps_cfg->u4_timestamp_low = ps_ip->s_ive_ip.u4_timestamp_low;