diff options
Diffstat (limited to 'camera/exynos_camera.h')
-rw-r--r-- | camera/exynos_camera.h | 80 |
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); |