mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
Fix a bug in the conversion of rgba32->yuv420p. This resulted in garbage images
when this conversion was used. I suspect that the same bug may be lurking in other conversions. [The assumption was that the linesize was equal to the width for both the source and destination images. This turns out not to be true in some cases.] Originally committed as revision 1556 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
04bbd31b9f
commit
16e83cbbc4
@ -574,8 +574,8 @@ static void rgb_name ## _to_yuv420p(AVPicture *dst, AVPicture *src, \
|
||||
cb = dst->data[1]; \
|
||||
cr = dst->data[2]; \
|
||||
\
|
||||
wrap = width; \
|
||||
wrap3 = width * BPP; \
|
||||
wrap = dst->linesize[0]; \
|
||||
wrap3 = src->linesize[0]; \
|
||||
p = src->data[0]; \
|
||||
for(y=0;y<height;y+=2) { \
|
||||
for(x=0;x<width;x+=2) { \
|
||||
@ -620,8 +620,10 @@ static void rgb_name ## _to_yuv420p(AVPicture *dst, AVPicture *src, \
|
||||
p += -wrap3 + 2 * BPP; \
|
||||
lum += -wrap + 2; \
|
||||
} \
|
||||
p += wrap3; \
|
||||
lum += wrap; \
|
||||
p += wrap3 + (wrap3 - width * BPP); \
|
||||
lum += wrap + (wrap - width); \
|
||||
cb += dst->linesize[1] - width / 2; \
|
||||
cr += dst->linesize[2] - width / 2; \
|
||||
} \
|
||||
} \
|
||||
\
|
||||
|
Loading…
Reference in New Issue
Block a user