increase waiting time for image_util_transform to 4 sec 48/75848/1 accepted/tizen/common/20160622.145945 accepted/tizen/ivi/20160623.121224 accepted/tizen/mobile/20160623.121150 accepted/tizen/wearable/20160623.121205 submit/tizen/20160622.045539
authorJongkyu Koo <jk.koo@samsung.com>
Wed, 22 Jun 2016 00:53:46 +0000 (09:53 +0900)
committerJongkyu Koo <jk.koo@samsung.com>
Wed, 22 Jun 2016 00:54:03 +0000 (09:54 +0900)
Change-Id: I0c01f7710bac240e0447e3c1150dc3a49144060c
Signed-off-by: Jongkyu Koo <jk.koo@samsung.com>
common/ctsvc_image_util.c
server/db/ctsvc_db_utils.c

index 00d1a9e..58cfe04 100644 (file)
@@ -167,7 +167,7 @@ media_packet_h ctsvc_image_util_create_media_packet(media_format_h fmt,
        }
 
        if (mp_buffer)
-               memcpy(mp_buffer, buffer, (int)buffer_size);
+               memcpy(mp_buffer, buffer, (int)((buffer_size < mp_buffer_size) ? buffer_size : mp_buffer_size));
 
        return packet;
 }
@@ -182,6 +182,7 @@ static void _image_transform_completed_cb(media_packet_h *dst,
        struct image_transform *info = user_data;
 
        if (NULL == info) {
+               ERR("NULL == info");
                media_packet_destroy(*dst);
                return;
        }
@@ -209,7 +210,7 @@ static void _image_transform_completed_cb(media_packet_h *dst,
                        return;
                }
 
-               info->buffer = calloc(1, (int)size);
+               info->buffer = calloc(1, (size_t)size);
                if (NULL == info->buffer) {
                        ERR("calloc() Fail");
                        info->ret = CONTACTS_ERROR_SYSTEM;
@@ -219,7 +220,7 @@ static void _image_transform_completed_cb(media_packet_h *dst,
                        g_mutex_unlock(&info->mutex);
                        return;
                }
-               memcpy(info->buffer, buffer, (int)size);
+               memcpy(info->buffer, buffer, (size_t)size);
                info->size = size;
                info->ret = CONTACTS_ERROR_NONE;
        } else {
@@ -255,10 +256,13 @@ static int _ctsvc_image_util_transform_run(transformation_h transform,
        ret = image_util_transform_run(transform, packet, _image_transform_completed_cb, info);
        if (IMAGE_UTIL_ERROR_NONE != ret) {
                ERR("image_util_transform_run() Fail(%d)", ret);
+               g_mutex_unlock(&info->mutex);
+               g_mutex_clear(&info->mutex);
+               g_cond_clear(&info->cond);
                return CONTACTS_ERROR_SYSTEM;
        }
 
-       end_time = g_get_monotonic_time() + 2000 * G_TIME_SPAN_MILLISECOND;
+       end_time = g_get_monotonic_time() + 4000 * G_TIME_SPAN_MILLISECOND;
        if (!g_cond_wait_until(&info->cond, &info->mutex, end_time)) {
                /* timeout has passed */
                ERR("g_cond_wait_until() return FALSE");
@@ -278,7 +282,6 @@ static int _ctsvc_image_util_transform_run(transformation_h transform,
        *p_size = info->size;
        *p_buffer = info->buffer;
        free(info);
-
        return CONTACTS_ERROR_NONE;
 }
 
index e334f4e..e4da3da 100644 (file)
@@ -324,11 +324,12 @@ static bool _ctsvc_image_util_supported_jpeg_colorspace_cb(
                }
 
                packet = ctsvc_image_util_create_media_packet(fmt, buffer, (unsigned int)size);
+               free(buffer);
+
                if (NULL == packet) {
                        ERR("ctsvc_image_util_create_media_packet() Fail");
                        media_format_unref(fmt);
                        info->ret = CONTACTS_ERROR_SYSTEM;
-                       free(buffer);
                        return false;
                }
 
@@ -338,7 +339,6 @@ static bool _ctsvc_image_util_supported_jpeg_colorspace_cb(
                media_format_unref(fmt);
 
                if (CONTACTS_ERROR_NONE != ret) {
-                       free(buffer);
                        info->ret = CONTACTS_ERROR_SYSTEM;
                        return false;
                }
@@ -348,7 +348,6 @@ static bool _ctsvc_image_util_supported_jpeg_colorspace_cb(
                        width = height;
                        height = temp;
                }
-               free(buffer);
                buffer = buffer_temp;
        }
 
@@ -382,11 +381,12 @@ static bool _ctsvc_image_util_supported_jpeg_colorspace_cb(
                }
 
                packet = ctsvc_image_util_create_media_packet(fmt, buffer, (unsigned int)size);
+               free(buffer);
+
                if (NULL == packet) {
                        ERR("ctsvc_image_util_create_media_packet() Fail");
                        media_format_unref(fmt);
                        info->ret = CONTACTS_ERROR_SYSTEM;
-                       free(buffer);
                        return false;
                }
 
@@ -397,11 +397,9 @@ static bool _ctsvc_image_util_supported_jpeg_colorspace_cb(
                media_format_unref(fmt);
 
                if (CONTACTS_ERROR_NONE != ret) {
-                       free(buffer);
                        info->ret = -1;
                        return false;
                }
-               free(buffer);
                buffer = buffer_temp;
 
                width = resized_width;
@@ -596,14 +594,14 @@ char* ctsvc_utils_make_thumbnail(const char *image_path)
                return NULL;
        }
 
+       snprintf(src, sizeof(src), "%s/%s", CTSVC_CONTACT_IMG_FULL_LOCATION, image_path);
+       snprintf(dest, sizeof(dest), "%s/%s", CTSVC_CONTACT_IMG_FULL_LOCATION, thumbnail_path);
+
        if (0 == access(dest, F_OK)) {
                DBG("already exist");
                return thumbnail_path;
        }
 
-       snprintf(src, sizeof(src), "%s/%s", CTSVC_CONTACT_IMG_FULL_LOCATION, image_path);
-       snprintf(dest, sizeof(dest), "%s/%s", CTSVC_CONTACT_IMG_FULL_LOCATION, thumbnail_path);
-
        ret = _ctsvc_image_encode(src, dest, CTSVC_IMAGE_THUMBNAIL_SIZE);
        if (CONTACTS_ERROR_NONE != ret) {
                ERR("_ctsvc_image_encode() Fail(%d)", ret);