Originally committed as revision 20562 to svn://svn.ffmpeg.org/ffmpeg/trunk
release/0.6
Ramiro Polla 15 years ago
parent 0584b71823
commit b16569d256
  1. 32
      libavcodec/imgconvert.c

@ -883,11 +883,11 @@ int avpicture_layout(const AVPicture* src, enum PixelFormat pix_fmt, int width,
pix_fmt == PIX_FMT_RGB555LE) pix_fmt == PIX_FMT_RGB555LE)
w = width * 2; w = width * 2;
else if (pix_fmt == PIX_FMT_UYYVYY411) else if (pix_fmt == PIX_FMT_UYYVYY411)
w = width + width/2; w = width + width/2;
else if (pix_fmt == PIX_FMT_PAL8) else if (pix_fmt == PIX_FMT_PAL8)
w = width; w = width;
else else
w = width * (pf->depth * pf->nb_channels / 8); w = width * (pf->depth * pf->nb_channels / 8);
data_planes = 1; data_planes = 1;
h = height; h = height;
@ -901,19 +901,19 @@ int avpicture_layout(const AVPicture* src, enum PixelFormat pix_fmt, int width,
oh = h; oh = h;
for (i=0; i<data_planes; i++) { for (i=0; i<data_planes; i++) {
if (i == 1) { if (i == 1) {
w = ((width >> pf->x_chroma_shift) * pf->depth + 7) / 8; w = ((width >> pf->x_chroma_shift) * pf->depth + 7) / 8;
h = height >> pf->y_chroma_shift; h = height >> pf->y_chroma_shift;
} else if (i == 3) { } else if (i == 3) {
w = ow; w = ow;
h = oh; h = oh;
} }
s = src->data[i]; s = src->data[i];
for(j=0; j<h; j++) { for(j=0; j<h; j++) {
memcpy(dest, s, w); memcpy(dest, s, w);
dest += w; dest += w;
s += src->linesize[i]; s += src->linesize[i];
} }
} }
if (pf->pixel_type == FF_PIXEL_PALETTE) if (pf->pixel_type == FF_PIXEL_PALETTE)

Loading…
Cancel
Save