From 6a0e412056d6529e1e90c29eb086501b86e6656f Mon Sep 17 00:00:00 2001 From: Jeongmo Yang Date: Mon, 26 Jan 2015 17:12:23 +0900 Subject: [PATCH] 1. Remove build warnings 2. Fix crash while creating handle Change-Id: I22442d09519aa6083ae30650265637cf0a48f120 Signed-off-by: Jeongmo Yang --- packaging/libmm-camcorder.spec | 8 +- sounds/camera_resource | 0 sounds/recorder_resource | 0 src/include/mm_camcorder_internal.h | 72 +++++----- src/mm_camcorder_attribute.c | 260 ++++++++++++++++++------------------ src/mm_camcorder_configure.c | 74 +++++----- src/mm_camcorder_internal.c | 26 ++-- 7 files changed, 216 insertions(+), 224 deletions(-) create mode 100644 sounds/camera_resource create mode 100644 sounds/recorder_resource diff --git a/packaging/libmm-camcorder.spec b/packaging/libmm-camcorder.spec index 4fa8ebf..5e53b92 100644 --- a/packaging/libmm-camcorder.spec +++ b/packaging/libmm-camcorder.spec @@ -1,6 +1,6 @@ Name: libmm-camcorder Summary: Camera and recorder library -Version: 0.9.0 +Version: 0.9.1 Release: 0 Group: Multimedia/Libraries License: Apache-2.0 @@ -54,8 +54,10 @@ cp LICENSE.APLv2 %{buildroot}/usr/share/license/%{name} %post /sbin/ldconfig -vconftool set -t int memory/camera/state 0 -i -u 5000 -vconftool set -t int file/camera/shutter_sound_policy 0 -u 5000 +vconftool set -t int memory/camera/state 0 -i -u 5000 -s system::vconf_multimedia +vconftool set -t int file/camera/shutter_sound_policy 0 -u 5000 -s system::vconf_inhouse +chsmack -a "device::camera" /usr/share/sounds/mm-camcorder/camera_resource +chsmack -a "pulseaudio::record" /usr/share/sounds/mm-camcorder/recorder_resource %postun -p /sbin/ldconfig diff --git a/sounds/camera_resource b/sounds/camera_resource new file mode 100644 index 0000000..e69de29 diff --git a/sounds/recorder_resource b/sounds/recorder_resource new file mode 100644 index 0000000..e69de29 diff --git a/src/include/mm_camcorder_internal.h b/src/include/mm_camcorder_internal.h index d40db30..d5a0908 100644 --- a/src/include/mm_camcorder_internal.h +++ b/src/include/mm_camcorder_internal.h @@ -279,68 +279,64 @@ extern "C" { * Functions related with LOCK and WAIT */ #define _MMCAMCORDER_CAST_MTSAFE(handle) (((mmf_camcorder_t*)handle)->mtsafe) +#define _MMCAMCORDER_LOCK_FUNC(mutex) pthread_mutex_lock(&mutex) +#define _MMCAMCORDER_TRYLOCK_FUNC(mutex) (!pthread_mutex_trylock(&mutex)) +#define _MMCAMCORDER_UNLOCK_FUNC(mutex) pthread_mutex_unlock(&mutex) #define _MMCAMCORDER_GET_LOCK(handle) (_MMCAMCORDER_CAST_MTSAFE(handle).lock) -#define _MMCAMCORDER_LOCK(handle) pthread_mutex_lock(&_MMCAMCORDER_GET_LOCK(handle)) -#define _MMCAMCORDER_TRYLOCK(handle) pthread_mutex_trylock(&_MMCAMCORDER_GET_LOCK(handle)) -#define _MMCAMCORDER_UNLOCK(handle) pthread_mutex_unlock(&_MMCAMCORDER_GET_LOCK(handle)) - -#define _MMCAMCORDER_GET_COND(handle) (_MMCAMCORDER_CAST_MTSAFE(handle).cond) -#define _MMCAMCORDER_WAIT(handle) pthread_cond_wait(&_MMCAMCORDER_GET_COND(handle), &_MMCAMCORDER_GET_LOCK(handle)) -#define _MMCAMCORDER_TIMED_WAIT(handle, timeval) pthread_cond_timedwait(&_MMCAMCORDER_GET_COND(handle), &_MMCAMCORDER_GET_LOCK(handle), timeval) - -#define _MMCAMCORDER_SIGNAL(handle) pthread_cond_signal(&_MMCAMCORDER_GET_COND(handle)) -#define _MMCAMCORDER_BROADCAST(handle) pthread_cond_broadcast(&_MMCAMCORDER_GET_COND(handle)) +#define _MMCAMCORDER_LOCK(handle) _MMCAMCORDER_LOCK_FUNC(_MMCAMCORDER_GET_LOCK(handle)) +#define _MMCAMCORDER_TRYLOCK(handle) _MMCAMCORDER_TRYLOCK_FUNC(_MMCAMCORDER_GET_LOCK(handle)) +#define _MMCAMCORDER_UNLOCK(handle) _MMCAMCORDER_UNLOCK_FUNC(_MMCAMCORDER_GET_LOCK(handle)) /* for command */ #define _MMCAMCORDER_GET_CMD_LOCK(handle) (_MMCAMCORDER_CAST_MTSAFE(handle).cmd_lock) -#define _MMCAMCORDER_LOCK_CMD(handle) pthread_mutex_lock(&_MMCAMCORDER_GET_CMD_LOCK(handle)) -#define _MMCAMCORDER_TRYLOCK_CMD(handle) pthread_mutex_trylock(&_MMCAMCORDER_GET_CMD_LOCK(handle)) -#define _MMCAMCORDER_UNLOCK_CMD(handle) pthread_mutex_unlock(&_MMCAMCORDER_GET_CMD_LOCK(handle)) +#define _MMCAMCORDER_LOCK_CMD(handle) _MMCAMCORDER_LOCK_FUNC(_MMCAMCORDER_GET_CMD_LOCK(handle)) +#define _MMCAMCORDER_TRYLOCK_CMD(handle) _MMCAMCORDER_TRYLOCK_FUNC(_MMCAMCORDER_GET_CMD_LOCK(handle)) +#define _MMCAMCORDER_UNLOCK_CMD(handle) _MMCAMCORDER_UNLOCK_FUNC(_MMCAMCORDER_GET_CMD_LOCK(handle)) /* for ASM */ #define _MMCAMCORDER_GET_ASM_LOCK(handle) (_MMCAMCORDER_CAST_MTSAFE(handle).asm_lock) -#define _MMCAMCORDER_LOCK_ASM(handle) pthread_mutex_lock(&_MMCAMCORDER_GET_ASM_LOCK(handle)) -#define _MMCAMCORDER_TRYLOCK_ASM(handle) pthread_mutex_trylock(&_MMCAMCORDER_GET_ASM_LOCK(handle)) -#define _MMCAMCORDER_UNLOCK_ASM(handle) pthread_mutex_unlock(&_MMCAMCORDER_GET_ASM_LOCK(handle)) +#define _MMCAMCORDER_LOCK_ASM(handle) _MMCAMCORDER_LOCK_FUNC(_MMCAMCORDER_GET_ASM_LOCK(handle)) +#define _MMCAMCORDER_TRYLOCK_ASM(handle) _MMCAMCORDER_TRYLOCK_FUNC(_MMCAMCORDER_GET_ASM_LOCK(handle)) +#define _MMCAMCORDER_UNLOCK_ASM(handle) _MMCAMCORDER_UNLOCK_FUNC(_MMCAMCORDER_GET_ASM_LOCK(handle)) /* for state change */ #define _MMCAMCORDER_GET_STATE_LOCK(handle) (_MMCAMCORDER_CAST_MTSAFE(handle).state_lock) -#define _MMCAMCORDER_LOCK_STATE(handle) pthread_mutex_lock(&_MMCAMCORDER_GET_STATE_LOCK(handle)) -#define _MMCAMCORDER_TRYLOCK_STATE(handle) pthread_mutex_trylock(&_MMCAMCORDER_GET_STATE_LOCK(handle)) -#define _MMCAMCORDER_UNLOCK_STATE(handle) pthread_mutex_unlock(&_MMCAMCORDER_GET_STATE_LOCK(handle)) +#define _MMCAMCORDER_LOCK_STATE(handle) _MMCAMCORDER_LOCK_FUNC(_MMCAMCORDER_GET_STATE_LOCK(handle)) +#define _MMCAMCORDER_TRYLOCK_STATE(handle) _MMCAMCORDER_TRYLOCK_FUNC(_MMCAMCORDER_GET_STATE_LOCK(handle)) +#define _MMCAMCORDER_UNLOCK_STATE(handle) _MMCAMCORDER_UNLOCK_FUNC(_MMCAMCORDER_GET_STATE_LOCK(handle)) /* for gstreamer state change */ #define _MMCAMCORDER_GET_GST_STATE_LOCK(handle) (_MMCAMCORDER_CAST_MTSAFE(handle).gst_state_lock) -#define _MMCAMCORDER_LOCK_GST_STATE(handle) pthread_mutex_lock(&_MMCAMCORDER_GET_GST_STATE_LOCK(handle)) -#define _MMCAMCORDER_TRYLOCK_GST_STATE(handle) pthread_mutex_trylock(&_MMCAMCORDER_GET_GST_STATE_LOCK(handle)) -#define _MMCAMCORDER_UNLOCK_GST_STATE(handle) pthread_mutex_unlock(&_MMCAMCORDER_GET_GST_STATE_LOCK(handle)) +#define _MMCAMCORDER_LOCK_GST_STATE(handle) _MMCAMCORDER_LOCK_FUNC(_MMCAMCORDER_GET_GST_STATE_LOCK(handle)) +#define _MMCAMCORDER_TRYLOCK_GST_STATE(handle) _MMCAMCORDER_TRYLOCK_FUNC(_MMCAMCORDER_GET_GST_STATE_LOCK(handle)) +#define _MMCAMCORDER_UNLOCK_GST_STATE(handle) _MMCAMCORDER_UNLOCK_FUNC(_MMCAMCORDER_GET_GST_STATE_LOCK(handle)) #define _MMCAMCORDER_GET_GST_ENCODE_STATE_LOCK(handle) (_MMCAMCORDER_CAST_MTSAFE(handle).gst_encode_state_lock) -#define _MMCAMCORDER_LOCK_GST_ENCODE_STATE(handle) pthread_mutex_lock(&_MMCAMCORDER_GET_GST_ENCODE_STATE_LOCK(handle)) -#define _MMCAMCORDER_TRYLOCK_GST_ENCODE_STATE(handle) pthread_mutex_trylock(&_MMCAMCORDER_GET_GST_ENCODE_STATE_LOCK(handle)) -#define _MMCAMCORDER_UNLOCK_GST_ENCODE_STATE(handle) pthread_mutex_unlock(&_MMCAMCORDER_GET_GST_ENCODE_STATE_LOCK(handle)) +#define _MMCAMCORDER_LOCK_GST_ENCODE_STATE(handle) _MMCAMCORDER_LOCK_FUNC(_MMCAMCORDER_GET_GST_ENCODE_STATE_LOCK(handle)) +#define _MMCAMCORDER_TRYLOCK_GST_ENCODE_STATE(handle) _MMCAMCORDER_TRYLOCK_FUNC(_MMCAMCORDER_GET_GST_ENCODE_STATE_LOCK(handle)) +#define _MMCAMCORDER_UNLOCK_GST_ENCODE_STATE(handle) _MMCAMCORDER_UNLOCK_FUNC(_MMCAMCORDER_GET_GST_ENCODE_STATE_LOCK(handle)) /* for setting/calling callback */ #define _MMCAMCORDER_GET_MESSAGE_CALLBACK_LOCK(handle) (_MMCAMCORDER_CAST_MTSAFE(handle).message_cb_lock) -#define _MMCAMCORDER_LOCK_MESSAGE_CALLBACK(handle) pthread_mutex_lock(&_MMCAMCORDER_GET_MESSAGE_CALLBACK_LOCK(handle)) -#define _MMCAMCORDER_TRYLOCK_MESSAGE_CALLBACK(handle) pthread_mutex_trylock(&_MMCAMCORDER_GET_MESSAGE_CALLBACK_LOCK(handle)) -#define _MMCAMCORDER_UNLOCK_MESSAGE_CALLBACK(handle) pthread_mutex_unlock(&_MMCAMCORDER_GET_MESSAGE_CALLBACK_LOCK(handle)) +#define _MMCAMCORDER_LOCK_MESSAGE_CALLBACK(handle) _MMCAMCORDER_LOCK_FUNC(_MMCAMCORDER_GET_MESSAGE_CALLBACK_LOCK(handle)) +#define _MMCAMCORDER_TRYLOCK_MESSAGE_CALLBACK(handle) _MMCAMCORDER_TRYLOCK_FUNC(_MMCAMCORDER_GET_MESSAGE_CALLBACK_LOCK(handle)) +#define _MMCAMCORDER_UNLOCK_MESSAGE_CALLBACK(handle) _MMCAMCORDER_UNLOCK_FUNC(_MMCAMCORDER_GET_MESSAGE_CALLBACK_LOCK(handle)) #define _MMCAMCORDER_GET_VCAPTURE_CALLBACK_LOCK(handle) (_MMCAMCORDER_CAST_MTSAFE(handle).vcapture_cb_lock) -#define _MMCAMCORDER_LOCK_VCAPTURE_CALLBACK(handle) pthread_mutex_lock(&_MMCAMCORDER_GET_VCAPTURE_CALLBACK_LOCK(handle)) -#define _MMCAMCORDER_TRYLOCK_VCAPTURE_CALLBACK(handle) pthread_mutex_trylock(&_MMCAMCORDER_GET_VCAPTURE_CALLBACK_LOCK(handle)) -#define _MMCAMCORDER_UNLOCK_VCAPTURE_CALLBACK(handle) pthread_mutex_unlock(&_MMCAMCORDER_GET_VCAPTURE_CALLBACK_LOCK(handle)) +#define _MMCAMCORDER_LOCK_VCAPTURE_CALLBACK(handle) _MMCAMCORDER_LOCK_FUNC(_MMCAMCORDER_GET_VCAPTURE_CALLBACK_LOCK(handle)) +#define _MMCAMCORDER_TRYLOCK_VCAPTURE_CALLBACK(handle) _MMCAMCORDER_TRYLOCK_FUNC(_MMCAMCORDER_GET_VCAPTURE_CALLBACK_LOCK(handle)) +#define _MMCAMCORDER_UNLOCK_VCAPTURE_CALLBACK(handle) _MMCAMCORDER_UNLOCK_FUNC(_MMCAMCORDER_GET_VCAPTURE_CALLBACK_LOCK(handle)) #define _MMCAMCORDER_GET_VSTREAM_CALLBACK_LOCK(handle) (_MMCAMCORDER_CAST_MTSAFE(handle).vstream_cb_lock) -#define _MMCAMCORDER_LOCK_VSTREAM_CALLBACK(handle) pthread_mutex_lock(&_MMCAMCORDER_GET_VSTREAM_CALLBACK_LOCK(handle)) -#define _MMCAMCORDER_TRYLOCK_VSTREAM_CALLBACK(handle) pthread_mutex_trylock(&_MMCAMCORDER_GET_VSTREAM_CALLBACK_LOCK(handle)) -#define _MMCAMCORDER_UNLOCK_VSTREAM_CALLBACK(handle) pthread_mutex_unlock(&_MMCAMCORDER_GET_VSTREAM_CALLBACK_LOCK(handle)) +#define _MMCAMCORDER_LOCK_VSTREAM_CALLBACK(handle) _MMCAMCORDER_LOCK_FUNC(_MMCAMCORDER_GET_VSTREAM_CALLBACK_LOCK(handle)) +#define _MMCAMCORDER_TRYLOCK_VSTREAM_CALLBACK(handle) _MMCAMCORDER_TRYLOCK_FUNC(_MMCAMCORDER_GET_VSTREAM_CALLBACK_LOCK(handle)) +#define _MMCAMCORDER_UNLOCK_VSTREAM_CALLBACK(handle) _MMCAMCORDER_UNLOCK_FUNC(_MMCAMCORDER_GET_VSTREAM_CALLBACK_LOCK(handle)) #define _MMCAMCORDER_GET_ASTREAM_CALLBACK_LOCK(handle) (_MMCAMCORDER_CAST_MTSAFE(handle).astream_cb_lock) -#define _MMCAMCORDER_LOCK_ASTREAM_CALLBACK(handle) pthread_mutex_lock(&_MMCAMCORDER_GET_ASTREAM_CALLBACK_LOCK(handle)) -#define _MMCAMCORDER_TRYLOCK_ASTREAM_CALLBACK(handle) pthread_mutex_trylock(&_MMCAMCORDER_GET_ASTREAM_CALLBACK_LOCK(handle)) -#define _MMCAMCORDER_UNLOCK_ASTREAM_CALLBACK(handle) pthread_mutex_unlock(&_MMCAMCORDER_GET_ASTREAM_CALLBACK_LOCK(handle)) +#define _MMCAMCORDER_LOCK_ASTREAM_CALLBACK(handle) _MMCAMCORDER_LOCK_FUNC(_MMCAMCORDER_GET_ASTREAM_CALLBACK_LOCK(handle)) +#define _MMCAMCORDER_TRYLOCK_ASTREAM_CALLBACK(handle) _MMCAMCORDER_TRYLOCK_FUNC(_MMCAMCORDER_GET_ASTREAM_CALLBACK_LOCK(handle)) +#define _MMCAMCORDER_UNLOCK_ASTREAM_CALLBACK(handle) _MMCAMCORDER_UNLOCK_FUNC(_MMCAMCORDER_GET_ASTREAM_CALLBACK_LOCK(handle)) /** * Caster of main handle (camcorder) @@ -532,7 +528,6 @@ typedef struct { */ typedef struct { pthread_mutex_t lock; /**< Mutex (for general use) */ - pthread_cond_t cond; /**< Condition (for general use) */ pthread_mutex_t cmd_lock; /**< Mutex (for command) */ pthread_mutex_t asm_lock; /**< Mutex (for ASM) */ pthread_mutex_t state_lock; /**< Mutex (for state change) */ @@ -647,7 +642,6 @@ typedef struct mmf_camcorder { char *model_name; /**< model name from system info */ char *software_version; /**< software_version from system info */ int capture_sound_count; /**< count for capture sound */ - bool stillshot_wide_resolution; /**capture_in_recording = FALSE; pthread_mutex_init(&((hcamcorder->mtsafe).lock), NULL); - pthread_cond_init(&((hcamcorder->mtsafe).cond), NULL); - pthread_mutex_init(&((hcamcorder->mtsafe).cmd_lock), NULL); pthread_mutex_init(&((hcamcorder->mtsafe).asm_lock), NULL); pthread_mutex_init(&((hcamcorder->mtsafe).state_lock), NULL); @@ -166,7 +164,7 @@ int _mmcamcorder_create(MMHandleType *handle, MMCamPreset *info) } if (info->videodev_type != MM_VIDEO_DEVICE_NONE) { - _mmcamcorder_conf_get_value_int(handle, hcamcorder->conf_main, + _mmcamcorder_conf_get_value_int((MMHandleType)hcamcorder, hcamcorder->conf_main, CONFIGURE_CATEGORY_MAIN_VIDEO_INPUT, "UseConfCtrl", &UseConfCtrl); @@ -214,42 +212,42 @@ int _mmcamcorder_create(MMHandleType *handle, MMCamPreset *info) } /* Get device info, recommend preview fmt and display rotation from INI */ - _mmcamcorder_conf_get_value_int(handle, hcamcorder->conf_ctrl, + _mmcamcorder_conf_get_value_int((MMHandleType)hcamcorder, hcamcorder->conf_ctrl, CONFIGURE_CATEGORY_CTRL_CAMERA, "RecommendPreviewFormatCapture", &rcmd_fmt_capture); - _mmcamcorder_conf_get_value_int(handle, hcamcorder->conf_ctrl, + _mmcamcorder_conf_get_value_int((MMHandleType)hcamcorder, hcamcorder->conf_ctrl, CONFIGURE_CATEGORY_CTRL_CAMERA, "RecommendPreviewFormatRecord", &rcmd_fmt_recording); - _mmcamcorder_conf_get_value_int(handle, hcamcorder->conf_ctrl, + _mmcamcorder_conf_get_value_int((MMHandleType)hcamcorder, hcamcorder->conf_ctrl, CONFIGURE_CATEGORY_CTRL_CAMERA, "RecommendDisplayRotation", &rcmd_dpy_rotation); - _mmcamcorder_conf_get_value_int(handle, hcamcorder->conf_main, + _mmcamcorder_conf_get_value_int((MMHandleType)hcamcorder, hcamcorder->conf_main, CONFIGURE_CATEGORY_MAIN_CAPTURE, "PlayCaptureSound", &play_capture_sound); - _mmcamcorder_conf_get_value_int(handle, hcamcorder->conf_main, + _mmcamcorder_conf_get_value_int((MMHandleType)hcamcorder, hcamcorder->conf_main, CONFIGURE_CATEGORY_MAIN_VIDEO_INPUT, "DeviceCount", &camera_device_count); - _mmcamcorder_conf_get_value_int(handle, hcamcorder->conf_ctrl, + _mmcamcorder_conf_get_value_int((MMHandleType)hcamcorder, hcamcorder->conf_ctrl, CONFIGURE_CATEGORY_CTRL_CAMERA, "FacingDirection", &camera_facing_direction); - _mmcamcorder_conf_get_value_int(handle, hcamcorder->conf_ctrl, + _mmcamcorder_conf_get_value_int((MMHandleType)hcamcorder, hcamcorder->conf_ctrl, CONFIGURE_CATEGORY_CTRL_EFFECT, "BrightnessStepDenominator", &hcamcorder->brightness_step_denominator); - _mmcamcorder_conf_get_value_int(handle, hcamcorder->conf_ctrl, + _mmcamcorder_conf_get_value_int((MMHandleType)hcamcorder, hcamcorder->conf_ctrl, CONFIGURE_CATEGORY_CTRL_CAPTURE, "SupportZSL", &hcamcorder->support_zsl_capture); @@ -260,13 +258,13 @@ int _mmcamcorder_create(MMHandleType *handle, MMCamPreset *info) hcamcorder->brightness_step_denominator, hcamcorder->support_zsl_capture); /* Get UseZeroCopyFormat value from INI */ - _mmcamcorder_conf_get_value_int(handle, hcamcorder->conf_main, + _mmcamcorder_conf_get_value_int((MMHandleType)hcamcorder, hcamcorder->conf_main, CONFIGURE_CATEGORY_MAIN_VIDEO_INPUT, "UseZeroCopyFormat", &(hcamcorder->use_zero_copy_format)); /* Get SupportMediaPacketPreviewCb value from INI */ - _mmcamcorder_conf_get_value_int(handle, hcamcorder->conf_main, + _mmcamcorder_conf_get_value_int((MMHandleType)hcamcorder, hcamcorder->conf_main, CONFIGURE_CATEGORY_MAIN_VIDEO_INPUT, "SupportMediaPacketPreviewCb", &(hcamcorder->support_media_packet_preview_cb)); @@ -364,7 +362,6 @@ _ERR_AFTER_ASM_REGISTER: _ERR_DEFAULT_VALUE_INIT: /* Release lock, cond */ pthread_mutex_destroy(&((hcamcorder->mtsafe).lock)); - pthread_cond_destroy(&((hcamcorder->mtsafe).cond)); pthread_mutex_destroy(&((hcamcorder->mtsafe).cmd_lock)); pthread_mutex_destroy(&((hcamcorder->mtsafe).asm_lock)); pthread_mutex_destroy(&((hcamcorder->mtsafe).state_lock)); @@ -525,7 +522,6 @@ int _mmcamcorder_destroy(MMHandleType handle) /* Release lock, cond */ pthread_mutex_destroy(&((hcamcorder->mtsafe).lock)); - pthread_cond_destroy(&((hcamcorder->mtsafe).cond)); pthread_mutex_destroy(&((hcamcorder->mtsafe).cmd_lock)); pthread_mutex_destroy(&((hcamcorder->mtsafe).asm_lock)); pthread_mutex_destroy(&((hcamcorder->mtsafe).state_lock)); -- 2.7.4