diff options
| author | Mattias Andrée <maandree@kth.se> | 2017-05-07 16:11:31 +0200 |
|---|---|---|
| committer | Mattias Andrée <maandree@kth.se> | 2017-05-07 16:11:31 +0200 |
| commit | 4df594b3f48679f594e6f738981cb3baca8a42d9 (patch) | |
| tree | 6d25bcd5ce62af2537687eff9cce67fa197ec65d /src/stream.c | |
| parent | Bump version to 1.1 (diff) | |
| download | blind-4df594b3f48679f594e6f738981cb3baca8a42d9.tar.gz blind-4df594b3f48679f594e6f738981cb3baca8a42d9.tar.bz2 blind-4df594b3f48679f594e6f738981cb3baca8a42d9.tar.xz | |
Add support for floats
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to 'src/stream.c')
| -rw-r--r-- | src/stream.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/stream.c b/src/stream.c index 4bb0195..6ff71c0 100644 --- a/src/stream.c +++ b/src/stream.c @@ -184,6 +184,39 @@ encheck_compat(int status, const struct stream *a, const struct stream *b) } +const char * +get_pixel_format(const char *specified, const char *current) +{ + const char *base = NULL; + int as_float = 0; + + if (!strcmp(current, "xyza")) + base = "xyza"; + else if (!strcmp(current, "xyza f")) + base = "xyza", as_float = 1; + else + return specified; + + if (!strcmp(specified, "xyza")) + base = "xyza"; + else if (!strcmp(specified, "xyza f")) + return "xyza f"; + else if (!strcmp(specified, "xyza !f")) + return "xyza"; + else if (!strcmp(specified, "f")) + as_float = 1; + else if (!strcmp(specified, "!f")) + as_float = 0; + else + return specified; + + if (!strcmp(base, "xyza")) + return as_float ? "xyza f" : "xyza"; + else + return specified; +} + + int enread_frame(int status, struct stream *stream, void *buf, size_t n) { |
