Support new pixel format - VP8, VP9
[platform/core/multimedia/libmm-camcorder.git] / src / mm_camcorder.c
index 1c4fc1d..eb74509 100644 (file)
@@ -26,7 +26,6 @@
 #include <string.h>
 
 #include <mm_error.h>
-#include <mm_attrs_private.h>
 
 #include "mm_camcorder.h"
 #include "mm_camcorder_internal.h"
@@ -45,11 +44,15 @@ int mm_camcorder_create(MMHandleType *camcorder, MMCamPreset *info)
        mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
        mmf_return_val_if_fail((void *)info, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
 
-       _mmcam_dbg_err("");
+       MMCAM_LOG_ERROR("");
+
+       traceBegin(TTRACE_TAG_CAMERA, "MMCAMCORDER:CREATE");
 
        error = _mmcamcorder_create(camcorder, info);
 
-       _mmcam_dbg_err("END");
+       traceEnd(TTRACE_TAG_CAMERA);
+
+       MMCAM_LOG_ERROR("END");
 
        return error;
 }
@@ -61,11 +64,15 @@ int mm_camcorder_destroy(MMHandleType camcorder)
 
        mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
 
-       _mmcam_dbg_err("");
+       MMCAM_LOG_ERROR("");
+
+       traceBegin(TTRACE_TAG_CAMERA, "MMCAMCORDER:DESTROY");
 
        error = _mmcamcorder_destroy(camcorder);
 
-       _mmcam_dbg_err("END!!!");
+       traceEnd(TTRACE_TAG_CAMERA);
+
+       MMCAM_LOG_ERROR("END!!!");
 
        return error;
 }
@@ -77,15 +84,19 @@ int mm_camcorder_realize(MMHandleType camcorder)
 
        mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
 
-       _mmcam_dbg_err("");
+       MMCAM_LOG_ERROR("");
 
-       _MMCAMCORDER_LOCK_ASM(camcorder);
+       _MMCAMCORDER_LOCK_INTERRUPT(camcorder);
+
+       traceBegin(TTRACE_TAG_CAMERA, "MMCAMCORDER:REALIZE");
 
        error = _mmcamcorder_realize(camcorder);
 
-       _MMCAMCORDER_UNLOCK_ASM(camcorder);
+       traceEnd(TTRACE_TAG_CAMERA);
+
+       _MMCAMCORDER_UNLOCK_INTERRUPT(camcorder);
 
-       _mmcam_dbg_err("END");
+       MMCAM_LOG_ERROR("END");
 
        return error;
 }
@@ -97,15 +108,19 @@ int mm_camcorder_unrealize(MMHandleType camcorder)
 
        mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
 
-       _mmcam_dbg_err("");
+       MMCAM_LOG_ERROR("");
 
-       _MMCAMCORDER_LOCK_ASM(camcorder);
+       _MMCAMCORDER_LOCK_INTERRUPT(camcorder);
+
+       traceBegin(TTRACE_TAG_CAMERA, "MMCAMCORDER:UNREALIZE");
 
        error = _mmcamcorder_unrealize(camcorder);
 
-       _MMCAMCORDER_UNLOCK_ASM(camcorder);
+       traceEnd(TTRACE_TAG_CAMERA);
+
+       _MMCAMCORDER_UNLOCK_INTERRUPT(camcorder);
 
-       _mmcam_dbg_err("END");
+       MMCAM_LOG_ERROR("END");
 
        return error;
 }
@@ -117,15 +132,19 @@ int mm_camcorder_start(MMHandleType camcorder)
 
        mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
 
-       _mmcam_dbg_err("");
+       MMCAM_LOG_ERROR("");
 
-       _MMCAMCORDER_LOCK_ASM(camcorder);
+       _MMCAMCORDER_LOCK_INTERRUPT(camcorder);
+
+       traceBegin(TTRACE_TAG_CAMERA, "MMCAMCORDER:START");
 
        error = _mmcamcorder_start(camcorder);
 
-       _MMCAMCORDER_UNLOCK_ASM(camcorder);
+       traceEnd(TTRACE_TAG_CAMERA);
+
+       _MMCAMCORDER_UNLOCK_INTERRUPT(camcorder);
 
-       _mmcam_dbg_err("END");
+       MMCAM_LOG_ERROR("END");
 
        return error;
 }
@@ -137,15 +156,19 @@ int mm_camcorder_stop(MMHandleType camcorder)
 
        mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
 
-       _mmcam_dbg_err("");
+       MMCAM_LOG_ERROR("");
 
-       _MMCAMCORDER_LOCK_ASM(camcorder);
+       _MMCAMCORDER_LOCK_INTERRUPT(camcorder);
+
+       traceBegin(TTRACE_TAG_CAMERA, "MMCAMCORDER:STOP");
 
        error = _mmcamcorder_stop(camcorder);
 
-       _MMCAMCORDER_UNLOCK_ASM(camcorder);
+       traceEnd(TTRACE_TAG_CAMERA);
+
+       _MMCAMCORDER_UNLOCK_INTERRUPT(camcorder);
 
