Bug fix - The extra preview callback is not invoked
[platform/core/multimedia/libmm-camcorder.git] / src / include / mm_camcorder_stillshot.h
1 /*
2  * libmm-camcorder
3  *
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: Jeongmo Yang <jm80.yang@samsung.com>
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  *
20  */
21
22 #ifndef __MM_CAMCORDER_STILLSHOT_H__
23 #define __MM_CAMCORDER_STILLSHOT_H__
24
25 /*=======================================================================================
26 | INCLUDE FILES                                                                         |
27 ========================================================================================*/
28 #include <gst/gst.h>
29 #include <mm_types.h>
30
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34
35 /*=======================================================================================
36 | GLOBAL DEFINITIONS AND DECLARATIONS FOR CAMCORDER                                     |
37 ========================================================================================*/
38
39 /*=======================================================================================
40 | MACRO DEFINITIONS                                                                     |
41 ========================================================================================*/
42 #define _MMCAMCORDER_CAPTURE_STOP_CHECK_INTERVAL        (50*1000)
43 #define _MMCAMCORDER_CAPTURE_STOP_CHECK_COUNT           60
44
45 #define _MNOTE_VALUE_NONE                               0
46 #define _SOUND_STATUS_INIT                              -1
47
48 /*=======================================================================================
49 | ENUM DEFINITIONS                                                                      |
50 ========================================================================================*/
51
52
53 /*=======================================================================================
54 | STRUCTURE DEFINITIONS                                                                 |
55 ========================================================================================*/
56 /**
57  * MMCamcorder information for image(preview/capture) mode
58  */
59 typedef struct {
60         int type;                                       /**< Still-shot/Multi-shot */
61         int count;                                      /**< Multi-shot capture count */
62         int capture_cur_count;                          /**< Multi-shot capture current count */
63         int capture_send_count;                         /**< Multi-shot capture send count */
64         unsigned long long next_shot_time;              /**< next still capture time */
65         gboolean multi_shot_stop;                       /**< Multi-shot stop flag */
66         gboolean capturing;                             /**< whether MSL is on capturing */
67         gboolean resolution_change;                     /**< whether on resolution changing for capturing. After changing to capture resolution, it sets to FALSE again. */
68         int width;                                      /**< Width of capture image */
69         int height;                                     /**< Height of capture image */
70         int interval;                                   /**< Capture interval */
71         int preview_format;                             /**< Preview format */
72         int capture_format;                             /**< Capture format */
73         int hdr_capture_mode;                           /**< HDR Capture mode */
74         gboolean sound_status;                          /**< sound status of system */
75         gboolean played_capture_sound;                  /**< whether play capture sound when capture starts */
76 } _MMCamcorderImageInfo;
77
78 /*=======================================================================================
79 | CONSTANT DEFINITIONS                                                                  |
80 ========================================================================================*/
81
82 /*=======================================================================================
83 | STATIC VARIABLES                                                                      |
84 ========================================================================================*/
85
86 /*=======================================================================================
87 | EXTERN GLOBAL VARIABLE                                                                |
88 ========================================================================================*/
89
90 /*=======================================================================================
91 | GLOBAL FUNCTION PROTOTYPES                                                            |
92 ========================================================================================*/
93 int _mmcamcorder_initialize_capture_mode(MMHandleType handle);
94 int _mmcamcorder_video_capture_command(MMHandleType handle, int command);
95 void _mmcamcorder_destroy_video_capture_pipeline(MMHandleType handle);
96
97 int _mmcamcorder_initialize_extra_preview_mode(MMHandleType handle);
98 int _mmcamcorder_deinitialize_extra_preview_mode(MMHandleType handle);
99 int _mmcamcorder_set_extra_preview_device_type(MMHandleType handle, int stream_id, int device_type);
100 int _mmcamcorder_set_extra_preview_stream_format(MMHandleType handle, int stream_id, int pixel_format, int width, int height, int fps);
101 int _mmcamcorder_get_extra_preview_stream_format(MMHandleType handle, int stream_id, int *pixel_format, int *width, int *height, int *fps);
102 int _mmcamcorder_set_extra_preview_bitrate(MMHandleType handle, int stream_id, int bitrate);
103 int _mmcamcorder_get_extra_preview_bitrate(MMHandleType handle, int stream_id, int *bitrate);
104 int _mmcamcorder_set_extra_preview_gop_interval(MMHandleType handle, int stream_id, int interval);
105 int _mmcamcorder_get_extra_preview_gop_interval(MMHandleType handle, int stream_id, int *interval);
106
107 #ifdef __cplusplus
108 }
109 #endif
110
111 #endif /* __MM_CAMCORDER_STILLSHOT_H__ */