diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2012-07-04 12:46:53 +0200 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2012-10-20 21:28:24 +0200 |
commit | b2f773c5c53c2efe108e44e176a604bca79a6d4b (patch) | |
tree | 616717c68848449d76d6007e14e8c88570199fa2 /isp/omap3isp.h | |
parent | 51e34d1d5a4a18b8f918eaf9a6e9adf6ea1dcc76 (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.h | 22 |
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 |