Go to the documentation of this file.
32 #ifndef AVCODEC_AAC_AACDEC_FIXED_PREDICTION_H
33 #define AVCODEC_AAC_AACDEC_FIXED_PREDICTION_H
43 tmp.mant = (
tmp.mant + 0x00200000
U) & 0xFFC00000U;
57 tmp.mant = (
tmp.mant + 0x001FFFFF
U + (
tmp.mant & 0x00400000
U >> 16)) & 0xFFC00000
U;
90 if (var0.
exp > 1 || (var0.
exp == 1 && var0.
mant > 0x20000000)) {
98 if (var1.exp > 1 || (var1.exp == 1 && var1.mant > 0x20000000)) {
145 ps->
var0.mant = 0x20000000;
147 ps->
var1.mant = 0x20000000;
static av_always_inline SoftFloat flt16_trunc(SoftFloat pf)
static av_const SoftFloat av_sub_sf(SoftFloat a, SoftFloat b)
static av_always_inline void predict(PredictorState *ps, int *coef, int output_enable)
static av_always_inline SoftFloat flt16_round(SoftFloat pf)
static av_const SoftFloat av_div_sf(SoftFloat a, SoftFloat b)
b has to be normalized and not zero.
static av_always_inline SoftFloat flt16_even(SoftFloat pf)
static av_always_inline void reset_predict_state(PredictorState *ps)
static int shift(int a, int b)
The reader does not expect b to be semantically here and if the code is changed by maybe adding a a division or other the signedness will almost certainly be mistaken To avoid this confusion a new type was SUINT is the C unsigned type but it holds a signed int to use the same example SUINT a
static av_const SoftFloat av_int2sf(int v, int frac_bits)
Converts a mantisse and exponent to a SoftFloat.
static av_const SoftFloat av_add_sf(SoftFloat a, SoftFloat b)
static const int16_t alpha[]
static av_const SoftFloat av_mul_sf(SoftFloat a, SoftFloat b)