On Thu, Oct 06, 2011 at 03:04:47PM +0000, Ronald S. Bultje wrote:
> Hi,
> 
[...]
> >> @@ -518,20 +470,29 @@ static void decode_slice_plane(ProresContext *ctx, 
> >> const uint8_t *buf,
> >>      /* inverse quantization, inverse transform and output */
> >>      block_ptr = ctx->blocks;
> >>
> >> -    for (blk_num = 0; blk_num < blocks_per_slice; blk_num++, block_ptr += 
> >> 64) {
> >> +    for (mb_num = 0; mb_num < mbs_per_slice; mb_num++, out_ptr += 
> >> blocks_per_mb * 4) {
> >>          /* TODO: the correct solution shoud be (block_ptr[i] * qmat[i]) 
> >> >> 1
> >>           * and the input of the inverse transform should be scaled by 2
> >>           * in order to avoid rounding errors.
> >>           * Due to the fact the existing Libav transforms are incompatible 
> >> with
> >>           * that input I temporally introduced the coarse solution 
> >> below... */
> >> -        for (i = 0; i < 64; i++)
> >> -            block_ptr[i] = (block_ptr[i] * qmat[i]) >> 2;
> >> -
> >> -        ctx->dsp.idct(block_ptr);
> >> +        for (j = 0; j < blocks_per_mb; j++)
> >> +            for (i = 0; i < 64; i++)
> >> +                block_ptr[j * 64 + i] = (block_ptr[j * 64 + i] * qmat[i]) 
> >> >> 2;
> >
> > Why is it still here instead of inside DCT (like VP3 does IIRC)?
> 
> What about attached? Patch is getting kind of big now (and I need to
> redo the asm idct), but this should remove the TODO at the same time.

Don't attach it twice then ;)
LGTM though
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to