Merge commit 'f9581f1414ec8e3e7d0868793cda4f2e4fa113ea'
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 3 Jul 2013 13:20:37 +0000 (15:20 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 3 Jul 2013 13:20:37 +0000 (15:20 +0200)
* commit 'f9581f1414ec8e3e7d0868793cda4f2e4fa113ea':
  jpeg2000: Improve reduced resolution decoding
  jpeg2000: Compute quantization for 'scalar derived' in the correct case.
  jpeg2000: Calculate code-block coord in ff_jpeg2000_init_component()

Conflicts:
libavcodec/jpeg2000.c
libavcodec/jpeg2000dec.c

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

@@@ -316,11 -312,11 +316,11 @@@ int ff_jpeg2000_init_component(Jpeg2000
                  break;
              }
              /* FIXME: In openjepg code stespize = stepsize * 0.5. Why?
-                 * If not set output of entropic decoder is not correct. */
+              * If not set output of entropic decoder is not correct. */
 -            band->stepsize *= 0.5;
 -            /* BITEXACT computing case --> convert to int */
 -            if (avctx->flags & CODEC_FLAG_BITEXACT)
 -                band->stepsize = (int32_t)(band->stepsize * (1 << 16));
 +            if (!av_codec_is_encoder(avctx->codec))
 +                band->f_stepsize *= 0.5;
 +
 +            band->i_stepsize = band->f_stepsize * (1 << 16);
  
              /* 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
@@@ -1394,15 -1346,10 +1392,12 @@@ static int jpeg2000_decode_frame(AVCode
  
      s->avctx     = avctx;
      bytestream2_init(&s->g, avpkt->data, avpkt->size);
 -    s->curtileno = 0; // TODO: only one tile in DCI JP2K. to implement for more tiles
 +    s->curtileno = -1;
  
-     // reduction factor, i.e number of resolution levels to skip
-     s->reduction_factor = s->lowres;
 -    if (bytestream2_get_bytes_left(&s->g) < 2)
 -        return AVERROR_INVALIDDATA;
 +    if (bytestream2_get_bytes_left(&s->g) < 2) {
 +        ret = AVERROR_INVALIDDATA;
 +        goto end;
 +    }
  
      // check if the image is in jp2 format
      if (bytestream2_get_bytes_left(&s->g) >= 12 &&