From eb9b3a99f5464b4d72d1de118298ec230e040bad Mon Sep 17 00:00:00 2001 From: Jeongmo Yang Date: Fri, 19 May 2017 10:51:01 +0900 Subject: [PATCH] Update code for privilege change recorder privilege is removed from recorder_create_* APIs, and it will be checked in recorder_start API. So, recorder_start could not be returned until get user's response. [Version] 0.3.1 [Profile] Common [Issue Type] Update [Dependency module] N/A Change-Id: I4a6e8327eebfbd5face640e32cdce6f579b0dae4 Signed-off-by: Jeongmo Yang --- packaging/capi-media-recorder.spec | 2 +- src/recorder.c | 93 +++++++++++++++++++------------------- 2 files changed, 47 insertions(+), 48 deletions(-) diff --git a/packaging/capi-media-recorder.spec b/packaging/capi-media-recorder.spec index 4b1d3a0..c96d19b 100644 --- a/packaging/capi-media-recorder.spec +++ b/packaging/capi-media-recorder.spec @@ -1,6 +1,6 @@ Name: capi-media-recorder Summary: A Recorder API -Version: 0.3.0 +Version: 0.3.1 Release: 0 Group: Multimedia/API License: Apache-2.0 diff --git a/src/recorder.c b/src/recorder.c index 5b0d745..dae6827 100644 --- a/src/recorder.c +++ b/src/recorder.c @@ -1262,7 +1262,7 @@ static int _recorder_client_wait_for_cb_return(muse_recorder_api_e api, recorder } -static int _recorder_msg_send(int api, recorder_cb_info_s *cb_info, int *ret) +static int _recorder_msg_send(int api, recorder_cb_info_s *cb_info, int *ret, int timeout) { int send_ret = 0; char *msg = NULL; @@ -1282,7 +1282,6 @@ static int _recorder_msg_send(int api, recorder_cb_info_s *cb_info, int *ret) if (cb_info->is_server_connected) { __recorder_update_api_waiting(cb_info, api, 1); - send_ret = muse_core_ipc_send_msg(cb_info->fd, msg); } @@ -1290,7 +1289,7 @@ static int _recorder_msg_send(int api, recorder_cb_info_s *cb_info, int *ret) LOGE("message send failed"); *ret = RECORDER_ERROR_INVALID_OPERATION; } else { - *ret = _recorder_client_wait_for_cb_return(api, cb_info, RECORDER_CB_TIMEOUT); + *ret = _recorder_client_wait_for_cb_return(api, cb_info, timeout); } __recorder_update_api_waiting(cb_info, api, -1); @@ -1539,7 +1538,7 @@ static int _recorder_create_common(recorder_h *recorder, muse_recorder_type_e ty sock_fd = -1; - ret = _recorder_client_wait_for_cb_return(MUSE_RECORDER_API_CREATE, pc->cb_info, RECORDER_CB_NO_TIMEOUT); + ret = _recorder_client_wait_for_cb_return(MUSE_RECORDER_API_CREATE, pc->cb_info, RECORDER_CB_TIMEOUT); pc->cb_info->api_waiting[MUSE_RECORDER_API_CREATE] = 0; @@ -1589,7 +1588,7 @@ static int _recorder_create_common(recorder_h *recorder, muse_recorder_type_e ty return RECORDER_ERROR_NONE; _ERR_RECORDER_AFTER_CREATE: - _recorder_msg_send(MUSE_RECORDER_API_DESTROY, pc->cb_info, &destroy_ret); + _recorder_msg_send(MUSE_RECORDER_API_DESTROY, pc->cb_info, &destroy_ret, RECORDER_CB_TIMEOUT); LOGE("destroy return 0x%x", destroy_ret); _ERR_RECORDER_EXIT: @@ -1649,7 +1648,7 @@ int recorder_get_state(recorder_h recorder, recorder_state_e *state) LOGD("Enter, remote_handle : %x", pc->remote_handle); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) *state = (recorder_state_e)pc->cb_info->get_int_value[_RECORDER_GET_INT_STATE]; @@ -1674,7 +1673,7 @@ int recorder_destroy(recorder_h recorder) LOGD("ENTER"); if (pc->cb_info->is_server_connected) - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); else LOGW("server disconnected. release resource without send message."); @@ -1704,7 +1703,7 @@ int recorder_prepare(recorder_h recorder) LOGD("ENTER"); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); LOGD("ret : 0x%x", ret); @@ -1745,7 +1744,7 @@ int recorder_unprepare(recorder_h recorder) } } - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); LOGD("ret : 0x%x", ret); @@ -1783,7 +1782,7 @@ int recorder_start(recorder_h recorder) } } - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_NO_TIMEOUT); if (pc->camera && current_state == RECORDER_STATE_READY) camera_start_evas_rendering(pc->camera); @@ -1807,7 +1806,7 @@ int recorder_pause(recorder_h recorder) LOGD("ENTER"); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); LOGD("ret : 0x%x", ret); @@ -1845,7 +1844,7 @@ int recorder_commit(recorder_h recorder) } } - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (pc->camera && current_state >= RECORDER_STATE_RECORDING) camera_start_evas_rendering(pc->camera); @@ -1886,7 +1885,7 @@ int recorder_cancel(recorder_h recorder) } } - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (pc->camera && current_state >= RECORDER_STATE_RECORDING) camera_start_evas_rendering(pc->camera); @@ -1962,7 +1961,7 @@ int recorder_get_video_resolution(recorder_h recorder, int *width, int *height) LOGD("ENTER"); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) { *width = pc->cb_info->get_int_value[_RECORDER_GET_INT_VIDEO_RESOLUTION] >> 16; @@ -1992,7 +1991,7 @@ int recorder_foreach_supported_video_resolution(recorder_h recorder, pc->cb_info->user_cb[MUSE_RECORDER_EVENT_TYPE_FOREACH_SUPPORTED_VIDEO_RESOLUTION] = foreach_cb; pc->cb_info->user_data[MUSE_RECORDER_EVENT_TYPE_FOREACH_SUPPORTED_VIDEO_RESOLUTION] = user_data; - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); LOGD("ret : 0x%x", ret); @@ -2013,7 +2012,7 @@ int recorder_get_audio_level(recorder_h recorder, double *level) LOGD("ENTER"); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) *level = pc->cb_info->get_double_value[_RECORDER_GET_DOUBLE_AUDIO_LEVEL]; @@ -2089,7 +2088,7 @@ int recorder_get_filename(recorder_h recorder, char **filename) LOGD("ENTER"); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) { if (storage_get_compat_internal_path(pc->cb_info->get_filename, RECORDER_FILENAME_MAX, compat_filename) < 0) { @@ -2153,7 +2152,7 @@ int recorder_get_file_format(recorder_h recorder, recorder_file_format_e *format LOGD("ENTER"); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) *format = (recorder_file_format_e)pc->cb_info->get_int_value[_RECORDER_GET_INT_FILE_FORMAT]; @@ -2245,7 +2244,7 @@ int recorder_set_state_changed_cb(recorder_h recorder, recorder_state_changed_cb LOGD("Enter, handle :%x", pc->remote_handle); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) { pc->cb_info->user_cb[MUSE_RECORDER_EVENT_TYPE_STATE_CHANGE] = callback; @@ -2271,7 +2270,7 @@ int recorder_unset_state_changed_cb(recorder_h recorder) LOGD("ENTER"); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) { pc->cb_info->user_cb[MUSE_RECORDER_EVENT_TYPE_STATE_CHANGE] = NULL; @@ -2297,7 +2296,7 @@ int recorder_set_interrupted_cb(recorder_h recorder, recorder_interrupted_cb cal LOGD("Enter, handle :%x", pc->remote_handle); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) { pc->cb_info->user_cb[MUSE_RECORDER_EVENT_TYPE_INTERRUPTED] = callback; @@ -2323,7 +2322,7 @@ int recorder_unset_interrupted_cb(recorder_h recorder) LOGD("ENTER"); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) { pc->cb_info->user_cb[MUSE_RECORDER_EVENT_TYPE_INTERRUPTED] = NULL; @@ -2349,7 +2348,7 @@ int recorder_set_audio_stream_cb(recorder_h recorder, recorder_audio_stream_cb c LOGD("Enter, handle :%x", pc->remote_handle); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) { pc->cb_info->user_cb[MUSE_RECORDER_EVENT_TYPE_AUDIO_STREAM] = callback; @@ -2375,7 +2374,7 @@ int recorder_unset_audio_stream_cb(recorder_h recorder) LOGD("ENTER"); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) { pc->cb_info->user_cb[MUSE_RECORDER_EVENT_TYPE_AUDIO_STREAM] = NULL; @@ -2401,7 +2400,7 @@ int recorder_set_muxed_stream_cb(recorder_h recorder, recorder_muxed_stream_cb c LOGD("Enter, handle :%x", pc->remote_handle); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) { pc->cb_info->user_cb[MUSE_RECORDER_EVENT_TYPE_MUXED_STREAM] = callback; @@ -2427,7 +2426,7 @@ int recorder_unset_muxed_stream_cb(recorder_h recorder) LOGD("ENTER"); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) { pc->cb_info->user_cb[MUSE_RECORDER_EVENT_TYPE_MUXED_STREAM] = NULL; @@ -2453,7 +2452,7 @@ int recorder_set_error_cb(recorder_h recorder, recorder_error_cb callback, void LOGD("Enter, handle :%x", pc->remote_handle); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) { pc->cb_info->user_cb[MUSE_RECORDER_EVENT_TYPE_ERROR] = callback; @@ -2479,7 +2478,7 @@ int recorder_unset_error_cb(recorder_h recorder) LOGD("ENTER"); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) { pc->cb_info->user_cb[MUSE_RECORDER_EVENT_TYPE_ERROR] = NULL; @@ -2505,7 +2504,7 @@ int recorder_set_recording_status_cb(recorder_h recorder, recorder_recording_sta LOGD("Enter, handle :%x", pc->remote_handle); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) { pc->cb_info->user_cb[MUSE_RECORDER_EVENT_TYPE_RECORDING_STATUS] = callback; @@ -2531,7 +2530,7 @@ int recorder_unset_recording_status_cb(recorder_h recorder) LOGD("ENTER"); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) { pc->cb_info->user_cb[MUSE_RECORDER_EVENT_TYPE_RECORDING_STATUS] = NULL; @@ -2555,7 +2554,7 @@ int recorder_set_recording_limit_reached_cb(recorder_h recorder, recorder_record return RECORDER_ERROR_INVALID_PARAMETER; } - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) { pc->cb_info->user_cb[MUSE_RECORDER_EVENT_TYPE_RECORDING_LIMITED] = callback; @@ -2581,7 +2580,7 @@ int recorder_unset_recording_limit_reached_cb(recorder_h recorder) LOGD("ENTER"); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) { pc->cb_info->user_cb[MUSE_RECORDER_EVENT_TYPE_RECORDING_LIMITED] = NULL; @@ -2610,7 +2609,7 @@ int recorder_foreach_supported_file_format(recorder_h recorder, recorder_support pc->cb_info->user_cb[MUSE_RECORDER_EVENT_TYPE_FOREACH_SUPPORTED_FILE_FORMAT] = foreach_cb; pc->cb_info->user_data[MUSE_RECORDER_EVENT_TYPE_FOREACH_SUPPORTED_FILE_FORMAT] = user_data; - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); LOGD("ret : 0x%x", ret); @@ -2734,7 +2733,7 @@ int recorder_get_audio_encoder(recorder_h recorder, recorder_audio_codec_e *code LOGD("ENTER"); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) *codec = (recorder_audio_codec_e)pc->cb_info->get_int_value[_RECORDER_GET_INT_AUDIO_ENCODER]; @@ -2788,7 +2787,7 @@ int recorder_get_video_encoder(recorder_h recorder, recorder_video_codec_e *code LOGD("ENTER"); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) *codec = (recorder_video_codec_e)pc->cb_info->get_int_value[_RECORDER_GET_INT_VIDEO_ENCODER]; @@ -2889,7 +2888,7 @@ int recorder_attr_get_size_limit(recorder_h recorder, int *kbyte) LOGD("ENTER"); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) *kbyte = pc->cb_info->get_int_value[_RECORDER_GET_INT_SIZE_LIMIT]; @@ -2918,7 +2917,7 @@ int recorder_attr_get_time_limit(recorder_h recorder, int *second) LOGD("ENTER"); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) *second = pc->cb_info->get_int_value[_RECORDER_GET_INT_TIME_LIMIT]; @@ -2947,7 +2946,7 @@ int recorder_attr_get_audio_device(recorder_h recorder, recorder_audio_device_e LOGD("ENTER"); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) *device = (recorder_audio_device_e)pc->cb_info->get_int_value[_RECORDER_GET_INT_AUDIO_DEVICE]; @@ -2976,7 +2975,7 @@ int recorder_attr_get_audio_samplerate(recorder_h recorder, int *samplerate) LOGD("ENTER"); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) *samplerate = pc->cb_info->get_int_value[_RECORDER_GET_INT_AUDIO_SAMPLERATE]; @@ -3005,7 +3004,7 @@ int recorder_attr_get_audio_encoder_bitrate(recorder_h recorder, int *bitrate) LOGD("ENTER"); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) *bitrate = pc->cb_info->get_int_value[_RECORDER_GET_INT_AUDIO_ENCODER_BITRATE]; @@ -3034,7 +3033,7 @@ int recorder_attr_get_video_encoder_bitrate(recorder_h recorder, int *bitrate) LOGD("ENTER"); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) *bitrate = pc->cb_info->get_int_value[_RECORDER_GET_INT_VIDEO_ENCODER_BITRATE]; @@ -3061,7 +3060,7 @@ int recorder_foreach_supported_audio_encoder(recorder_h recorder, recorder_suppo pc->cb_info->user_cb[MUSE_RECORDER_EVENT_TYPE_FOREACH_SUPPORTED_AUDIO_ENCODER] = foreach_cb; pc->cb_info->user_data[MUSE_RECORDER_EVENT_TYPE_FOREACH_SUPPORTED_AUDIO_ENCODER] = user_data; - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); LOGD("ret : 0x%x", ret); @@ -3085,7 +3084,7 @@ int recorder_foreach_supported_video_encoder(recorder_h recorder, recorder_suppo pc->cb_info->user_cb[MUSE_RECORDER_EVENT_TYPE_FOREACH_SUPPORTED_VIDEO_ENCODER] = foreach_cb; pc->cb_info->user_data[MUSE_RECORDER_EVENT_TYPE_FOREACH_SUPPORTED_VIDEO_ENCODER] = user_data; - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); LOGD("ret : 0x%x", ret); @@ -3131,7 +3130,7 @@ bool recorder_attr_is_muted(recorder_h recorder) LOGD("ENTER"); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_SERVICE_DISCONNECTED) ret = false; @@ -3184,7 +3183,7 @@ int recorder_attr_get_recording_motion_rate(recorder_h recorder, double *rate) LOGD("ENTER"); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) *rate = pc->cb_info->get_double_value[_RECORDER_GET_DOUBLE_RECORDING_MOTION_RATE]; @@ -3236,7 +3235,7 @@ int recorder_attr_get_audio_channel(recorder_h recorder, int *channel_count) LOGD("ENTER"); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) *channel_count = pc->cb_info->get_int_value[_RECORDER_GET_INT_AUDIO_CHANNEL]; @@ -3290,7 +3289,7 @@ int recorder_attr_get_orientation_tag(recorder_h recorder, recorder_rotation_e LOGD("ENTER"); - _recorder_msg_send(api, pc->cb_info, &ret); + _recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT); if (ret == RECORDER_ERROR_NONE) *orientation = (recorder_rotation_e)pc->cb_info->get_int_value[_RECORDER_GET_INT_ORIENTATION_TAG]; -- 2.7.4