Hi,

On Wed, May 4, 2011 at 8:12 AM, Diego Biurrun <[email protected]> wrote:
> +    for (y = dx + h; y > dx; y--) {
> +        uint8_t *dst = dptr + (y * stride) + dy * 3;
> +        for (x = 0; x < w; x++) {
> +            if (*sptr & 0x80) {
> +                /* 15-bit color */
> +                unsigned c = ((sptr[0] & ~0x80) << 8) | sptr[1];

AV_RB16().

> +                unsigned b =  c        &  0x1F;
> +                unsigned g = (c >>  5) &  0x1F;
> +                unsigned r =  c >> 10;
> +                /* 000aabbb -> aa bbb aa  */
> +                *dst++ = (b << 3) | (r >> 3);
> +                *dst++ = (g << 3) | (g >> 3);
> +                *dst++ = (r << 3) | (b >> 3);

Why?

> +                /* palette index */
> +                uint32_t c = pal[*sptr++];
> +                *dst++ =  c        & 0xFF;
> +                *dst++ = (c >>  8) & 0xFF;
> +                *dst++ =  c >> 16;

AV_WL24().

> +    if (s->ver == 2) {
> +        skip_bits(&gb, 6);
> +        if (get_bits1(&gb)) {
> +            av_log(avctx, AV_LOG_ERROR, "FIXME iframe not implemented 
> yet\n");
> +            return -1;
> +        }
> +        if (get_bits1(&gb)) {
> +            av_log(avctx, AV_LOG_ERROR, "FIXME custom palette not 
> implemented yet\n");
> +            return -1;
> +        }
> +    }

Custom palette doesn't sound difficult, do you have samples that trigger this?

Also av_log_missing_feature().

> -        if ((s->tmpblock = av_malloc(3 * s->block_width * s->block_height)) 
> == NULL) {
> +        if ((s->tmpblock = av_malloc(2 * 3 * s->block_width * 
> s->block_height)) == NULL) {

version * ..? Or is this also for v=1?

> +                if (zlibprime_curr) {
> +                    int col = get_bits(&gb, 8);
> +                    int row = get_bits(&gb, 8);
> +                    av_log(avctx, AV_LOG_DEBUG, "%dx%d zlibprime_curr 
> %dx%d\n", i, j, col, row);
> +                    size -= 2;
> +                    return -1; //NIY

av_log_missing_feature().

> +#if CONFIG_FLASHSV2_DECODER
> +static const uint32_t ff_flashsv2_default_palette[128] = {
> +    0x000000, 0x333333, 0x666666, 0x999999, 0xCCCCCC, 0xFFFFFF,
> +    0x330000, 0x660000, 0x990000, 0xCC0000, 0xFF0000, 0x003300,
> +    0x006600, 0x009900, 0x00CC00, 0x00FF00, 0x000033, 0x000066,
> +    0x000099, 0x0000CC, 0x0000FF, 0x333300, 0x666600, 0x999900,
> +    0xCCCC00, 0xFFFF00, 0x003333, 0x006666, 0x009999, 0x00CCCC,
> +    0x00FFFF, 0x330033, 0x660066, 0x990099, 0xCC00CC, 0xFF00FF,
> +    0xFFFF33, 0xFFFF66, 0xFFFF99, 0xFFFFCC, 0xFF33FF, 0xFF66FF,
> +    0xFF99FF, 0xFFCCFF, 0x33FFFF, 0x66FFFF, 0x99FFFF, 0xCCFFFF,
> +    0xCCCC33, 0xCCCC66, 0xCCCC99, 0xCCCCFF, 0xCC33CC, 0xCC66CC,
> +    0xCC99CC, 0xCCFFCC, 0x33CCCC, 0x66CCCC, 0x99CCCC, 0xFFCCCC,
> +    0x999933, 0x999966, 0x9999CC, 0x9999FF, 0x993399, 0x996699,
> +    0x99CC99, 0x99FF99, 0x339999, 0x669999, 0xCC9999, 0xFF9999,
> +    0x666633, 0x666699, 0x6666CC, 0x6666FF, 0x663366, 0x669966,
> +    0x66CC66, 0x66FF66, 0x336666, 0x996666, 0xCC6666, 0xFF6666,
> +    0x333366, 0x333399, 0x3333CC, 0x3333FF, 0x336633, 0x339933,
> +    0x33CC33, 0x33FF33, 0x663333, 0x993333, 0xCC3333, 0xFF3333,
> +    0x003366, 0x336600, 0x660033, 0x006633, 0x330066, 0x663300,
> +    0x336699, 0x669933, 0x993366, 0x339966, 0x663399, 0x996633,
> +    0x6699CC, 0x99CC66, 0xCC6699, 0x66CC99, 0x9966CC, 0xCC9966,
> +    0x99CCFF, 0xCCFF99, 0xFF99CC, 0x99FFCC, 0xCC99FF, 0xFFCC99,
> +    0x111111, 0x222222, 0x444444, 0x555555, 0xAAAAAA, 0xBBBBBB,
> +    0xDDDDDD, 0xEEEEEE
> +};

Please put tables in a separate file.

Ronald
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to