swscale/swscale_unscaled: Try to fix Rgb16ToPlanarRgb16Wrapper() with slices

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
pull/230/head
Michael Niedermayer 8 years ago
parent 8f0bd1d9ba
commit e57d99dd4e
  1. 8
      libswscale/swscale_unscaled.c

@ -597,6 +597,8 @@ static int Rgb16ToPlanarRgb16Wrapper(SwsContext *c, const uint8_t *src[],
int bpc = dst_format->comp[0].depth; int bpc = dst_format->comp[0].depth;
int alpha = src_format->flags & AV_PIX_FMT_FLAG_ALPHA; int alpha = src_format->flags & AV_PIX_FMT_FLAG_ALPHA;
int swap = 0; int swap = 0;
int i;
if ( HAVE_BIGENDIAN && !(src_format->flags & AV_PIX_FMT_FLAG_BE) || if ( HAVE_BIGENDIAN && !(src_format->flags & AV_PIX_FMT_FLAG_BE) ||
!HAVE_BIGENDIAN && src_format->flags & AV_PIX_FMT_FLAG_BE) !HAVE_BIGENDIAN && src_format->flags & AV_PIX_FMT_FLAG_BE)
swap++; swap++;
@ -610,6 +612,12 @@ static int Rgb16ToPlanarRgb16Wrapper(SwsContext *c, const uint8_t *src[],
src_format->name, dst_format->name); src_format->name, dst_format->name);
return srcSliceH; return srcSliceH;
} }
for(i=0; i<4; i++) {
dst2013[i] += stride2013[i] * srcSliceY / 2;
dst1023[i] += stride1023[i] * srcSliceY / 2;
}
switch (c->srcFormat) { switch (c->srcFormat) {
case AV_PIX_FMT_RGB48LE: case AV_PIX_FMT_RGB48LE:
case AV_PIX_FMT_RGB48BE: case AV_PIX_FMT_RGB48BE:

Loading…
Cancel
Save