On 06/22/2011 04:51 AM, Måns Rullgård wrote: > Justin Ruggles <[email protected]> writes: > >> --- >> libavcodec/ac3enc.c | 22 +++++++++++----------- >> libavcodec/ac3enc.h | 2 +- >> 2 files changed, 12 insertions(+), 12 deletions(-) >> >> >> diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c >> index 3426bd2..1db6941 100644 >> --- a/libavcodec/ac3enc.c >> +++ b/libavcodec/ac3enc.c >> @@ -46,7 +46,7 @@ >> #include "eac3enc.h" >> >> typedef struct AC3Mant { >> - uint16_t *qmant1_ptr, *qmant2_ptr, *qmant4_ptr; ///< mantissa pointers >> for bap=1,2,4 >> + int16_t *qmant1_ptr, *qmant2_ptr, *qmant4_ptr; ///< mantissa pointers >> for bap=1,2,4 >> int mant1_cnt, mant2_cnt, mant4_cnt; ///< mantissa counts for >> bap=1,2,4 >> } AC3Mant; >> >> @@ -1136,7 +1136,7 @@ static inline int asym_quant(int c, int e, int qbits) >> if (v >= m) >> v = m - 1; >> av_assert2(v >= -m); >> - return v & ((1 << qbits)-1); >> + return v; >> } >> >> >> @@ -1145,7 +1145,7 @@ static inline int asym_quant(int c, int e, int qbits) >> */ >> static void quantize_mantissas_blk_ch(AC3Mant *s, int32_t *fixed_coef, >> uint8_t *exp, uint8_t *bap, >> - uint16_t *qmant, int start_freq, >> + int16_t *qmant, int start_freq, >> int end_freq) >> { >> int i; >> @@ -1497,14 +1497,14 @@ static void output_audio_block(AC3EncodeContext *s, >> int blk) >> q = block->qmant[ch][i]; >> b = s->ref_bap[ch][blk][i]; >> switch (b) { >> - case 0: break; >> - case 1: if (q != 128) put_bits(&s->pb, 5, q); break; >> - case 2: if (q != 128) put_bits(&s->pb, 7, q); break; >> - case 3: put_bits(&s->pb, 3, q); break; >> - case 4: if (q != 128) put_bits(&s->pb, 7, q); break; >> - case 14: put_bits(&s->pb, 14, q); break; >> - case 15: put_bits(&s->pb, 16, q); break; >> - default: put_bits(&s->pb, b-1, q); break; >> + case 0: break; >> + case 1: if (q != 128) put_bits (&s->pb, 5, q); break; >> + case 2: if (q != 128) put_bits (&s->pb, 7, q); break; >> + case 3: put_sbits(&s->pb, 3, q); break; >> + case 4: if (q != 128) put_bits (&s->pb, 7, q); break; >> + case 14: put_sbits(&s->pb, 14, q); break; >> + case 15: put_sbits(&s->pb, 16, q); break; >> + default: put_sbits(&s->pb, b-1, q); break; >> } >> } > > This does the masking in put_sbits() instead. Is that better? > It does seem like better style though. > > Patch OK.
Yes, I do think that's a more appropriate place for it. It also think it makes it clearer in the code that the "asymmetric quantization" is just 2's-compliment with fewer bits. -Justin _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
