X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Finclude%2Fmm_camcorder.h;h=9ad8416eee6b5cee40e6a28334a1684b34a947c5;hb=refs%2Fchanges%2F81%2F188781%2F2;hp=10f589cf1f04280c11e51918ffb4d36da6ae41b5;hpb=82c2496f7c00323b5b781d558447bd9d977e31a9;p=platform%2Fcore%2Fmultimedia%2Flibmm-camcorder.git
diff --git a/src/include/mm_camcorder.h b/src/include/mm_camcorder.h
index 10f589c..9ad8416 100644
--- a/src/include/mm_camcorder.h
+++ b/src/include/mm_camcorder.h
@@ -43,7 +43,7 @@
@par
Recording state and paused state exists when the mode of camcorder is
- video-capture or audio-capture mode. In case of image-capture mode, CAPTURING state will
+ video-capture or audio-capture mode. In case of image-capture mode, CAPTURING state will
exsit.
@par
@@ -217,7 +217,7 @@
Attribute |
Description |
-
+
#MMCAM_MODE |
Mode of camcorder ( still/video/audio ) |
@@ -338,7 +338,7 @@
Attribute |
Description |
-
+
#MMCAM_AUDIO_ENCODER_BITRATE |
Bitrate of Audio Encoder |
@@ -371,7 +371,7 @@
Attribute |
Description |
-
+
#MMCAM_IMAGE_ENCODER_QUALITY |
Encoding quality of Image codec |
@@ -408,7 +408,7 @@
Attribute |
Description |
-
+
#MMCAM_AUDIO_VOLUME |
Input volume of audio source ( double value ) |
@@ -621,7 +621,7 @@ extern "C" {
/**
* Set fraction value. Definition for fraction setting, such as MMCAM_CAMERA_SHUTTER_SPEED and MMCAM_CAMERA_EXPOSURE_VALUE.
*/
-#define MM_CAMCORDER_SET_FRACTION(numerator,denominator) ((int)((((int)(numerator)) << 16) | (int)(denominator)))
+#define MM_CAMCORDER_SET_FRACTION(numerator, denominator) ((int)((((int)(numerator)) << 16) | (int)(denominator)))
/* Attributes Macros */
/**
@@ -1202,6 +1202,11 @@ extern "C" {
#define MMCAM_RECOMMEND_CAMERA_HEIGHT "recommend-camera-height"
/**
+ * Enable to play capture sound
+ */
+#define MMCAM_CAPTURE_SOUND_ENABLE "capture-sound-enable"
+
+/**
* Flip of video input stream.
* @see MMFlipType (in mm_types.h)
*/
@@ -1233,9 +1238,9 @@ extern "C" {
#define MMCAM_DISPLAY_SOCKET_PATH "display-socket-path"
/**
- * PID for sound focus
+ * Client PID
*/
-#define MMCAM_PID_FOR_SOUND_FOCUS "pid-for-sound-focus"
+#define MMCAM_CLIENT_PID "client-pid"
/**
* Root directory of application
@@ -1250,7 +1255,59 @@ extern "C" {
/**
* GOP interval for encoded preview stream
*/
-#define MMCAM_ENCODED_PREVIEW_GOP_INTERVAL "encoded-preview-gop-interval"
+#define MMCAM_ENCODED_PREVIEW_GOP_INTERVAL "encoded-preview-gop-interval"
+
+/**
+ * The distance to move the camera horizontally and physically
+ */
+#define MMCAM_CAMERA_PAN_MECHA "camera-pan-mecha"
+
+/**
+ * The distance to move the camera horizontally
+ */
+#define MMCAM_CAMERA_PAN_ELEC "camera-pan-elec"
+
+/**
+ * The distance to move the camera vertically and physically
+ */
+#define MMCAM_CAMERA_TILT_MECHA "camera-tilt-mecha"
+
+/**
+ * The distance to move the camera vertically
+ */
+#define MMCAM_CAMERA_TILT_ELEC "camera-tilt-elec"
+
+/**
+ * The type of PTZ(Pan Tilt Zoom). Mechanical or Electonic PTZ.
+ */
+#define MMCAM_CAMERA_PTZ_TYPE "camera-ptz-type"
+
+/**
+ * Stream type and index for sound route
+ */
+#define MMCAM_SOUND_STREAM_TYPE "sound-stream-type"
+#define MMCAM_SOUND_STREAM_INDEX "sound-stream-index"
+
+/**
+ * The display reuse flag and sink element pointer
+ */
+#define MMCAM_DISPLAY_REUSE_HINT "display-reuse-hint"
+#define MMCAM_DISPLAY_REUSE_ELEMENT "display-reuse-element"
+
+/**
+ * The GBbus connection from outside
+ */
+#define MMCAM_GDBUS_CONNECTION "gdbus-connection"
+
+/**
+ * Replay gain enable
+ */
+#define MMCAM_AUDIO_REPLAY_GAIN_ENABLE "audio-replay-gain-enable"
+
+/**
+ * Reference level for replay gain
+ */
+#define MMCAM_AUDIO_REPLAY_GAIN_REFERENCE_LEVEL "audio-replay-gain-reference-level"
/*=======================================================================================
| ENUM DEFINITIONS |
@@ -1289,8 +1346,7 @@ typedef enum {
/**
* An enumeration of Audio Format.
*/
-typedef enum
-{
+typedef enum {
MM_CAMCORDER_AUDIO_FORMAT_PCM_U8 = 0, /**< unsigned 8bit audio */
MM_CAMCORDER_AUDIO_FORMAT_PCM_S16_LE = 2, /**< signed 16bit audio. Little endian. */
} MMCamcorderAudioFormat;
@@ -1506,7 +1562,7 @@ enum MMCamcorderGeometryMethod {
* An enumeration for orientation values of tag .
*/
enum MMCamcorderTagOrientation {
- MM_CAMCORDER_TAG_ORT_NONE =0, /**< No Orientation.*/
+ MM_CAMCORDER_TAG_ORT_NONE = 0, /**< No Orientation.*/
MM_CAMCORDER_TAG_ORT_0R_VT_0C_VL, /**< The 0th row is at the visual top of the image, and the 0th column is the visual left-hand side.*/
MM_CAMCORDER_TAG_ORT_0R_VT_0C_VR, /**< The 0th row is at the visual top of the image, and the 0th column is the visual right-hand side.*/
MM_CAMCORDER_TAG_ORT_0R_VB_0C_VR, /**< The 0th row is at the visual bottom of the image, and the 0th column is the visual right-hand side.*/
@@ -1521,7 +1577,7 @@ enum MMCamcorderTagOrientation {
* An enumeration for captured video orientation values of tag .
*/
enum MMCamcorderTagVideoOrientation {
- MM_CAMCORDER_TAG_VIDEO_ORT_NONE =0, /**< No Orientation.*/
+ MM_CAMCORDER_TAG_VIDEO_ORT_NONE = 0, /**< No Orientation.*/
MM_CAMCORDER_TAG_VIDEO_ORT_90, /**< 90 degree */
MM_CAMCORDER_TAG_VIDEO_ORT_180, /**< 180 degree */
MM_CAMCORDER_TAG_VIDEO_ORT_270, /**< 270 degree */
@@ -1579,13 +1635,13 @@ enum MMCamcorderPreviewType {
/**
* An enumeration for attribute values types.
*/
-typedef enum{
+typedef enum {
MM_CAM_ATTRS_TYPE_INVALID = -1, /**< Type is invalid */
MM_CAM_ATTRS_TYPE_INT, /**< Integer type attribute */
MM_CAM_ATTRS_TYPE_DOUBLE, /**< Double type attribute */
MM_CAM_ATTRS_TYPE_STRING, /**< UTF-8 String type attribute */
MM_CAM_ATTRS_TYPE_DATA, /**< Pointer type attribute */
-}MMCamAttrsType;
+} MMCamAttrsType;
/**
@@ -1625,7 +1681,9 @@ typedef enum {
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 */
+ MM_CAM_STREAM_DATA_ENCODED, /**< Encoded data type - 1 plane */
+ MM_CAM_STREAM_DATA_DEPTH, /**< Depth data type - 1 plane */
+ MM_CAM_STREAM_DATA_RGB /**< RGB data type - 1 plane */
} MMCamStreamData;
@@ -1727,7 +1785,7 @@ typedef struct {
struct {
unsigned char *data;
unsigned int length_data;
- } encoded;
+ } encoded, depth, rgb;
} data; /**< pointer of captured stream */
MMCamStreamData data_type; /**< data type */
unsigned int length_total; /**< total length of stream buffer (in byte)*/
@@ -1757,6 +1815,16 @@ typedef struct {
/**
+ * Structure for muxed stream data.
+ */
+typedef struct {
+ void *data; /**< pointer of muxed stream */
+ unsigned int length; /**< length of stream buffer (in byte) */
+ unsigned long long offset; /**< current offset for data */
+} MMCamcorderMuxedStreamDataType;
+
+
+/**
* Prerequisite information for mm_camcorder_create()
* The information to set prior to create.
*/
@@ -1792,19 +1860,6 @@ typedef struct _MMCamFaceDetectInfo {
MMCamFaceInfo *face_info; /**< face information, this should be freed after use it. */
} MMCamFaceDetectInfo;
-#ifdef HAVE_WAYLAND
-/**
- * Wayland information
- */
-typedef struct _MMCamWaylandInfo {
- int global_surface_id;
- int window_x;
- int window_y;
- int window_width;
- int window_height;
- void *evas_obj;
-} MMCamWaylandInfo;
-#endif /* HAVE_WAYLAND */
/*=======================================================================================
| TYPE DEFINITIONS |
@@ -1841,6 +1896,21 @@ typedef gboolean (*mm_camcorder_audio_stream_callback)(MMCamcorderAudioStreamDat
/**
+ * Function definition for muxed stream callback.
+ * Be careful! In this function, you can't call functions that change the state of camcorder such as mm_camcorder_stop(),
+ * mm_camcorder_unrealize(), mm_camcorder_record(), mm_camcorder_commit(), and mm_camcorder_cancel(), etc.
+ * Please don't hang this function long. It may cause low performance of camcorder or occur timeout error from encoding pipeline.
+ * I recommend to you releasing this function ASAP.
+ *
+ * @param[in] stream Reference pointer to muxed stream data
+ * @param[in] user_param User parameter which is received from user when callback function was set
+ * @return This function returns true on success, or false on failure.
+ * @remarks
+ */
+typedef gboolean (*mm_camcorder_muxed_stream_callback)(MMCamcorderMuxedStreamDataType *stream, void *user_param);
+
+
+/**
* Function definition for video capture callback.
* Like '#mm_camcorder_video_stream_callback', you can't call mm_camcorder_stop() while you are hanging this function.
*
@@ -1915,7 +1985,7 @@ int mm_camcorder_create(MMHandleType *camcorder, MMCamPreset *info);
* This is the finalizing function of mm_camcorder. If this function is not called or fails to call, the handle isn't released fully.
* This function releases attributes, mutexes, sessions, and handle itself. This function also removes all of remaining messages.
* So if your application should wait a certain message of mm_camcorder, please wait to call this function till getting the message.
- *
+ *
*
* @param[in] camcorder A handle of camcorder.
* @return This function returns zero(MM_ERROR_NONE) on success, or negative value with error code.\n
@@ -2155,8 +2225,6 @@ int mm_camcorder_realize(MMHandleType camcorder);
* Most important resource that is released here is gstreamer pipeline of mm_camcorder.
* Because most of resources, such as camera device, video display device, and audio I/O device, are operating on the gstreamer pipeline,
* this function should be called to release its resources.
- * Moreover, mm_camcorder is controlled by audio session manager. If an user doesn't call this function when he want to release mm_camcorder,
- * other multimedia frameworks may face session problem. For more detail information, please refer mm_session module.
*
* @param[in] camcorder A handle of camcorder.
* @return This function returns zero(MM_ERROR_NONE) on success, or negative value with error code.\n
@@ -2464,7 +2532,7 @@ int mm_camcorder_stop(MMHandleType camcorder);
* @pre Previous state of mm-camcorder should be MM_CAMCORDER_STATE_PREPARE
* @post Next state of mm-camcorder will be MM_CAMCORDER_STATE_CAPTURING
* @remarks To call this function, preview should be started successfully.\n
- * This function is a pair of mm_camcorder_capture_stop().
+ * This function is a pair of mm_camcorder_capture_stop().
* So user should call mm_camcorder_capture_stop() after getting captured image.
* @par example
* @code
@@ -2476,7 +2544,7 @@ gboolean capturing_picture()
int err;
err = mm_camcorder_capture_start(hcam);
- if (err < 0)
+ if (err < 0)
{
printf("Fail to call mm_camcorder_capture_start = %x\n", err);
return FALSE;
@@ -2864,12 +2932,44 @@ gboolean setting_audio_stream_callback()
return TRUE;
}
- * @endcode
+ * @endcode
*/
int mm_camcorder_set_audio_stream_callback(MMHandleType camcorder, mm_camcorder_audio_stream_callback callback, void *user_data);
/**
+ * mm_camcorder_set_muxed_stream_callback:\n
+ * Set callback for user defined muxed stream callback function.
+ * Users can retrieve muxed data using registered callback.
+ * The callback function holds the same buffer that will be recorded.
+ *
+ * @param[in] camcorder A handle of camcorder.
+ * @param[in] callback Function pointer of callback function.
+ * @param[in] user_data User parameter for passing to callback function.
+ * @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.
+ * @see mm_camcorder_muxed_stream_callback
+ * @pre None
+ * @post None
+ * @remarks registered 'callback' is called on internal thread of camcorder. Regardless of the status of main loop, this function will be called.
+ * @par example
+ * @code
+
+#include
+
+gboolean setting_muxed_stream_callback()
+{
+ //set callback
+ mm_camcorder_set_muxed_stream_callback(hcam, (mm_camcorder_muxed_stream_callback)camcordertest_muxed_stream_cb, (void*)hcam);
+
+ return TRUE;
+}
+ * @endcode
+ */
+int mm_camcorder_set_muxed_stream_callback(MMHandleType camcorder, mm_camcorder_muxed_stream_callback callback, void *user_data);
+
+
+/**
* mm_camcorder_get_state:\n
* Get the current state of camcorder.
* mm_camcorder is working on the base of its state. An user should check the state of mm_camcorder before calling its functions.
@@ -2902,6 +3002,7 @@ gboolean get_state_of_camcorder()
* @endcode
*/
int mm_camcorder_get_state(MMHandleType camcorder, MMCamcorderStateType *state);
+int mm_camcorder_get_state2(MMHandleType camcorder, MMCamcorderStateType *state, MMCamcorderStateType *old_state);
/**
@@ -3243,25 +3344,15 @@ gboolean stop_autofocus()
*/
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);
+/* emit signal */
+void mm_camcorder_emit_signal(MMHandleType camcorder, const char *object_name,
+ const char *interface_name, const char *signal_name, int value);
+
+/* check compatability between codec and file format */
+int mm_camcorder_check_codec_fileformat_compatibility(const char *codec_type, int codec, int file_format);
+
+/* external storage state management */
+int mm_camcorder_manage_external_storage_state(MMHandleType camcorder, int storage_state);
/**
@}