[FFmpeg-cvslog] r30841 - in trunk/libswscale: swscale.c swscale_internal.h yuv2rgb.c

Kostya kostya.shishkov
Fri Mar 5 09:36:10 CET 2010


On Fri, Mar 05, 2010 at 09:32:54AM +0100, benoit wrote:
> Author: benoit
> Date: Fri Mar  5 09:32:54 2010
> New Revision: 30841
> 
> Log:
> libswscale: Extend the unaccelerated path of the unscaled yuv2rgb special
>             converter with support for rgb444 output format.
> Patch by Janusz Krzysztofik jkrzyszt chez tis icnet pl
> 
[...]

> Modified: trunk/libswscale/yuv2rgb.c
> ==============================================================================
> --- trunk/libswscale/yuv2rgb.c	Thu Mar  4 17:57:04 2010	(r30840)
> +++ trunk/libswscale/yuv2rgb.c	Fri Mar  5 09:32:54 2010	(r30841)
[...]
> @@ -701,6 +731,25 @@ av_cold int ff_yuv2rgb_c_init_tables(Sws
>          fill_table(c->table_bU, 1, cbu, y_table + yoffs + 2048);
>          fill_gv_table(c->table_gV, 1, cgv);
>          break;
> +    case 12:
> +        rbase = isRgb ? 8 : 0;
> +        gbase = 4;
> +        bbase = isRgb ? 0 : 8;
> +        c->yuvTable = av_malloc(1024*3*2);
> +        y_table16 = c->yuvTable;
> +        yb = -(384<<16) - oy;
> +        for (i = 0; i < 1024; i++) {
> +            uint8_t yval = av_clip_uint8((yb + 0x8000) >> 16);
> +            y_table16[i     ] = (yval >> 4)          << rbase;
> +            y_table16[i+1024] = (yval >> 4) << gbase;
> +            y_table16[i+2048] = (yval >> 4)          << bbase;
> +            yb += cy;
> +        }

Isn't vertical alignment a bit off here?



More information about the ffmpeg-cvslog mailing list