Loading media/libstagefright/codecs/amrwbenc/Android.mk +2 −2 Original line number Diff line number Diff line Loading @@ -114,7 +114,7 @@ endif LOCAL_CFLAGS += -Werror LOCAL_CLANG := true LOCAL_SANITIZE := signed-integer-overflow #LOCAL_SANITIZE := signed-integer-overflow include $(BUILD_STATIC_LIBRARY) Loading @@ -132,7 +132,7 @@ LOCAL_C_INCLUDES := \ LOCAL_CFLAGS += -Werror LOCAL_CLANG := true LOCAL_SANITIZE := signed-integer-overflow #LOCAL_SANITIZE := signed-integer-overflow LOCAL_STATIC_LIBRARIES := \ libstagefright_amrwbenc Loading media/libstagefright/codecs/amrwbenc/inc/basic_op.h +1 −0 Original line number Diff line number Diff line Loading @@ -608,6 +608,7 @@ static_vo Word32 L_add (Word32 L_var1, Word32 L_var2) |___________________________________________________________________________| */ __attribute__((no_sanitize("integer"))) static_vo Word32 L_sub (Word32 L_var1, Word32 L_var2) { Word32 L_var_out; Loading media/libstagefright/codecs/amrwbenc/src/deemph.c +5 −13 Original line number Diff line number Diff line Loading @@ -64,24 +64,16 @@ void Deemph2( Word32 i; Word32 L_tmp; L_tmp = x[0] << 15; L_tmp += ((*mem) * mu)<<1; x[0] = (L_tmp + 0x8000)>>16; i = L_mult(*mem, mu); L_tmp = L_add(L_tmp, i); x[0] = voround(L_tmp); for (i = 1; i < L; i++) { Word32 tmp; L_tmp = x[i] << 15; tmp = (x[i - 1] * mu)<<1; if (tmp > 0 && L_tmp > INT_MAX - tmp) { L_tmp = INT_MAX; } else if (tmp < 0 && L_tmp < INT_MIN - tmp) { L_tmp = INT_MIN; } else { L_tmp += tmp; } if (L_tmp > INT32_MAX - 0x8000) { L_tmp = INT_MAX - 0x8000; } x[i] = (L_tmp + 0x8000)>>16; L_tmp = L_add(L_tmp, tmp); x[i] = voround(L_tmp); } *mem = x[L - 1]; return; Loading media/libstagefright/codecs/amrwbenc/src/math_op.c +7 −2 Original line number Diff line number Diff line Loading @@ -205,9 +205,14 @@ Word32 Dot_product12( /* (o) Q31: normalized result (1 < va L_sum = 0; for (i = 0; i < lg; i++) { L_sum += x[i] * y[i]; Word32 tmp = (Word32) x[i] * (Word32) y[i]; if (tmp == (Word32) 0x40000000L) { tmp = MAX_32; } L_sum = (L_sum << 1) + 1; L_sum = L_add(L_sum, tmp); } L_sum = L_shl2(L_sum, 1); L_sum = L_add(L_sum, 1); /* Normalize acc in Q31 */ sft = norm_l(L_sum); L_sum = L_sum << sft; Loading media/libstagefright/codecs/amrwbenc/src/p_med_ol.c +1 −1 Original line number Diff line number Diff line Loading @@ -129,7 +129,7 @@ Word16 Pitch_med_ol( R2 = (R2 << exp_R2); R1 = vo_L_mult(vo_round(R1), vo_round(R2)); R1 = vo_L_mult(voround(R1), voround(R2)); i = norm_l(R1); R1 = (R1 << i); Loading Loading
media/libstagefright/codecs/amrwbenc/Android.mk +2 −2 Original line number Diff line number Diff line Loading @@ -114,7 +114,7 @@ endif LOCAL_CFLAGS += -Werror LOCAL_CLANG := true LOCAL_SANITIZE := signed-integer-overflow #LOCAL_SANITIZE := signed-integer-overflow include $(BUILD_STATIC_LIBRARY) Loading @@ -132,7 +132,7 @@ LOCAL_C_INCLUDES := \ LOCAL_CFLAGS += -Werror LOCAL_CLANG := true LOCAL_SANITIZE := signed-integer-overflow #LOCAL_SANITIZE := signed-integer-overflow LOCAL_STATIC_LIBRARIES := \ libstagefright_amrwbenc Loading
media/libstagefright/codecs/amrwbenc/inc/basic_op.h +1 −0 Original line number Diff line number Diff line Loading @@ -608,6 +608,7 @@ static_vo Word32 L_add (Word32 L_var1, Word32 L_var2) |___________________________________________________________________________| */ __attribute__((no_sanitize("integer"))) static_vo Word32 L_sub (Word32 L_var1, Word32 L_var2) { Word32 L_var_out; Loading
media/libstagefright/codecs/amrwbenc/src/deemph.c +5 −13 Original line number Diff line number Diff line Loading @@ -64,24 +64,16 @@ void Deemph2( Word32 i; Word32 L_tmp; L_tmp = x[0] << 15; L_tmp += ((*mem) * mu)<<1; x[0] = (L_tmp + 0x8000)>>16; i = L_mult(*mem, mu); L_tmp = L_add(L_tmp, i); x[0] = voround(L_tmp); for (i = 1; i < L; i++) { Word32 tmp; L_tmp = x[i] << 15; tmp = (x[i - 1] * mu)<<1; if (tmp > 0 && L_tmp > INT_MAX - tmp) { L_tmp = INT_MAX; } else if (tmp < 0 && L_tmp < INT_MIN - tmp) { L_tmp = INT_MIN; } else { L_tmp += tmp; } if (L_tmp > INT32_MAX - 0x8000) { L_tmp = INT_MAX - 0x8000; } x[i] = (L_tmp + 0x8000)>>16; L_tmp = L_add(L_tmp, tmp); x[i] = voround(L_tmp); } *mem = x[L - 1]; return; Loading
media/libstagefright/codecs/amrwbenc/src/math_op.c +7 −2 Original line number Diff line number Diff line Loading @@ -205,9 +205,14 @@ Word32 Dot_product12( /* (o) Q31: normalized result (1 < va L_sum = 0; for (i = 0; i < lg; i++) { L_sum += x[i] * y[i]; Word32 tmp = (Word32) x[i] * (Word32) y[i]; if (tmp == (Word32) 0x40000000L) { tmp = MAX_32; } L_sum = (L_sum << 1) + 1; L_sum = L_add(L_sum, tmp); } L_sum = L_shl2(L_sum, 1); L_sum = L_add(L_sum, 1); /* Normalize acc in Q31 */ sft = norm_l(L_sum); L_sum = L_sum << sft; Loading
media/libstagefright/codecs/amrwbenc/src/p_med_ol.c +1 −1 Original line number Diff line number Diff line Loading @@ -129,7 +129,7 @@ Word16 Pitch_med_ol( R2 = (R2 << exp_R2); R1 = vo_L_mult(vo_round(R1), vo_round(R2)); R1 = vo_L_mult(voround(R1), voround(R2)); i = norm_l(R1); R1 = (R1 << i); Loading