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

Reply via email to