Merge commit '95a41311ac3a44773cc4dc407408aca35b1f8e26'
authorHendrik Leppkes <h.leppkes@gmail.com>
Wed, 16 Sep 2015 12:01:58 +0000 (14:01 +0200)
committerHendrik Leppkes <h.leppkes@gmail.com>
Wed, 16 Sep 2015 12:01:58 +0000 (14:01 +0200)
* commit '95a41311ac3a44773cc4dc407408aca35b1f8e26':
  jpeg2000: Factor out band stepsize initialization

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
1  2 
libavcodec/jpeg2000.c

@@@ -171,41 -175,33 +171,33 @@@ void ff_jpeg2000_set_significance(Jpeg2
  {
      x++;
      y++;
 -    t1->flags[y][x] |= JPEG2000_T1_SIG;
 +    t1->flags[(y) * t1->stride + x] |= JPEG2000_T1_SIG;
      if (negative) {
 -        t1->flags[y][x + 1] |= JPEG2000_T1_SIG_W | JPEG2000_T1_SGN_W;
 -        t1->flags[y][x - 1] |= JPEG2000_T1_SIG_E | JPEG2000_T1_SGN_E;
 -        t1->flags[y + 1][x] |= JPEG2000_T1_SIG_N | JPEG2000_T1_SGN_N;
 -        t1->flags[y - 1][x] |= JPEG2000_T1_SIG_S | JPEG2000_T1_SGN_S;
 +        t1->flags[(y) * t1->stride + x + 1] |= JPEG2000_T1_SIG_W | JPEG2000_T1_SGN_W;
 +        t1->flags[(y) * t1->stride + x - 1] |= JPEG2000_T1_SIG_E | JPEG2000_T1_SGN_E;
 +        t1->flags[(y + 1) * t1->stride + x] |= JPEG2000_T1_SIG_N | JPEG2000_T1_SGN_N;
 +        t1->flags[(y - 1) * t1->stride + x] |= JPEG2000_T1_SIG_S | JPEG2000_T1_SGN_S;
      } else {
 -        t1->flags[y][x + 1] |= JPEG2000_T1_SIG_W;
 -        t1->flags[y][x - 1] |= JPEG2000_T1_SIG_E;
 -        t1->flags[y + 1][x] |= JPEG2000_T1_SIG_N;
 -        t1->flags[y - 1][x] |= JPEG2000_T1_SIG_S;
 +        t1->flags[(y) * t1->stride + x + 1] |= JPEG2000_T1_SIG_W;
 +        t1->flags[(y) * t1->stride + x - 1] |= JPEG2000_T1_SIG_E;
 +        t1->flags[(y + 1) * t1->stride + x] |= JPEG2000_T1_SIG_N;
 +        t1->flags[(y - 1) * t1->stride + x] |= JPEG2000_T1_SIG_S;
      }
 -    t1->flags[y + 1][x + 1] |= JPEG2000_T1_SIG_NW;
 -    t1->flags[y + 1][x - 1] |= JPEG2000_T1_SIG_NE;
 -    t1->flags[y - 1][x + 1] |= JPEG2000_T1_SIG_SW;
 -    t1->flags[y - 1][x - 1] |= JPEG2000_T1_SIG_SE;
 +    t1->flags[(y + 1) * t1->stride + x + 1] |= JPEG2000_T1_SIG_NW;
 +    t1->flags[(y + 1) * t1->stride + x - 1] |= JPEG2000_T1_SIG_NE;
 +    t1->flags[(y - 1) * t1->stride + x + 1] |= JPEG2000_T1_SIG_SW;
 +    t1->flags[(y - 1) * t1->stride + x - 1] |= JPEG2000_T1_SIG_SE;
  }
  
 -static const uint8_t lut_gain[2][4] = { { 0, 0, 0, 0 }, { 0, 1, 1, 2 } };
 +// static const uint8_t lut_gain[2][4] = { { 0, 0, 0, 0 }, { 0, 1, 1, 2 } }; (unused)
  
- static int init_band(AVCodecContext *avctx,
-                      Jpeg2000ResLevel *reslevel,
-                      Jpeg2000Component *comp,
-                      Jpeg2000CodingStyle *codsty,
-                      Jpeg2000QuantStyle *qntsty,
-                      int bandno, int gbandno, int reslevelno,
-                      int cbps, int dx, int dy)
+ static void init_band_stepsize(AVCodecContext *avctx,
+                                Jpeg2000Band *band,
+                                Jpeg2000CodingStyle *codsty,
+                                Jpeg2000QuantStyle *qntsty,
+                                int bandno, int gbandno, int reslevelno,
+                                int cbps)
  {
-     Jpeg2000Band *band = reslevel->band + bandno;
-     uint8_t log2_band_prec_width, log2_band_prec_height;
-     int declvl = codsty->nreslevels - reslevelno;    // N_L -r see  ISO/IEC 15444-1:2002 B.5
-     int cblkno, precno;
-     int nb_precincts;
-     int i, j;
      /* TODO: Implementation of quantization step not finished,
       * see ISO/IEC 15444-1:2002 E.1 and A.6.4. */
      switch (qntsty->quantsty) {
       * If not set output of entropic decoder is not correct. */
      if (!av_codec_is_encoder(avctx->codec))
          band->f_stepsize *= 0.5;
 -
 -    band->i_stepsize = band->f_stepsize * (1 << 16);
+ }
+ static int init_band(AVCodecContext *avctx,
+                      Jpeg2000ResLevel *reslevel,
+                      Jpeg2000Component *comp,
+                      Jpeg2000CodingStyle *codsty,
+                      Jpeg2000QuantStyle *qntsty,
+                      int bandno, int gbandno, int reslevelno,
+                      int cbps, int dx, int dy)
+ {
+     Jpeg2000Band *band = reslevel->band + bandno;
+     uint8_t log2_band_prec_width, log2_band_prec_height;
+     int declvl = codsty->nreslevels - reslevelno;    // N_L -r see  ISO/IEC 15444-1:2002 B.5
+     int cblkno, precno;
+     int nb_precincts;
+     int i, j;
+     init_band_stepsize(avctx, band, codsty, qntsty, bandno, gbandno, reslevelno, cbps);
  
 -
      /* computation of tbx_0, tbx_1, tby_0, tby_1
       * see ISO/IEC 15444-1:2002 B.5 eq. B-15 and tbl B.1
       * codeblock width and height is computed for