-       _mmcam_dbg_err("END");
+       MMCAM_LOG_ERROR("END");
 
        return error;
 }
@@ -157,15 +180,15 @@ int mm_camcorder_capture_start(MMHandleType camcorder)
 
        mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
 
-       _mmcam_dbg_err("");
+       MMCAM_LOG_ERROR("");
 
-       _MMCAMCORDER_LOCK_ASM(camcorder);
+       _MMCAMCORDER_LOCK_INTERRUPT(camcorder);
 
        error = _mmcamcorder_capture_start(camcorder);
 
-       _MMCAMCORDER_UNLOCK_ASM(camcorder);
+       _MMCAMCORDER_UNLOCK_INTERRUPT(camcorder);
 
-       _mmcam_dbg_err("END");
+       MMCAM_LOG_ERROR("END");
 
        return error;
 }
@@ -177,15 +200,15 @@ int mm_camcorder_capture_stop(MMHandleType camcorder)
 
        mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
 
-       _mmcam_dbg_err("");
+       MMCAM_LOG_ERROR("");
 
-       _MMCAMCORDER_LOCK_ASM(camcorder);
+       _MMCAMCORDER_LOCK_INTERRUPT(camcorder);
 
        error = _mmcamcorder_capture_stop(camcorder);
 
-       _MMCAMCORDER_UNLOCK_ASM(camcorder);
+       _MMCAMCORDER_UNLOCK_INTERRUPT(camcorder);
 
-       _mmcam_dbg_err("END");
+       MMCAM_LOG_ERROR("END");
 
        return error;
 }
@@ -197,15 +220,15 @@ int mm_camcorder_record(MMHandleType camcorder)
 
        mmf_return_val_if_fail((void*)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
 
-       _mmcam_dbg_err("");
+       MMCAM_LOG_ERROR("");
 
-       _MMCAMCORDER_LOCK_ASM(camcorder);
+       _MMCAMCORDER_LOCK_INTERRUPT(camcorder);
 
        error = _mmcamcorder_record(camcorder);
 
-       _MMCAMCORDER_UNLOCK_ASM(camcorder);
+       _MMCAMCORDER_UNLOCK_INTERRUPT(camcorder);
 
-       _mmcam_dbg_err("END");
+       MMCAM_LOG_ERROR("END");
 
        return error;
 }
@@ -217,15 +240,15 @@ int mm_camcorder_pause(MMHandleType camcorder)
 
        mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
 
-       _mmcam_dbg_err("");
+       MMCAM_LOG_ERROR("");
 
-       _MMCAMCORDER_LOCK_ASM(camcorder);
+       _MMCAMCORDER_LOCK_INTERRUPT(camcorder);
 
        error = _mmcamcorder_pause(camcorder);
 
-       _MMCAMCORDER_UNLOCK_ASM(camcorder);
+       _MMCAMCORDER_UNLOCK_INTERRUPT(camcorder);
 
-       _mmcam_dbg_err("END");
+       MMCAM_LOG_ERROR("END");
 
        return error;
 }
@@ -237,15 +260,15 @@ int mm_camcorder_commit(MMHandleType camcorder)
 
        mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
 
-       _mmcam_dbg_err("");
+       MMCAM_LOG_ERROR("");
 
-       _MMCAMCORDER_LOCK_ASM(camcorder);
+       _MMCAMCORDER_LOCK_INTERRUPT(camcorder);
 
        error = _mmcamcorder_commit(camcorder);
 
-       _MMCAMCORDER_UNLOCK_ASM(camcorder);
+       _MMCAMCORDER_UNLOCK_INTERRUPT(camcorder);
 
-       _mmcam_dbg_err("END");
+       MMCAM_LOG_ERROR("END");
 
        return error;
 }
@@ -257,15 +280,15 @@ int mm_camcorder_cancel(MMHandleType camcorder)
 
        mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
 
-       _mmcam_dbg_err("");
+       MMCAM_LOG_ERROR("");
 
-       _MMCAMCORDER_LOCK_ASM(camcorder);
+       _MMCAMCORDER_LOCK_INTERRUPT(camcorder);
 
        error = _mmcamcorder_cancel(camcorder);
 
-       _MMCAMCORDER_UNLOCK_ASM(camcorder);
+       _MMCAMCORDER_UNLOCK_INTERRUPT(camcorder);
 
-       _mmcam_dbg_err("END");
+       MMCAM_LOG_ERROR("END");
 
        return error;
 }
@@ -295,27 +318,53 @@ int mm_camcorder_set_audio_stream_callback(MMHandleType camcorder, mm_camcorder_
 }
 
 
+int mm_camcorder_set_muxed_stream_callback(MMHandleType camcorder, mm_camcorder_muxed_stream_callback callback, void *user_data)
+{
+       mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
+
+       return _mmcamcorder_set_muxed_stream_callback(camcorder, callback, user_data);
+}
+
+
 int mm_camcorder_set_video_capture_callback(MMHandleType camcorder, mm_camcorder_video_capture_callback callback, void* user_data)
 {
-       mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT );
+       mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
 
        return _mmcamcorder_set_video_capture_callback(camcorder, callback, user_data);
 }
 
 
