summaryrefslogtreecommitdiff
path: root/isp/omap3isp.h
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2012-07-04 12:46:53 +0200
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2012-10-20 21:28:24 +0200
commitb2f773c5c53c2efe108e44e176a604bca79a6d4b (patch)
tree616717c68848449d76d6007e14e8c88570199fa2 /isp/omap3isp.h
parent51e34d1d5a4a18b8f918eaf9a6e9adf6ea1dcc76 (diff)
isp: Split the viewfinder and snapshot API
Don't suspend and resume the viewfinder implicitly when taking a snapshot, but let the application stop the viewfinder before taking the snapshot, and restart it afterwards. Applications are now responsible for keeping track of the viewfinder output buffers state and pass of bitmask of output buffers indices to be queued when starting the viewfinder. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'isp/omap3isp.h')
-rw-r--r--isp/omap3isp.h22
1 files changed, 13 insertions, 9 deletions
diff --git a/isp/omap3isp.h b/isp/omap3isp.h
index 16c96bd..93ddfff 100644
--- a/isp/omap3isp.h
+++ b/isp/omap3isp.h
@@ -48,7 +48,7 @@ struct omap3_isp_operations {
void (*prepare_streamon)(struct omap3_isp_device *isp);
void (*viewfinder_ready)(struct omap3_isp_device *isp,
struct v4l2_video_buffer *buffer);
- bool (*snapshot_ready)(struct omap3_isp_device *isp,
+ void (*snapshot_ready)(struct omap3_isp_device *isp,
struct v4l2_video_buffer *buffer);
void (*aewb_ready)(struct omap3_isp_device *isp,
const struct omap3_isp_aewb_stats *stats);
@@ -61,33 +61,30 @@ struct omap3_isp_device *omap3_isp_open(const char *devname,
const struct omap3_isp_operations *ops);
void omap3_isp_close(struct omap3_isp_device *isp);
+/* Viewfinder */
int omap3_isp_viewfinder_setup(struct omap3_isp_device *isp,
struct v4l2_mbus_framefmt *ofmt);
int omap3_isp_viewfinder_set_pool(struct omap3_isp_device *isp,
struct v4l2_buffers_pool *pool);
int omap3_isp_viewfinder_set_scaler(struct omap3_isp_device *isp,
enum omap3_isp_scaler scaler);
-int omap3_isp_viewfinder_start(struct omap3_isp_device *isp);
+int omap3_isp_viewfinder_start(struct omap3_isp_device *isp, unsigned int bufs);
int omap3_isp_viewfinder_stop(struct omap3_isp_device *isp);
int omap3_isp_viewfinder_put_buffer(struct omap3_isp_device *isp,
struct v4l2_video_buffer *buffer);
int omap3_isp_viewfinder_pan_zoom(struct omap3_isp_device *isp,
float x, float y, float zoom);
+/* Snapshot */
int omap3_isp_snapshot_setup(struct omap3_isp_device *isp,
struct v4l2_rect *crop,
struct v4l2_mbus_framefmt *ofmt);
int omap3_isp_snapshot_capture(struct omap3_isp_device *isp);
+int omap3_isp_snapshot_done(struct omap3_isp_device *isp);
int omap3_isp_snapshot_put_buffer(struct omap3_isp_device *isp,
struct v4l2_video_buffer *buffer);
-int omap3_isp_ccdc_set_black_level(struct omap3_isp_device *isp, unsigned int value);
-
-int omap3_isp_preview_set_contrast(struct omap3_isp_device *isp, unsigned int value);
-int omap3_isp_preview_set_saturation(struct omap3_isp_device *isp, float value);
-int omap3_isp_preview_set_gain(struct omap3_isp_device *isp, float gain);
-int omap3_isp_preview_set_white_balance(struct omap3_isp_device *isp, float gains[4]);
-
+/* Processing parameters */
#define OMAP3_ISP_SENSOR_GAIN_KEEP -1
int omap3_isp_sensor_get_exposure(struct omap3_isp_device *isp,
@@ -98,4 +95,11 @@ int omap3_isp_sensor_set_gain(struct omap3_isp_device *isp, unsigned int gain);
int omap3_isp_sensor_set_gains(struct omap3_isp_device *isp,
int red, int green, int blue);
+int omap3_isp_ccdc_set_black_level(struct omap3_isp_device *isp, unsigned int value);
+
+int omap3_isp_preview_set_contrast(struct omap3_isp_device *isp, unsigned int value);
+int omap3_isp_preview_set_saturation(struct omap3_isp_device *isp, float value);
+int omap3_isp_preview_set_gain(struct omap3_isp_device *isp, float gain);
+int omap3_isp_preview_set_white_balance(struct omap3_isp_device *isp, float gains[4]);
+
#endif