summaryrefslogtreecommitdiffstats
path: root/camera/exynos_camera.h
diff options
context:
space:
mode:
authorDheeraj CVR <cvr.dheeraj@gmail.com>2014-03-28 21:03:30 +0530
committerUtkarsh Gupta <utkarsh.eminem@gmail.com>2014-08-01 14:46:10 +0000
commit2afece3afb558a194d87e5d65d13085b2fa8f6b7 (patch)
treee6b7f6f625cf03195625bbcb7746125f783f0bb4 /camera/exynos_camera.h
parentbb66144367206db6efa598a0d5d478eb3c128e79 (diff)
downloaddevice_samsung_smdk4412-common-2afece3afb558a194d87e5d65d13085b2fa8f6b7.tar.gz
device_samsung_smdk4412-common-2afece3afb558a194d87e5d65d13085b2fa8f6b7.tar.bz2
device_samsung_smdk4412-common-2afece3afb558a194d87e5d65d13085b2fa8f6b7.zip
Video snapshot & Optimizations
Change-Id: Ifb001b5854bb47c5af74a9b5d0e63b224aa901aa
Diffstat (limited to 'camera/exynos_camera.h')
-rw-r--r--camera/exynos_camera.h80
1 files changed, 25 insertions, 55 deletions
diff --git a/camera/exynos_camera.h b/camera/exynos_camera.h
index e3bed92..e411b73 100644
--- a/camera/exynos_camera.h
+++ b/camera/exynos_camera.h
@@ -93,17 +93,6 @@ struct exynos_camera_buffer {
int format;
};
-struct exynos_camera_capture_listener {
- struct list_head list;
-
- int width;
- int height;
- int format;
-
- int (*callback)(struct exynos_camera *exynos_camera, struct exynos_camera_buffer *buffers, int buffers_count);
- int busy;
-};
-
struct exynos_camera_mbus_resolution {
int width;
int height;
@@ -111,6 +100,13 @@ struct exynos_camera_mbus_resolution {
int mbus_height;
};
+struct exynos_camera_videosnapshot_resolution {
+ int video_width;
+ int video_height;
+ int snapshot_width;
+ int snapshot_height;
+};
+
struct exynos_camera_params {
char *preview_size_values;
char *preview_size;
@@ -207,6 +203,8 @@ struct exynos_camera_preset {
struct exynos_camera_params params;
struct exynos_camera_mbus_resolution *mbus_resolutions;
int mbus_resolutions_count;
+ struct exynos_camera_videosnapshot_resolution *videosnapshot_resolutions;
+ int videosnapshot_resolutions_count;
};
struct exynos_v4l2_node {
@@ -313,14 +311,12 @@ struct exynos_camera {
int capture_thread_enabled;
int capture_enabled;
- struct exynos_camera_capture_listener *capture_listeners;
struct exynos_exif exif;
camera_memory_t *capture_memory;
int capture_memory_address;
int capture_memory_index;
void *capture_yuv_buffer;
void *capture_jpeg_buffer;
- int capture_hybrid;
int capture_width;
int capture_height;
int capture_format;
@@ -328,15 +324,10 @@ struct exynos_camera {
int capture_buffer_length;
// Preview
-
- pthread_t preview_thread;
- pthread_mutex_t preview_mutex;
- pthread_mutex_t preview_lock_mutex;
- int preview_thread_running;
- int preview_thread_enabled;
+ int preview_enabled;
+ int preview_stopping;
int preview_output_enabled;
- struct exynos_camera_capture_listener *preview_listener;
struct preview_stream_ops *preview_window;
struct exynos_camera_buffer preview_buffer;
struct exynos_v4l2_output preview_output;
@@ -344,19 +335,13 @@ struct exynos_camera {
// Picture
pthread_t picture_thread;
- pthread_mutex_t picture_mutex;
- pthread_mutex_t picture_lock_mutex;
- int picture_thread_running;
- int picture_thread_enabled;
-
+ int picture_running;
int picture_enabled;
+
int picture_completed;
- struct exynos_camera_capture_listener *picture_listener;
camera_memory_t *picture_memory;
struct exynos_camera_buffer picture_jpeg_buffer;
- struct exynos_camera_buffer picture_jpeg_thumbnail_buffer;
struct exynos_camera_buffer picture_yuv_buffer;
- struct exynos_camera_buffer picture_yuv_thumbnail_buffer;
// Face Detection
camera_frame_metadata_t mFaceData;
@@ -365,14 +350,10 @@ struct exynos_camera {
// Recording
- pthread_t recording_thread;
- pthread_mutex_t recording_mutex;
- pthread_mutex_t recording_lock_mutex;
- int recording_thread_running;
- int recording_thread_enabled;
+ int recording_running;
+ int recording_enabled;
int recording_output_enabled;
- struct exynos_camera_capture_listener *recording_listener;
camera_memory_t *recording_memory;
int recording_memory_index;
struct exynos_camera_buffer recording_buffer;
@@ -399,6 +380,8 @@ struct exynos_camera {
struct exynos_camera_mbus_resolution *camera_mbus_resolutions;
int camera_mbus_resolutions_count;
+ struct exynos_camera_videosnapshot_resolution *camera_videosnapshot_resolutions;
+ int camera_videosnapshot_resolutions_count;
int camera_sensor_mode;
int fimc_is_mode;
@@ -473,43 +456,30 @@ int exynos_camera_params_apply(struct exynos_camera *exynos_camera, int force);
// Capture
int exynos_camera_capture(struct exynos_camera *exynos_camera);
-int exynos_camera_capture_thread_start(struct exynos_camera *exynos_camera);
-void exynos_camera_capture_thread_stop(struct exynos_camera *exynos_camera);
int exynos_camera_capture_start(struct exynos_camera *exynos_camera);
void exynos_camera_capture_stop(struct exynos_camera *exynos_camera);
int exynos_camera_capture_setup(struct exynos_camera *exynos_camera);
-struct exynos_camera_capture_listener *exynos_camera_capture_listener_register(
- struct exynos_camera *exynos_camera, int width, int height, int format,
- int (*callback)(struct exynos_camera *exynos_camera, struct exynos_camera_buffer *buffers, int buffers_count));
-void exynos_camera_capture_listener_unregister(
- struct exynos_camera *exynos_camera,
- struct exynos_camera_capture_listener *listener);
// Preview
int exynos_camera_preview_output_start(struct exynos_camera *exynos_camera);
void exynos_camera_preview_output_stop(struct exynos_camera *exynos_camera);
-int exynos_camera_preview_callback(struct exynos_camera *exynos_camera,
- struct exynos_camera_buffer *buffers, int buffers_count);
int exynos_camera_preview(struct exynos_camera *exynos_camera);
-int exynos_camera_preview_thread_start(struct exynos_camera *exynos_camera);
-void exynos_camera_preview_thread_stop(struct exynos_camera *exynos_camera);
+int exynos_camera_preview_start(struct exynos_camera *exynos_camera);
+void exynos_camera_preview_stop(struct exynos_camera *exynos_camera);
// Picture
-int exynos_camera_picture_callback(struct exynos_camera *exynos_camera,
- struct exynos_camera_buffer *buffers, int buffers_count);
-int exynos_camera_picture(struct exynos_camera *exynos_camera);
-int exynos_camera_picture_thread_start(struct exynos_camera *exynos_camera);
-void exynos_camera_picture_thread_stop(struct exynos_camera *exynos_camera);
+void *exynos_camera_picture(void *data);
+int exynos_camera_picture_start(struct exynos_camera *exynos_camera);
+void exynos_camera_picture_thread_start(struct exynos_camera *exynos_camera);
+void exynos_camera_picture_stop(struct exynos_camera *exynos_camera);
// Recording
int exynos_camera_recording_output_start(struct exynos_camera *exynos_camera);
void exynos_camera_recording_output_stop(struct exynos_camera *exynos_camera);
-int exynos_camera_recording_callback(struct exynos_camera *exynos_camera,
- struct exynos_camera_buffer *buffers, int buffers_count);
void exynos_camera_recording_frame_release(struct exynos_camera *exynos_camera);
int exynos_camera_recording(struct exynos_camera *exynos_camera);
-int exynos_camera_recording_thread_start(struct exynos_camera *exynos_camera);
-void exynos_camera_recording_thread_stop(struct exynos_camera *exynos_camera);
+int exynos_camera_recording_start(struct exynos_camera *exynos_camera);
+void exynos_camera_recording_stop(struct exynos_camera *exynos_camera);
// Auto-focus
int exynos_camera_auto_focus(struct exynos_camera *exynos_camera, int auto_focus_status);