-int mm_camcorder_get_state(MMHandleType camcorder, MMCamcorderStateType *status)
+int mm_camcorder_set_video_encode_decision_callback(MMHandleType camcorder, mm_camcorder_video_encode_decision_callback callback, void* user_data)
+{
+       mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
+
+       return _mmcamcorder_set_video_encode_decision_callback(camcorder, callback, user_data);
+}
+
+
+int mm_camcorder_get_state(MMHandleType camcorder, MMCamcorderStateType *state)
 {
        int ret = MM_ERROR_NONE;
 
        if (!camcorder) {
-               _mmcam_dbg_warn("Empty handle.");
+               MMCAM_LOG_WARNING("Empty handle.");
                return MM_ERROR_CAMCORDER_INVALID_ARGUMENT;
        }
 
-       *status = _mmcamcorder_get_state(camcorder);
+       *state = _mmcamcorder_get_state(camcorder);
 
        return ret;
+}
+
+
+int mm_camcorder_get_state2(MMHandleType camcorder, MMCamcorderStateType *state, MMCamcorderStateType *old_state)
+{
+       if (!camcorder) {
+               MMCAM_LOG_WARNING("Empty handle.");
+               return MM_ERROR_CAMCORDER_INVALID_ARGUMENT;
+       }
 
+       return _mmcamcorder_get_state2(camcorder, (int *)state, (int *)old_state);
 }
 
 
@@ -324,11 +373,11 @@ int mm_camcorder_get_attributes(MMHandleType camcorder, char **err_attr_name, co
        va_list var_args;
        int ret = MM_ERROR_NONE;
 
-       return_val_if_fail(attribute_name, MM_ERROR_COMMON_INVALID_ARGUMENT);
+       mmf_return_val_if_fail(attribute_name, MM_ERROR_COMMON_INVALID_ARGUMENT);
 
        va_start(var_args, attribute_name);
        ret = _mmcamcorder_get_attributes(camcorder, err_attr_name, attribute_name, var_args);
-       va_end (var_args);
+       va_end(var_args);
 
        return ret;
 }
@@ -339,11 +388,11 @@ int mm_camcorder_set_attributes(MMHandleType camcorder,  char **err_attr_name, c
        va_list var_args;
        int ret = MM_ERROR_NONE;
 
-       return_val_if_fail(attribute_name, MM_ERROR_COMMON_INVALID_ARGUMENT);
+       mmf_return_val_if_fail(attribute_name, MM_ERROR_COMMON_INVALID_ARGUMENT);
 
-       va_start (var_args, attribute_name);
+       va_start(var_args, attribute_name);
        ret = _mmcamcorder_set_attributes(camcorder, err_attr_name, attribute_name, var_args);
-       va_end (var_args);
+       va_end(var_args);
 
        return ret;
 }
@@ -354,6 +403,11 @@ int mm_camcorder_get_attribute_info(MMHandleType camcorder, const char *attribut
        return _mmcamcorder_get_attribute_info(camcorder, attribute_name, info);
 }
 
+int mm_camcorder_get_fps_list_by_resolution(MMHandleType camcorder, int width, int height, MMCamAttrsInfo *fps_info)
+{
+       return _mmcamcorder_get_fps_array_by_resolution(camcorder, width, height, fps_info);
+}
+
 
 int mm_camcorder_init_focusing(MMHandleType camcorder)
 {
@@ -367,7 +421,7 @@ int mm_camcorder_init_focusing(MMHandleType camcorder)
 }
 
 
-int mm_camcorder_start_focusing( MMHandleType camcorder )
+int mm_camcorder_start_focusing(MMHandleType camcorder)
 {
        int error = MM_ERROR_NONE;
 
@@ -391,3 +445,39 @@ int mm_camcorder_stop_focusing(MMHandleType camcorder)
 
        return error;
 }
+
+void mm_camcorder_emit_signal(MMHandleType camcorder, const char *object_name,
+       const char *interface_name, const char *signal_name, int value)
+{
+       mmf_return_if_fail((void *)camcorder);
+
+       _mmcamcorder_emit_signal(camcorder, object_name, interface_name, signal_name, value);
+
+       return;
+}
+
+int mm_camcorder_check_codec_fileformat_compatibility(const char *codec_type, int codec, int file_format)
+{
+       mmf_return_val_if_fail(codec_type, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
+
+       return _mmcamcorder_check_codec_fileformat_compatibility(codec_type, codec, file_format);
+}
+
+int mm_camcorder_manage_external_storage_state(MMHandleType camcorder, int storage_state)
+{
+       mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
+
+       return _mmcamcorder_manage_external_storage_state(camcorder, storage_state);
+}
+
+int mm_camcorder_get_focus_level(MMHandleType camcorder, int *level)
+{
+       mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
+
+       return _mmcamcorder_get_focus_level(camcorder, level);
+}
+
+int mm_camcorder_get_log_level(void)
+{
+       return _mmcamcorder_get_log_level();
+}