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

Reply via email to