diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2012-02-22 23:57:55 +0100 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2012-05-01 12:13:56 +0200 |
commit | de8d5a0d80daba0b840a4f9714aee238966ab0a4 (patch) | |
tree | 9d3adc8fb18ec33b34965966f339649ede834766 | |
parent | 0634f8bb2e63985ebf2103318105b7185294da94 (diff) |
snapshot: Use AEWB algorithm
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | snapshot.c | 22 |
2 files changed, 23 insertions, 1 deletions
@@ -7,7 +7,7 @@ LDFLAGS := -Lisp LIBS := -lomap3isp -lrt OBJ_LIVE := live.o events.o iq.o videoout.o -OBJ_SNAP := snapshot.o events.o +OBJ_SNAP := snapshot.o events.o iq.o %.o : %.c $(CC) $(CFLAGS) -c -o $@ $< @@ -49,6 +49,7 @@ #include "isp/v4l2-pool.h" #include "events.h" +#include "iq.h" #define MEDIA_DEVICE "/dev/media0" @@ -95,9 +96,21 @@ static struct snapshot snap = { .skip = 2, }; +static struct iq_tuning *iq = NULL; + static struct events events; /* ----------------------------------------------------------------------------- + * Image quality + */ + +static void __iq_aewb_process(struct omap3_isp_device *isp __attribute__((__unused__)), + const struct omap3_isp_aewb_stats *stats) +{ + iq_aewb_process(iq, stats); +} + +/* ----------------------------------------------------------------------------- * Events */ @@ -493,6 +506,7 @@ int main(int argc __attribute__((__unused__)), char *argv[] __attribute__((__unu ops.snapshot_ready = snapshot_process; ops.watch_fd = __events_watch_fd; ops.unwatch_fd = __events_unwatch_fd; + ops.aewb_ready = __iq_aewb_process; isp = omap3_isp_open(MEDIA_DEVICE, &ops); if (isp == NULL) { @@ -510,6 +524,12 @@ int main(int argc __attribute__((__unused__)), char *argv[] __attribute__((__unu if (ret < 0) goto cleanup; + iq = iq_init(isp); + if (iq == NULL) { + printf("error: unable to initialize image quality tuning\n"); + goto cleanup; + } + /* Start the viewfinder if needed. */ if (vf.enabled) { ret = omap3_isp_viewfinder_start(isp); @@ -560,6 +580,8 @@ cleanup: omap3_isp_close(isp); if (vf.enabled) viewfinder_cleanup(isp); + if (iq) + iq_cleanup(iq); return exit_code; } |