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