Showing the changes to libavfilter (1 of 1 file). Show all
Unified · Split
| @@ -1031,16 +1031,17 @@ static void draw_sono(AVFrame *out, AVFrame *sono, int off, int idx) · 1030 unmodified lines | |||
| 1031 | int nb_planes = (fmt == AV_PIX_FMT_RGB24) ? 1 : 3; | 1031 | int nb_planes = (fmt == AV_PIX_FMT_RGB24) ? 1 : 3; |
| 1032 | int offh = (fmt == AV_PIX_FMT_YUV420P) ? off / 2 : off; | 1032 | int offh = (fmt == AV_PIX_FMT_YUV420P) ? off / 2 : off; |
| 1033 | int inc = (fmt == AV_PIX_FMT_YUV420P) ? 2 : 1; | 1033 | int inc = (fmt == AV_PIX_FMT_YUV420P) ? 2 : 1; |
| 1034 | int ls, i, y, yh; | 1034 | ptrdiff_t ls; |
| 1035 | int i, y, yh; | ||
| 1035 | 1036 | ||
| 1036 | ls = FFMIN(out->linesize[0], sono->linesize[0]); | 1037 | ls = FFABS(FFMIN(out->linesize[0], sono->linesize[0])); |
| 1037 | for (y = 0; y < h; y++) { | 1038 | for (y = 0; y < h; y++) { |
| 1038 | memcpy(out->data[0] + (off + y) * out->linesize[0], | 1039 | memcpy(out->data[0] + (off + y) * out->linesize[0], |
| 1039 | sono->data[0] + (idx + y) % h * sono->linesize[0], ls); | 1040 | sono->data[0] + (idx + y) % h * sono->linesize[0], ls); |
| 1040 | } | 1041 | } |
| 1041 | 1042 | ||
| 1042 | for (i = 1; i < nb_planes; i++) { | 1043 | for (i = 1; i < nb_planes; i++) { |
| 1043 | ls = FFMIN(out->linesize[i], sono->linesize[i]); | 1044 | ls = FFABS(FFMIN(out->linesize[i], sono->linesize[i])); |
| 1044 | for (y = 0; y < h; y += inc) { | 1045 | for (y = 0; y < h; y += inc) { |
| 1045 | yh = (fmt == AV_PIX_FMT_YUV420P) ? y / 2 : y; | 1046 | yh = (fmt == AV_PIX_FMT_YUV420P) ? y / 2 : y; |
| 1046 | memcpy(out->data[i] + (offh + yh) * out->linesize[i], | 1047 | memcpy(out->data[i] + (offh + yh) * out->linesize[i], |