Merge remote-tracking branch 'shariman/wmall'
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 7 Dec 2011 03:49:42 +0000 (04:49 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 7 Dec 2011 03:49:42 +0000 (04:49 +0100)
* shariman/wmall:
  Fix lms_update()
  Move num_lms reading out of a loop
  Use correct value for range
  Fix some int / int16_t / int32_t confusion
  Implement revert_mclms() and associated functions
  Fix two more int16_t vs. int confusion
  Init s->cdlms[][].recent to order - 1
  Add a size argument to dump_int_buffer()
  Get rid of logging that are not required anymore
  Fix some int vs. int16_t confusion

Conflicts:
libavcodec/wmalosslessdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/wmalosslessdec.c

@@@ -245,12 -245,12 +245,12 @@@ typedef struct WmallDecodeCtx 
      int quant_stepsize;
  
      struct {
 -      int order;
 -      int scaling;
 -      int coefsend;
 -      int bitsend;
 -      int16_t coefs[256];
 +        int order;
 +        int scaling;
 +        int coefsend;
 +        int bitsend;
 +        int16_t coefs[256];
-     int lms_prevvalues[512];    // FIXME: see above
+     int16_t lms_prevvalues[512];    // FIXME: see above
      int16_t lms_updates[512];   // and here too
      int recent;
      } cdlms[2][9];              /* XXX: Here, 2 is the max. no. of channels allowed,
@@@ -698,29 -700,26 +700,26 @@@ static int decode_channel_residues(Wmal
      }
      //av_log(0, 0, "%8d: ", num_logged_tiles++);
      for(; i < tile_size; i++) {
 -      int quo = 0, rem, rem_bits, residue;
 -      while(get_bits1(&s->gb))
 -          quo++;
 -      if(quo >= 32)
 -          quo += get_bits_long(&s->gb, get_bits(&s->gb, 5) + 1);
 -
 -              ave_mean = (s->ave_sum[ch] + (1 << s->movave_scaling)) >> (s->movave_scaling + 1);
 -      rem_bits = av_ceil_log2(ave_mean);
 -      rem = rem_bits ? get_bits(&s->gb, rem_bits) : 0;
 -      residue = (quo << rem_bits) + rem;
 -
 -      s->ave_sum[ch] = residue + s->ave_sum[ch] - (s->ave_sum[ch] >> s->movave_scaling);
 -
 -      if(residue & 1)
 -          residue = -(residue >> 1) - 1;
 -      else
 -          residue = residue >> 1;
 -      s->channel_residues[ch][i] = residue;
 +        int quo = 0, rem, rem_bits, residue;
 +        while(get_bits1(&s->gb))
 +            quo++;
 +        if(quo >= 32)
 +            quo += get_bits_long(&s->gb, get_bits(&s->gb, 5) + 1);
 +
 +               ave_mean = (s->ave_sum[ch] + (1 << s->movave_scaling)) >> (s->movave_scaling + 1);
 +        rem_bits = av_ceil_log2(ave_mean);
 +        rem = rem_bits ? get_bits(&s->gb, rem_bits) : 0;
 +        residue = (quo << rem_bits) + rem;
 +
 +        s->ave_sum[ch] = residue + s->ave_sum[ch] - (s->ave_sum[ch] >> s->movave_scaling);
 +
 +        if(residue & 1)
 +            residue = -(residue >> 1) - 1;
 +        else
 +            residue = residue >> 1;
 +        s->channel_residues[ch][i] = residue;
-     /*if (num_logged_tiles < 1)
-         av_log(0, 0, "%4d ", residue); */
      }
-     dump_int_buffer(s->channel_residues[ch], tile_size, 16);
+     dump_int_buffer(s->channel_residues[ch], 4, tile_size, 16);
  
      return 0;