Mercurial > libavcodec.hg
diff utils.c @ 8748:eaa08ce79f9a libavcodec
Ensure that the palette is set in data[1] for all 8bit formats.
Also document it.
author | michael |
---|---|
date | Fri, 06 Feb 2009 12:59:50 +0000 |
parents | e9d9d946f213 |
children | 2528b6a2b5d3 |
line wrap: on
line diff
--- a/utils.c Fri Feb 06 11:49:31 2009 +0000 +++ b/utils.c Fri Feb 06 12:59:50 2009 +0000 @@ -154,6 +154,8 @@ h_align=4; } case PIX_FMT_PAL8: + case PIX_FMT_BGR8: + case PIX_FMT_RGB8: if(s->codec_id == CODEC_ID_SMC){ w_align=4; h_align=4; @@ -281,12 +283,14 @@ if(buf->base[i]==NULL) return -1; memset(buf->base[i], 128, size[i]); - // no edge if EDEG EMU or not planar YUV, we check for PAL8 redundantly to protect against a exploitable bug regression ... - if((s->flags&CODEC_FLAG_EMU_EDGE) || (s->pix_fmt == PIX_FMT_PAL8) || !size[2]) + // no edge if EDEG EMU or not planar YUV + if((s->flags&CODEC_FLAG_EMU_EDGE) || !size[2]) buf->data[i] = buf->base[i]; else buf->data[i] = buf->base[i] + ALIGN((buf->linesize[i]*EDGE_WIDTH>>v_shift) + (EDGE_WIDTH>>h_shift), stride_align[i]); } + if(size[1] && !size[2]) + ff_set_systematic_pal((uint32_t*)buf->data[1], s->pix_fmt); buf->width = s->width; buf->height = s->height; buf->pix_fmt= s->pix_fmt;