commit 763a16e7e60fdb2bd189a7e1f84d2432065478bc
parent a21ebe8bea569e7d8961b9711d430d21c92f769b
Author: Mattias Andrée <maandree@kth.se>
Date: Wed, 11 Jan 2017 21:48:59 +0100
Reuse code
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat:
2 files changed, 3 insertions(+), 32 deletions(-)
diff --git a/src/vu-crop.c b/src/vu-crop.c
@@ -16,7 +16,6 @@ main(int argc, char *argv[])
char *buf, *image, *p;
size_t width = 0, height = 0, left = 0, top = 0;
size_t off, yoff = 0, x, y, irown, orown, ptr, n, m;
- ssize_t r;
int tile = 0;
ARGBEGIN {
@@ -65,21 +64,9 @@ main(int argc, char *argv[])
off = (orown - (left % orown)) % orown;
yoff = (height - (top % height)) % height;
}
- memcpy(buf, stream.buf, ptr = stream.ptr);
- for (;;) {
- for (; ptr < n; ptr += (size_t)r) {
- r = read(stream.fd, buf + ptr, n - ptr);
- if (r < 0) {
- eprintf("read %s:", stream.file);
- } else if (r == 0) {
- if (!ptr)
- break;
- eprintf("%s: incomplete frame", stream.file);
- }
- }
- if (!ptr)
- break;
+ memcpy(buf, stream.buf, ptr = stream.ptr);
+ while (eread_frame(&stream, buf, n)) {
if (!tile) {
for (y = 0; y < height; y++)
memcpy(image + y * orown, buf + y * irown + off, orown);
@@ -90,7 +77,6 @@ main(int argc, char *argv[])
image[ptr++] = p[(x + off) % orown];
}
}
-
ewriteall(STDOUT_FILENO, image, m, "<stdout>");
}
diff --git a/src/vu-extend.c b/src/vu-extend.c
@@ -17,7 +17,6 @@ main(int argc, char *argv[])
size_t ptr, n, m, imgw, imgh, rown;
size_t xoff, yoff, h, x, y;
size_t left = 0, right = 0, top = 0, bottom = 0;
- ssize_t r;
int tile = 0;
ARGBEGIN {
@@ -85,20 +84,7 @@ main(int argc, char *argv[])
yoff = (stream.height - (top % stream.height)) % stream.height;
memcpy(buf, stream.buf, ptr = stream.ptr);
- for (;;) {
- for (; ptr < n; ptr += (size_t)r) {
- r = read(stream.fd, buf + ptr, n - ptr);
- if (r < 0) {
- eprintf("read %s:", stream.file);
- } else if (r == 0) {
- if (!ptr)
- break;
- eprintf("%s: incomplete frame", stream.file);
- }
- }
- if (!ptr)
- break;
-
+ while (eread_frame(&stream, buf, n)) {
if (!tile) {
for (y = 0; y < stream.height; y++)
memcpy(image + left + (y + top) * imgw, buf + y * rown, rown);
@@ -111,7 +97,6 @@ main(int argc, char *argv[])
for (y = top + stream.height; y < h; y++)
memcpy(image + y * imgw, image + (((y + yoff) % stream.height) + top) * imgw, imgw);
}
-
ewriteall(STDOUT_FILENO, image, m, "<stdout>");
}