aboutsummaryrefslogtreecommitdiffstats
path: root/src/blind-matrix-rotate.c
diff options
context:
space:
mode:
authorMattias Andrée <maandree@kth.se>2017-07-15 17:08:02 +0200
committerMattias Andrée <maandree@kth.se>2017-07-15 17:08:02 +0200
commit3569a10c97d41913dbf7cf3114cb4d2d5f17dc7f (patch)
treee8b08fe9b0cdc208f66582309377bc3c1817fe1f /src/blind-matrix-rotate.c
parentGenerate USING_BINARY{32,64} (diff)
downloadblind-3569a10c97d41913dbf7cf3114cb4d2d5f17dc7f.tar.gz
blind-3569a10c97d41913dbf7cf3114cb4d2d5f17dc7f.tar.bz2
blind-3569a10c97d41913dbf7cf3114cb4d2d5f17dc7f.tar.xz
Some improvements and fixes
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to 'src/blind-matrix-rotate.c')
-rw-r--r--src/blind-matrix-rotate.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/blind-matrix-rotate.c b/src/blind-matrix-rotate.c
index 0b0fc18..486616e 100644
--- a/src/blind-matrix-rotate.c
+++ b/src/blind-matrix-rotate.c
@@ -11,9 +11,9 @@ static int in_degrees = 0;
typedef TYPE pixel_t[4];\
pixel_t matrix[9];\
pixel_t buf;\
- int i;\
+ size_t i;\
\
- for (i = 0; i < 4; i++) {\
+ for (i = 0; i < stream->n_chan; i++) {\
matrix[0][i] = 1, matrix[1][i] = 0, matrix[2][i] = 0;\
matrix[3][i] = 0, matrix[4][i] = 1, matrix[5][i] = 0;\
matrix[6][i] = 0, matrix[7][i] = 0, matrix[8][i] = 1;\
@@ -21,12 +21,12 @@ static int in_degrees = 0;
\
while (eread_frame(stream, buf)) {\
if (per_channel && in_degrees) {\
- for (i = 0; i < 4; i++) {\
+ for (i = 0; i < stream->n_chan; i++) {\
matrix[4][i] = matrix[0][i] = degcos(buf[i]);\
matrix[3][i] = -(matrix[1][i] = degsin(buf[i]));\
}\
} else if (per_channel) {\
- for (i = 0; i < 4; i++) {\
+ for (i = 0; i < stream->n_chan; i++) {\
matrix[4][i] = matrix[0][i] = cos(buf[i]);\
matrix[3][i] = -(matrix[1][i] = sin(buf[i]));\
}\
@@ -39,10 +39,12 @@ static int in_degrees = 0;
matrix[4][0] = matrix[0][0] = cos(buf[1]);\
matrix[3][0] = -(matrix[1][0] = sin(buf[1]));\
}\
- matrix[0][3] = matrix[0][2] = matrix[0][1] = matrix[0][0];\
- matrix[1][3] = matrix[1][2] = matrix[1][1] = matrix[1][0];\
- matrix[3][3] = matrix[3][2] = matrix[3][1] = matrix[3][0];\
- matrix[4][3] = matrix[4][2] = matrix[4][1] = matrix[4][0];\
+ for (i = 0; i < stream->n_chan; i++) {\
+ matrix[0][i] = matrix[0][0];\
+ matrix[1][i] = matrix[1][0];\
+ matrix[3][i] = matrix[3][0];\
+ matrix[4][i] = matrix[4][0];\
+ }\
}\
ewriteall(STDOUT_FILENO, matrix, sizeof(matrix), "<stdout>");\
}\
@@ -81,9 +83,9 @@ main(int argc, char *argv[])
fprint_stream_head(stdout, &stream);
efflush(stdout, "<stdout>");
- if (!strcmp(stream.pixfmt, "xyza"))
+ if (stream.encoding == DOUBLE)
process = process_lf;
- else if (!strcmp(stream.pixfmt, "xyza f"))
+ else if (stream.encoding == FLOAT)
process = process_f;
else
eprintf("pixel format %s is not supported, try xyza\n", stream.pixfmt);