Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d2701d61 authored by Jakub Pawłowski's avatar Jakub Pawłowski Committed by Automerger Merge Worker
Browse files

Merge changes Ieabb30d4,Ie4c76416,I5c529e61 am: 610ab871

Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/1999718

Change-Id: Ic958a30e183cdd2a9dfb17b0acfe9257fa0b86e2
parents 25e3f40b 610ab871
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -69,8 +69,9 @@ static int get_bits_left(const struct lc3_bits *bits)
    uintptr_t start = (uintptr_t)buffer->p_fw -
        (bits->mode == LC3_BITS_MODE_READ ? LC3_AC_BITS/8 : 0);

    return 8 * (end - start) -
        (accu->n + accu->nover + ac_get_pending_bits(ac));
    int n = end > start ? (int)(end - start) : -(int)(start - end);

    return 8 * n - (accu->n + accu->nover + ac_get_pending_bits(ac));
}

/**
+4 −4
Original line number Diff line number Diff line
@@ -83,8 +83,8 @@ enum lc3_bits_mode {
 */

struct lc3_ac_symbol {
    unsigned low   : 16;
    unsigned range : 16;
    uint16_t low   : 16;
    uint16_t range : 16;
};

struct lc3_ac_model {
@@ -286,9 +286,9 @@ static inline unsigned lc3_get_symbol(
    const struct lc3_ac_symbol *symbols = model->s;
    struct lc3_bits_ac *ac = &bits->ac;

    unsigned range = ac->range >> 10;
    uint16_t range = ac->range >> 10;

    ac->error |= (ac->low >= (range << 10));
    ac->error |= (ac->low >= ((unsigned)range << 10));
    if (ac->error)
        ac->low = 0;

+9 −9
Original line number Diff line number Diff line
@@ -445,7 +445,7 @@ static void put_quantized(lc3_bits_t *bits,
 */
static int get_quantized(lc3_bits_t *bits,
    enum lc3_dt dt, enum lc3_srate sr, int nbytes,
    int nq, bool lsb_mode, float *xq, unsigned *nf_seed)
    int nq, bool lsb_mode, float *xq, uint16_t *nf_seed)
{
    int ne = LC3_NE(dt, sr);
    bool high_rate = resolve_high_rate(sr, nbytes);
@@ -500,7 +500,7 @@ static int get_quantized(lc3_bits_t *bits,
            xq[i  ] = u && lc3_get_bit(bits) ? -u : u;
            xq[i+1] = v && lc3_get_bit(bits) ? -v : v;

            *nf_seed += u * i + v * (i+1);
            *nf_seed = (*nf_seed + u * i + v * (i+1)) & 0xffff;

            /* --- Update state --- */

@@ -591,7 +591,7 @@ static void put_lsb(lc3_bits_t *bits, int nbits, const int16_t *x, int n)
 * nf_seed         Update the noise factor seed according
 */
static void get_lsb(lc3_bits_t *bits,
    int nbits, float *x, int nq, unsigned *nf_seed)
    int nbits, float *x, int nq, uint16_t *nf_seed)
{
    for (int i = 0; i < nq && nbits > 0; i += 2) {

@@ -603,20 +603,20 @@ static void get_lsb(lc3_bits_t *bits,
        if (nbits-- > 0 && lc3_get_bit(bits)) {
            if (a) {
                x[i] += x[i] < 0 ? -1 : 1;
                *nf_seed += i;
                *nf_seed = (*nf_seed + i) & 0xffff;
            } else if (nbits-- > 0) {
                x[i] = lc3_get_bit(bits) ? -1 : 1;
                *nf_seed += i;
                *nf_seed = (*nf_seed + i) & 0xffff;
            }
        }

        if (nbits-- > 0 && lc3_get_bit(bits)) {
            if (b) {
                x[i+1] += x[i+1] < 0 ? -1 : 1;
                *nf_seed += i+1;
                *nf_seed = (*nf_seed + i+1) & 0xffff;
            } else if (nbits-- > 0) {
                x[i+1] = lc3_get_bit(bits) ? -1 : 1;
                *nf_seed += i+1;
                *nf_seed = (*nf_seed + i+1) & 0xffff;
            }
        }
    }
@@ -666,7 +666,7 @@ static int estimate_noise(enum lc3_dt dt, enum lc3_bandwidth bw,
 * x, nq           Spectral quantized, and count of significants
 */
static void fill_noise(enum lc3_dt dt, enum lc3_bandwidth bw,
    int nf, unsigned nf_seed, float g, float *x, int nq)
    int nf, uint16_t nf_seed, float g, float *x, int nq)
{
    int bw_stop = (dt == LC3_DT_7M5 ? 60 : 80) * (1 + bw);
    int w = 2 + dt;
@@ -854,7 +854,7 @@ int lc3_spec_decode(lc3_bits_t *bits,
    int ret = 0;

    int nf = get_noise_factor(bits);
    unsigned nf_seed;
    uint16_t nf_seed;

    if ((ret = get_quantized(bits, dt, sr, nbytes,
                    nq, lsb_mode, x, &nf_seed)) < 0)