Hi, On Fri, Jul 29, 2011 at 11:03 AM, Luca Barbato <[email protected]> wrote: > On 7/29/11 12:55 PM, Kostya Shishkov wrote: >> >> When converting RGB format to RGB format with the same bits per sample, >> unscaled path performs conversion on the whole buffer at once. For >> non-multiple-of-16 BGR24 to RGB24 conversion it means that padding at the >> end of line will be converted too. Since it may be of arbitrary length >> (e.g. 8 bytes), operating on the whole buffer produces obviously wrong >> results. >> --- >> libswscale/swscale_unscaled.c | 2 +- >> 1 files changed, 1 insertions(+), 1 deletions(-) >> >> diff --git a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c >> index 59f31c6..c0161c2 100644 >> --- a/libswscale/swscale_unscaled.c >> +++ b/libswscale/swscale_unscaled.c >> @@ -382,7 +382,7 @@ static int rgbToRgbWrapper(SwsContext *c, const >> uint8_t* src[], int srcStride[], >> if ((dstFormat == PIX_FMT_RGB32_1 || dstFormat == >> PIX_FMT_BGR32_1)&& !isRGBA32(srcFormat)) >> dstPtr += ALT32_CORR; >> >> - if (dstStride[0]*srcBpp == srcStride[0]*dstBpp&& srcStride[0]> >> 0) >> + if (dstStride[0]*srcBpp == srcStride[0]*dstBpp&& srcStride[0]> >> 0&& !(srcStride[0] % srcBpp)) >> conv(srcPtr, dstPtr + dstStride[0]*srcSliceY, >> srcSliceH*srcStride[0]); >> else { >> int i; > > Seems correct.
Pushed. Ronald _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
