/**
* Frames per second. This is an integer field
- *
+ *
*/
#define MMCAM_CAMERA_FPS "camera-fps"
/**
- * Width of input video stream.
+ * Width of preview stream.
*/
#define MMCAM_CAMERA_WIDTH "camera-width"
/**
- * Height of input video stream.
- * @see
+ * Height of preview stream.
*/
#define MMCAM_CAMERA_HEIGHT "camera-height"
/**
+ * Width of video stream.
+ */
+#define MMCAM_VIDEO_WIDTH "video-width"
+
+/**
+ * Height of video stream.
+ */
+#define MMCAM_VIDEO_HEIGHT "video-height"
+
+/**
* Digital zoom level.
*/
#define MMCAM_CAMERA_DIGITAL_ZOOM "camera-digital-zoom"
/**
* Recommend rotation of display
*/
-#define MMCAM_RECOMMEND_DISPLAY_ROTATION "recommend-display-rotation"
+#define MMCAM_RECOMMEND_DISPLAY_ROTATION "recommend-display-rotation"
/**
* Recommend width of camera preview.
* This attribute can be used with #mm_camcorder_get_attribute_info and #MMCamcorderPreviewType.
* @see mm_camcorder_get_attribute_info, MMCamcorderPreviewType
*/
-#define MMCAM_RECOMMEND_CAMERA_WIDTH "recommend-camera-width"
+#define MMCAM_RECOMMEND_CAMERA_WIDTH "recommend-camera-width"
/**
* Recommend height of camera preview
* This attribute can be used with #mm_camcorder_get_attribute_info and #MMCamcorderPreviewType.
* @see mm_camcorder_get_attribute_info, MMCamcorderPreviewType
*/
-#define MMCAM_RECOMMEND_CAMERA_HEIGHT "recommend-camera-height"
+#define MMCAM_RECOMMEND_CAMERA_HEIGHT "recommend-camera-height"
/**
* Flip of video input stream.
* @see MMFlipType (in mm_types.h)
*/
-#define MMCAM_CAMERA_FLIP "camera-flip"
+#define MMCAM_CAMERA_FLIP "camera-flip"
/**
- * X coordinate of Face zoom.
+ * Support Zero Shutter Lag capture
*/
-#define MMCAM_CAMERA_FACE_ZOOM_X "camera-face-zoom-x"
+#define MMCAM_SUPPORT_ZSL_CAPTURE "support-zsl-capture"
+
+/**
+* Support zero copy format
+*/
+#define MMCAM_SUPPORT_ZERO_COPY_FORMAT "support-zero-copy-format"
/**
- * Y coordinate of Face zoom.
+* Support media packet callback
+*/
+#define MMCAM_SUPPORT_MEDIA_PACKET_PREVIEW_CB "support-media-packet-preview-cb"
+
+/**
+ * Enable to write tags for recorded file
+ */
+#define MMCAM_RECORDER_TAG_ENABLE "recorder-tag-enable"
+
+/**
+ * Determines the socket stream path
*/
-#define MMCAM_CAMERA_FACE_ZOOM_Y "camera-face-zoom-y"
+#define MMCAM_DISPLAY_SOCKET_PATH "display-socket-path"
/**
- * Zoom level of Face zoom.
+ * PID for sound focus
*/
-#define MMCAM_CAMERA_FACE_ZOOM_LEVEL "camera-face-zoom-level"
+#define MMCAM_PID_FOR_SOUND_FOCUS "pid-for-sound-focus"
/**
- * Mode of Face zoom.
- * @see MMCamcorderFaceZoomMode
+ * Root directory of application
*/
-#define MMCAM_CAMERA_FACE_ZOOM_MODE "camera-face-zoom-mode"
+#define MMCAM_ROOT_DIRECTORY "root-directory"
/*=======================================================================================
/**
* An enumeration for white balance. White Balance is the control that adjusts
- * the camcorder's color sensitivity to match the prevailing color of white
- * outdoor light, yellower indoor light, or (sometimes) greenish fluorescent
- * light. White balance may be set either automatically or manually. White balance
- * may be set "incorrectly" on purpose to achieve special effects.
+ * the camcorder's color sensitivity to match the prevailing color of white
+ * outdoor light, yellower indoor light, or (sometimes) greenish fluorescent
+ * light. White balance may be set either automatically or manually. White balance
+ * may be set "incorrectly" on purpose to achieve special effects.
*/
enum MMCamcorderWhiteBalanceType {
MM_CAMCORDER_WHITE_BALANCE_NONE = 0, /**< None */
MM_CAMCORDER_WHITE_BALANCE_HORIZON, /**< Horizon */
MM_CAMCORDER_WHITE_BALANCE_FLASH, /**< Flash */
MM_CAMCORDER_WHITE_BALANCE_CUSTOM, /**< Custom */
-
};
/**
* An enumeration for scene mode. Scene mode gives the environment condition
- * for operating camcorder. The mode of operation can be in daylight, night and
+ * for operating camcorder. The mode of operation can be in daylight, night and
* backlight. It can be an automatic setting also.
*/
enum MMCamcorderSceneModeType {
MM_CAMCORDER_SCENE_MODE_SHOW_WINDOW, /**< Show window */
MM_CAMCORDER_SCENE_MODE_CANDLE_LIGHT, /**< Candle light */
MM_CAMCORDER_SCENE_MODE_BACKLIGHT, /**< Backlight */
+ MM_CAMCORDER_SCENE_MODE_AQUA, /**< Aqua */
};
*/
enum MMCamcorderFocusMode {
MM_CAMCORDER_FOCUS_MODE_NONE = 0, /**< Focus mode is None */
- MM_CAMCORDER_FOCUS_MODE_PAN, /**< Pan focus mode*/
- MM_CAMCORDER_FOCUS_MODE_AUTO, /**< Autofocus mode*/
+ MM_CAMCORDER_FOCUS_MODE_PAN, /**< Pan focus mode*/
+ MM_CAMCORDER_FOCUS_MODE_AUTO, /**< Autofocus mode*/
MM_CAMCORDER_FOCUS_MODE_MANUAL, /**< Manual focus mode*/
MM_CAMCORDER_FOCUS_MODE_TOUCH_AUTO, /**< Touch Autofocus mode*/
MM_CAMCORDER_FOCUS_MODE_CONTINUOUS, /**< Continuous Autofocus mode*/
/**
- * An enumeration for Face zoom mode.
- */
-enum MMCamcorderFaceZoomMode {
- MM_CAMCORDER_FACE_ZOOM_MODE_OFF = 0, /**< turn face zoom off */
- MM_CAMCORDER_FACE_ZOOM_MODE_ON, /**< turn face zoom on */
-};
-
-/**
* An enumeration for recommended preview resolution.
*/
enum MMCamcorderPreviewType {
MM_CAMCORDER_PREVIEW_TYPE_NORMAL = 0, /**< normal ratio like 4:3 */
MM_CAMCORDER_PREVIEW_TYPE_WIDE, /**< wide ratio like 16:9 */
+ MM_CAMCORDER_PREVIEW_TYPE_SQUARE, /**< square ratio like 1:1 */
};
MM_CAM_STREAM_DATA_YUV420SP, /**< YUV420 SemiPlannar type - 2 planes */
MM_CAM_STREAM_DATA_YUV420P, /**< YUV420 Plannar type - 3 planes */
MM_CAM_STREAM_DATA_YUV422P, /**< YUV422 Plannar type - 3 planes */
+ MM_CAM_STREAM_DATA_ENCODED /**< Encoded data type - 1 plane */
} MMCamStreamData;
MMCamAttrsValidType validity_type;
/**
- * A union that describes validity of the attribute.
+ * A union that describes validity of the attribute.
* Only when type is 'MM_CAM_ATTRS_TYPE_INT' or 'MM_CAM_ATTRS_TYPE_DOUBLE',
* the attribute can have validity.
*/
/**
* Structure for video stream data.
*/
+#define BUFFER_MAX_PLANE_NUM 4
+
typedef struct {
union {
struct {
unsigned char *v;
unsigned int length_v;
} yuv420p, yuv422p;
+ struct {
+ unsigned char *data;
+ unsigned int length_data;
+ } encoded;
} data; /**< pointer of captured stream */
MMCamStreamData data_type; /**< data type */
unsigned int length_total; /**< total length of stream buffer (in byte)*/
int width; /**< width of video buffer */
int height; /**< height of video buffer */
unsigned int timestamp; /**< timestamp of stream buffer (msec)*/
+ void *bo[BUFFER_MAX_PLANE_NUM]; /**< TBM buffer object */
+ void *internal_buffer; /**< Internal buffer pointer */
+ int stride[BUFFER_MAX_PLANE_NUM]; /**< Stride of each plane */
+ int elevation[BUFFER_MAX_PLANE_NUM]; /**< Elevation of each plane */
} MMCamcorderVideoStreamDataType;
MMCamFaceInfo *face_info; /**< face information, this should be freed after use it. */
} MMCamFaceDetectInfo;
+#ifdef HAVE_WAYLAND
+/**
+ * Wayland information
+ */
+typedef struct _MMCamWaylandInfo {
+ void *evas_obj;
+ void *window;
+ void *surface;
+ void *display;
+ int window_x;
+ int window_y;
+ int window_width;
+ int window_height;
+} MMCamWaylandInfo;
+#endif /* HAVE_WAYLAND */
/*=======================================================================================
| TYPE DEFINITIONS |
/**
+ * mm_camcorder_get_fps_list_by_resolution:\n
+ * Get detail information of the fps configure. To manager fps, an user may want to know the supported fps list by the current preview resolution,
+ * Gives attribute information structure, from the configure data.
+ * Depending on the 'validity_type', validity union would be different. To know about the type of union, please refer 'MMCamAttrsInfo'.
+ *
+ * @param[in] camcorder Specifies the camcorder handle.
+ * @param[in] width width value of the current Preview resolution.
+ * @param[in] height height value of the current Preview resolution.
+ * @param[out] fps_info a structure that holds information related with the attribute.
+ * @return This function returns zero(MM_ERROR_NONE) on success, or negative value with error code.\n
+ * Please refer 'mm_error.h' to know the exact meaning of the error.
+ * @pre None
+ * @post None
+ * @remarks If the function succeeds, 'info' holds detail information about the attribute, such as type,
+ * flag, validity_type, validity_values, and default values.
+ * @see mm_camcorder_get_attributes, mm_camcorder_set_attributes
+ * @par example
+ * @code
+
+#include <mm_camcorder.h>
+
+gboolean getting_info_from_attribute()
+{
+ MMCamAttrsInfo info;
+ int err;
+
+ err = mm_camcorder_get_fps_list_by_resolution(handle, width, height, &info);
+ if (err < 0) {
+ printf("Fail to call mm_camcorder_get_attribute_info()");
+ return FALSE;
+ }
+
+ //Now 'info' has many information about 'MMCAM_CAPTURE_HEIGHT'
+
+ return TRUE;
+}
+ * @endcode
+ */
+int mm_camcorder_get_fps_list_by_resolution(MMHandleType camcorder, int width, int height, MMCamAttrsInfo *fps_info);
+
+
+/**
* mm_camcorder_init_focusing:\n
* Initialize focusing. \n
* This function stops focusing action and adjust the camera lens to initial position.
int mm_camcorder_stop_focusing(MMHandleType camcorder);
/**
+ * mm_camcorder_get_video_caps:
+ * Stop focusing. This function halts focusing operation.
+ * This is the function to stop focusing in the middle of the operation.
+ * So if focusing is already finished or not started yet,
+ * this function will do nothing.
+ *
+ * @param[in] camcorder A handle of camcorder.
+ * @return This function returns zero(MM_ERROR_NONE) on success,
+ * or negative value with error code.
+ * Please refer 'mm_error.h' to know the exact meaning of the error.
+ * @see mm_camcorder_create
+ * @pre mm_camcorder_realize() should be called before calling this function.
+ * @post None
+ * @remarks None
+ * @par example
+ * @code
+ */
+int mm_camcorder_get_video_caps(MMHandleType handle, char **caps);
+
+/**
@}
*/