mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-04-14 00:58:38 +02:00
memcpy considering output width, not src linesize, fix segv with av_picture_pad
Originally committed as revision 13594 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
64e3e66175
commit
1be97a218e
@ -2063,7 +2063,7 @@ int av_picture_pad(AVPicture *dst, const AVPicture *src, int height, int width,
|
|||||||
uint8_t *iptr = src->data[i];
|
uint8_t *iptr = src->data[i];
|
||||||
optr = dst->data[i] + dst->linesize[i] * (padtop >> y_shift) +
|
optr = dst->data[i] + dst->linesize[i] * (padtop >> y_shift) +
|
||||||
(padleft >> x_shift);
|
(padleft >> x_shift);
|
||||||
memcpy(optr, iptr, src->linesize[i]);
|
memcpy(optr, iptr, (width - padleft - padright) >> x_shift);
|
||||||
iptr += src->linesize[i];
|
iptr += src->linesize[i];
|
||||||
optr = dst->data[i] + dst->linesize[i] * (padtop >> y_shift) +
|
optr = dst->data[i] + dst->linesize[i] * (padtop >> y_shift) +
|
||||||
(dst->linesize[i] - (padright >> x_shift));
|
(dst->linesize[i] - (padright >> x_shift));
|
||||||
@ -2071,7 +2071,7 @@ int av_picture_pad(AVPicture *dst, const AVPicture *src, int height, int width,
|
|||||||
for (y = 0; y < yheight; y++) {
|
for (y = 0; y < yheight; y++) {
|
||||||
memset(optr, color[i], (padleft + padright) >> x_shift);
|
memset(optr, color[i], (padleft + padright) >> x_shift);
|
||||||
memcpy(optr + ((padleft + padright) >> x_shift), iptr,
|
memcpy(optr + ((padleft + padright) >> x_shift), iptr,
|
||||||
src->linesize[i]);
|
(width - padleft - padright) >> x_shift);
|
||||||
iptr += src->linesize[i];
|
iptr += src->linesize[i];
|
||||||
optr += dst->linesize[i];
|
optr += dst->linesize[i];
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user