summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Vogelgesang <matthias.vogelgesang@kit.edu>2011-09-05 14:38:45 +0200
committerMatthias Vogelgesang <matthias.vogelgesang@kit.edu>2011-09-05 14:38:45 +0200
commitf51917b65fe83d996589ce39f6727c6d71de9209 (patch)
treecf91d0f4401800bb6d6e0f352a0e1c05e1e2404a
parente751296d650e4337969e2462a37a3f49c7fd4198 (diff)
downloaduca-f51917b65fe83d996589ce39f6727c6d71de9209.tar.gz
uca-f51917b65fe83d996589ce39f6727c6d71de9209.tar.bz2
uca-f51917b65fe83d996589ce39f6727c6d71de9209.tar.xz
uca-f51917b65fe83d996589ce39f6727c6d71de9209.zip
Grab continously
-rw-r--r--test/grab.c24
1 files changed, 14 insertions, 10 deletions
diff --git a/test/grab.c b/test/grab.c
index 9f86069..1dd573f 100644
--- a/test/grab.c
+++ b/test/grab.c
@@ -23,28 +23,32 @@ int main(int argc, char *argv[])
val = 0;
handle_error(uca_cam_set_property(cam, UCA_PROP_DELAY, &val));
- val = 1;
- handle_error(uca_cam_set_property(cam, UCA_PROP_GRAB_SYNCHRONOUS, &val));
-
uint32_t width, height, bits;
handle_error(uca_cam_get_property(cam, UCA_PROP_WIDTH, &width, 0));
handle_error(uca_cam_get_property(cam, UCA_PROP_HEIGHT, &height, 0));
handle_error(uca_cam_get_property(cam, UCA_PROP_BITDEPTH, &bits, 0));
- handle_error(uca_cam_alloc(cam, 10));
+ handle_error(uca_cam_alloc(cam, 20));
const int pixel_size = bits == 8 ? 1 : 2;
uint16_t *buffer = (uint16_t *) malloc(width * height * pixel_size);
handle_error(uca_cam_start_recording(cam));
- handle_error(uca_cam_grab(cam, (char *) buffer, NULL));
- handle_error(uca_cam_stop_recording(cam));
- uca_destroy(u);
- FILE *fp = fopen("out.raw", "wb");
- fwrite(buffer, width*height, pixel_size, fp);
- fclose(fp);
+ uint32_t error = UCA_NO_ERROR;
+ char filename[FILENAME_MAX];
+ int counter = 0;
+ while (error == UCA_NO_ERROR) {
+ error = uca_cam_grab(cam, (char *) buffer, NULL);
+ snprintf(filename, FILENAME_MAX, "frame-%08i.raw", counter++);
+ FILE *fp = fopen(filename, "wb");
+ fwrite(buffer, width*height, pixel_size, fp);
+ fclose(fp);
+ }
+
+ handle_error(uca_cam_stop_recording(cam));
+ uca_destroy(u);
free(buffer);
return 0;
}