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:
Philip Gladstone 2003-02-08 15:34:25 +00:00
parent 04bbd31b9f
commit 16e83cbbc4

View File

@ -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; \
} \
} \
\