Fix ensend_{frames,rows,pixels} - blind - suckless command-line video editing u… | |
git clone git://git.suckless.org/blind | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit aea3343ed3e0398721ced18a6e3ab72c9ebea850 | |
parent ff0286325a3dd1f4fe7e29e78341b9bd63e1725c | |
Author: Mattias Andrée <[email protected]> | |
Date: Fri, 14 Jul 2017 22:00:38 +0200 | |
Fix ensend_{frames,rows,pixels} | |
Signed-off-by: Mattias Andrée <[email protected]> | |
Diffstat: | |
M TODO | 5 ----- | |
M src/stream.c | 9 ++++++--- | |
2 files changed, 6 insertions(+), 8 deletions(-) | |
--- | |
diff --git a/TODO b/TODO | |
@@ -1,8 +1,3 @@ | |
-HIGH PRIORITY: | |
- blind-cat-rows and blind-cat-cols randomly produces incorrect results | |
- | |
- | |
- | |
blind-transform affine transformation by matrix multiplication,… | |
improve quality on downscaling (pixels' neighb… | |
blind-primary-key replace a primary with transparency, -g for greyscale… | |
diff --git a/src/stream.c b/src/stream.c | |
@@ -282,12 +282,13 @@ ensend_frames(int status, struct stream *stream, int outf… | |
for (ret = 0; ret < frames; ret++) { | |
for (p = stream->pixel_size; p; p--) { | |
for (h = stream->height; h; h--) { | |
- for (w = stream->width; w; w -= n, stream->ptr… | |
+ for (w = stream->width; w; w -= n) { | |
if (!stream->ptr && !enread_stream(sta… | |
goto done; | |
n = MIN(stream->ptr, w); | |
if (outfd >= 0) | |
enwriteall(status, outfd, stre… | |
+ memmove(stream->buf, stream->buf + n, … | |
} | |
} | |
} | |
@@ -308,12 +309,13 @@ ensend_rows(int status, struct stream *stream, int outfd,… | |
for (ret = 0; ret < rows; ret++) { | |
for (p = stream->pixel_size; p; p--) { | |
- for (w = stream->width; w; w -= n, stream->ptr -= n) { | |
+ for (w = stream->width; w; w -= n) { | |
if (!stream->ptr && !enread_stream(status, str… | |
goto done; | |
n = MIN(stream->ptr, w); | |
if (outfd >= 0) | |
enwriteall(status, outfd, stream->buf,… | |
+ memmove(stream->buf, stream->buf + n, stream->… | |
} | |
} | |
} | |
@@ -332,12 +334,13 @@ ensend_pixels(int status, struct stream *stream, int outf… | |
size_t p, n, ret; | |
for (ret = 0; ret < pixels; ret++) { | |
- for (p = stream->pixel_size; p; p -= n, stream->ptr -= n) { | |
+ for (p = stream->pixel_size; p; p -= n) { | |
if (!stream->ptr && !enread_stream(status, stream, p)) | |
goto done; | |
n = MIN(stream->ptr, p); | |
if (outfd >= 0) | |
enwriteall(status, outfd, stream->buf, n, outf… | |
+ memmove(stream->buf, stream->buf + n, stream->ptr -= n… | |
} | |
} | |