diff options
author | Matthias Vogelgesang <matthias.vogelgesang@kit.edu> | 2011-09-05 14:38:45 +0200 |
---|---|---|
committer | Matthias Vogelgesang <matthias.vogelgesang@kit.edu> | 2011-09-05 14:38:45 +0200 |
commit | f51917b65fe83d996589ce39f6727c6d71de9209 (patch) | |
tree | cf91d0f4401800bb6d6e0f352a0e1c05e1e2404a /test | |
parent | e751296d650e4337969e2462a37a3f49c7fd4198 (diff) | |
download | libuca-f51917b65fe83d996589ce39f6727c6d71de9209.tar.gz libuca-f51917b65fe83d996589ce39f6727c6d71de9209.tar.bz2 libuca-f51917b65fe83d996589ce39f6727c6d71de9209.tar.xz libuca-f51917b65fe83d996589ce39f6727c6d71de9209.zip |
Grab continously
Diffstat (limited to 'test')
-rw-r--r-- | test/grab.c | 24 |
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; } |