From: jiyong.min Date: Thu, 11 Apr 2019 23:39:21 +0000 (+0900) Subject: [UTC][capi-image-util][ACR-1374][Add new sync transform APIs (convert, crop, resize... X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=eb9043de423bfd6b1fcbb6eba503f10bfd1261da;p=test%2Ftct%2Fnative%2Fapi.git [UTC][capi-image-util][ACR-1374][Add new sync transform APIs (convert, crop, resize, rotate)] Change-Id: Ic4f716b3ec7faf6c201b78510642987a6de9cac5 --- diff --git a/src/utc/image-util/public.list b/src/utc/image-util/public.list index 406afa753..3ec4c9924 100755 --- a/src/utc/image-util/public.list +++ b/src/utc/image-util/public.list @@ -1,23 +1,3 @@ -image_util_calculate_buffer_size -image_util_decode_jpeg -image_util_decode_jpeg_from_memory -image_util_decode_jpeg_with_downscale -image_util_decode_jpeg_from_memory_with_downscale -image_util_encode_jpeg -image_util_encode_jpeg_to_memory -image_util_foreach_supported_jpeg_colorspace -image_util_transform_create -image_util_transform_set_hardware_acceleration -image_util_transform_set_colorspace -image_util_transform_set_resolution -image_util_transform_set_rotation -image_util_transform_set_crop_area -image_util_transform_get_colorspace -image_util_transform_get_resolution -image_util_transform_get_rotation -image_util_transform_get_crop_area -image_util_transform_run -image_util_transform_destroy image_util_foreach_supported_colorspace image_util_decode_create image_util_decode_set_input_path @@ -31,12 +11,32 @@ image_util_decode_destroy image_util_encode_create image_util_encode_set_resolution image_util_encode_set_colorspace -image_util_encode_set_jpeg_quality +image_util_encode_set_quality image_util_encode_set_png_compression +image_util_encode_set_gif_frame_delay_time image_util_encode_set_input_buffer image_util_encode_set_output_path image_util_encode_set_output_buffer image_util_encode_run image_util_encode_run_async image_util_encode_destroy - +image_util_calculate_buffer_size +image_util_transform_create +image_util_transform_set_hardware_acceleration +image_util_transform_set_colorspace +image_util_transform_set_resolution +image_util_transform_set_rotation +image_util_transform_set_crop_area +image_util_transform_get_colorspace +image_util_transform_get_resolution +image_util_transform_get_rotation +image_util_transform_get_crop_area +image_util_transform_run +image_util_transform_destroy +image_util_extract_color_from_memory +image_util_create_image +image_util_clone_image +image_util_get_image +image_util_destroy_image +image_util_transform_run2 +image_util_transform_run2_async diff --git a/src/utc/image-util/tct-image-util-core_mobile.h b/src/utc/image-util/tct-image-util-core_mobile.h index 75e68a787..ce639f36c 100755 --- a/src/utc/image-util/tct-image-util-core_mobile.h +++ b/src/utc/image-util/tct-image-util-core_mobile.h @@ -186,6 +186,18 @@ extern int utc_image_util_transform_destory_n(void); extern int utc_image_util_transform_destory_p(void); extern int utc_image_util_extract_color_from_memory_p(void); extern int utc_image_util_extract_color_from_memory_n(void); +extern int utc_image_util_create_image_p(void); +extern int utc_image_util_create_image_n(void); +extern int utc_image_util_clone_image_p(void); +extern int utc_image_util_clone_image_n(void); +extern int utc_image_util_get_image_p(void); +extern int utc_image_util_get_image_n(void); +extern int utc_image_util_destroy_image_p(void); +extern int utc_image_util_destroy_image_n(void); +extern int utc_image_util_transform_run2_p(void); +extern int utc_image_util_transform_run2_n(void); +extern int utc_image_util_transform_run2_async_p(void); +extern int utc_image_util_transform_run2_async_n(void); testcase tc_array[] = { {"utc_image_util_foreach_supported_colorspace_n1",utc_image_util_foreach_supported_colorspace_n1,utc_image_util_decode_startup,utc_image_util_decode_cleanup}, @@ -348,6 +360,18 @@ testcase tc_array[] = { {"utc_image_util_transform_destory_p",utc_image_util_transform_destory_p,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, {"utc_image_util_extract_color_from_memory_p",utc_image_util_extract_color_from_memory_p,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, {"utc_image_util_extract_color_from_memory_n",utc_image_util_extract_color_from_memory_n,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_create_image_n",utc_image_util_create_image_n,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_create_image_p",utc_image_util_create_image_p,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_clone_image_n",utc_image_util_clone_image_n,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_clone_image_p",utc_image_util_clone_image_p,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_get_image_n",utc_image_util_get_image_n,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_get_image_p",utc_image_util_get_image_p,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_destroy_image_n",utc_image_util_destroy_image_n,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_destroy_image_p",utc_image_util_destroy_image_p,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_transform_run2_n",utc_image_util_transform_run2_n,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_transform_run2_p",utc_image_util_transform_run2_p,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_transform_run2_async_n",utc_image_util_transform_run2_async_n,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_transform_run2_async_p",utc_image_util_transform_run2_async_p,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, {NULL, NULL} }; diff --git a/src/utc/image-util/tct-image-util-core_tizeniot.h b/src/utc/image-util/tct-image-util-core_tizeniot.h index 75e68a787..ce639f36c 100755 --- a/src/utc/image-util/tct-image-util-core_tizeniot.h +++ b/src/utc/image-util/tct-image-util-core_tizeniot.h @@ -186,6 +186,18 @@ extern int utc_image_util_transform_destory_n(void); extern int utc_image_util_transform_destory_p(void); extern int utc_image_util_extract_color_from_memory_p(void); extern int utc_image_util_extract_color_from_memory_n(void); +extern int utc_image_util_create_image_p(void); +extern int utc_image_util_create_image_n(void); +extern int utc_image_util_clone_image_p(void); +extern int utc_image_util_clone_image_n(void); +extern int utc_image_util_get_image_p(void); +extern int utc_image_util_get_image_n(void); +extern int utc_image_util_destroy_image_p(void); +extern int utc_image_util_destroy_image_n(void); +extern int utc_image_util_transform_run2_p(void); +extern int utc_image_util_transform_run2_n(void); +extern int utc_image_util_transform_run2_async_p(void); +extern int utc_image_util_transform_run2_async_n(void); testcase tc_array[] = { {"utc_image_util_foreach_supported_colorspace_n1",utc_image_util_foreach_supported_colorspace_n1,utc_image_util_decode_startup,utc_image_util_decode_cleanup}, @@ -348,6 +360,18 @@ testcase tc_array[] = { {"utc_image_util_transform_destory_p",utc_image_util_transform_destory_p,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, {"utc_image_util_extract_color_from_memory_p",utc_image_util_extract_color_from_memory_p,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, {"utc_image_util_extract_color_from_memory_n",utc_image_util_extract_color_from_memory_n,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_create_image_n",utc_image_util_create_image_n,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_create_image_p",utc_image_util_create_image_p,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_clone_image_n",utc_image_util_clone_image_n,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_clone_image_p",utc_image_util_clone_image_p,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_get_image_n",utc_image_util_get_image_n,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_get_image_p",utc_image_util_get_image_p,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_destroy_image_n",utc_image_util_destroy_image_n,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_destroy_image_p",utc_image_util_destroy_image_p,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_transform_run2_n",utc_image_util_transform_run2_n,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_transform_run2_p",utc_image_util_transform_run2_p,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_transform_run2_async_n",utc_image_util_transform_run2_async_n,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_transform_run2_async_p",utc_image_util_transform_run2_async_p,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, {NULL, NULL} }; diff --git a/src/utc/image-util/tct-image-util-core_wearable.h b/src/utc/image-util/tct-image-util-core_wearable.h index 75e68a787..ce639f36c 100755 --- a/src/utc/image-util/tct-image-util-core_wearable.h +++ b/src/utc/image-util/tct-image-util-core_wearable.h @@ -186,6 +186,18 @@ extern int utc_image_util_transform_destory_n(void); extern int utc_image_util_transform_destory_p(void); extern int utc_image_util_extract_color_from_memory_p(void); extern int utc_image_util_extract_color_from_memory_n(void); +extern int utc_image_util_create_image_p(void); +extern int utc_image_util_create_image_n(void); +extern int utc_image_util_clone_image_p(void); +extern int utc_image_util_clone_image_n(void); +extern int utc_image_util_get_image_p(void); +extern int utc_image_util_get_image_n(void); +extern int utc_image_util_destroy_image_p(void); +extern int utc_image_util_destroy_image_n(void); +extern int utc_image_util_transform_run2_p(void); +extern int utc_image_util_transform_run2_n(void); +extern int utc_image_util_transform_run2_async_p(void); +extern int utc_image_util_transform_run2_async_n(void); testcase tc_array[] = { {"utc_image_util_foreach_supported_colorspace_n1",utc_image_util_foreach_supported_colorspace_n1,utc_image_util_decode_startup,utc_image_util_decode_cleanup}, @@ -348,6 +360,18 @@ testcase tc_array[] = { {"utc_image_util_transform_destory_p",utc_image_util_transform_destory_p,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, {"utc_image_util_extract_color_from_memory_p",utc_image_util_extract_color_from_memory_p,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, {"utc_image_util_extract_color_from_memory_n",utc_image_util_extract_color_from_memory_n,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_create_image_n",utc_image_util_create_image_n,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_create_image_p",utc_image_util_create_image_p,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_clone_image_n",utc_image_util_clone_image_n,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_clone_image_p",utc_image_util_clone_image_p,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_get_image_n",utc_image_util_get_image_n,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_get_image_p",utc_image_util_get_image_p,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_destroy_image_n",utc_image_util_destroy_image_n,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_destroy_image_p",utc_image_util_destroy_image_p,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_transform_run2_n",utc_image_util_transform_run2_n,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_transform_run2_p",utc_image_util_transform_run2_p,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_transform_run2_async_n",utc_image_util_transform_run2_async_n,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, + {"utc_image_util_transform_run2_async_p",utc_image_util_transform_run2_async_p,utc_media_image_util_basic_startup,utc_media_image_util_basic_cleanup}, {NULL, NULL} }; diff --git a/src/utc/image-util/utc-media-image-util-basic.c b/src/utc/image-util/utc-media-image-util-basic.c index aadf708bf..15c90d01c 100755 --- a/src/utc/image-util/utc-media-image-util-basic.c +++ b/src/utc/image-util/utc-media-image-util-basic.c @@ -26,6 +26,9 @@ #define LAST_COLORSPACE IMAGE_UTIL_COLORSPACE_BGRX8888 #define UNSUPPORTED_COLORSPACE IMAGE_UTIL_COLORSPACE_NV61+1 +#define RESIZE_WIDTH 320 +#define RESIZE_HEIGHT 240 + #define retval_if_neq(var, ref) \ do { \ if (var != ref) { \ @@ -36,12 +39,13 @@ } \ } while (0) -static transformation_h image_h = NULL; +static transformation_h g_transform = NULL; static media_format_h fmt = NULL; static media_packet_h src = NULL; static char* img_file1 = "sample.jpg"; static char* img_path1 = NULL; static image_util_colorspace_e supported_colorspace = 0; +static gboolean g_startup_ret = FALSE; static gboolean g_async_result = FALSE; typedef struct { @@ -51,6 +55,7 @@ typedef struct { unsigned long height; } utc_decoded_image; static utc_decoded_image decoded_image = {NULL, 0, 0, 0}; +static image_util_image_h g_image = NULL; static GMainLoop *g_image_util_mainloop = NULL; static int g_timeout_id = 0; @@ -64,7 +69,6 @@ static gboolean timeout_func(gpointer data) static void signal_for_async() { - g_async_result = TRUE; fprintf(stderr, "[%s][Line : %d] Invoked completed callback!\n", __FILE__, __LINE__); if (g_timeout_id > 0) g_source_remove(g_timeout_id); @@ -76,9 +80,6 @@ static void wait_for_async() { g_timeout_id = 0; - if (g_async_result) - return; - fprintf(stderr, "[%s][Line : %d]\n", __FILE__, __LINE__); g_image_util_mainloop = g_main_loop_new(NULL, FALSE); @@ -90,15 +91,73 @@ static void wait_for_async() g_image_util_mainloop = NULL; } - -static bool _utc_supported_colorspace_cb( image_util_colorspace_e colorspace, void * user_data) +/* Start callback function declarations */ +static bool __utc_supported_colorspace_cb( image_util_colorspace_e colorspace, void * user_data) { + FPRINTF("[%s:%d] invoked (colorspace: %d)\\n", __FILE__, __LINE__, colorspace); + supported_colorspace = colorspace; - fprintf(stderr, "supported format colorspace: %d!\n", supported_colorspace); + return false; } -static int _utc_decode_jpeg(void) +static void __utc_transform_completed_cb(media_packet_h *packet, int error, void *user_param) +{ + FPRINTF("[%s:%d] invoked (error: %d)\\n", __FILE__, __LINE__, error); + + if(error == IMAGE_UTIL_ERROR_NONE) + g_async_result = TRUE; + else + g_async_result = FALSE; + + signal_for_async(); +} + +static void __utc_transform_completed2_cb(image_util_image_h dst, int error_code, void *user_data) +{ + int ret = IMAGE_UTIL_ERROR_NONE; + unsigned int width = 0; + unsigned int height = 0; + image_util_colorspace_e color = IMAGE_UTIL_COLORSPACE_I420; + unsigned char *buffer = NULL; + size_t buffer_size = 0; + + FPRINTF("[%s:%d] invoked (error_code: %d)\\n", __FILE__, __LINE__, error_code); + + ret = image_util_get_image(dst, &width, &height, &color, &buffer, &buffer_size); + if (ret != IMAGE_UTIL_ERROR_NONE) { + g_async_result = FALSE; + goto EXIT; + } + + FPRINTF("[%s:%d] image (w: %u, h: %u, color: %d, buf: %p, buf_size: %zu)\\n", __FILE__, __LINE__, + width, height, color, buffer, buffer_size); + + /* compare values with original values */ + if (buffer == NULL || buffer_size == 0) { + g_async_result = FALSE; + goto EXIT; + } + + if (width != RESIZE_WIDTH && height != RESIZE_HEIGHT) { + g_async_result = FALSE; + goto EXIT; + } + + g_async_result = TRUE; + +EXIT: + if (buffer) + free(buffer); + signal_for_async(); +} +/* End callback function declarations */ + +static int __utc_get_storage_path() +{ +} + +static int __utc_decode_jpeg(void) { int ret = IMAGE_UTIL_ERROR_NONE; image_util_decode_h _decoder = NULL; @@ -120,7 +179,7 @@ out: return ret; } -static int _utc_create_media_packet() +static int __utc_create_media_packet() { int ret = IMAGE_UTIL_ERROR_NONE; @@ -151,8 +210,10 @@ static int _utc_create_media_packet() void utc_media_image_util_basic_startup(void) { int ret = IMAGE_UTIL_ERROR_NONE; - char pszValue[CONFIG_VALUE_LEN_MAX] = {0,}; + + g_startup_ret = FALSE; + if ( true == GetValueForTCTSetting("DEVICE_SUITE_TARGET_30", pszValue, API_NAMESPACE )) { PRINT_UTC_LOG("[Line : %d][%s] 'DEVICE_SUITE_TARGET_30' Values Received = %s\\n", __LINE__, API_NAMESPACE, pszValue); @@ -164,12 +225,22 @@ void utc_media_image_util_basic_startup(void) PRINT_UTC_LOG("[Line : %d][%s] GetValueForTCTSetting returned error for 'DEVICE_SUITE_TARGET_30'\\n", __LINE__, API_NAMESPACE); } - image_util_foreach_supported_colorspace(IMAGE_UTIL_JPEG, _utc_supported_colorspace_cb, NULL); + image_util_foreach_supported_colorspace(IMAGE_UTIL_JPEG, __utc_supported_colorspace_cb, NULL); - ret = _utc_decode_jpeg(); - assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + ret = __utc_decode_jpeg(); + if (ret != IMAGE_UTIL_ERROR_NONE) { + FPRINTF("[%s:%d] __utc_decode_jpeg failed (ret: %d)\\n", __FILE__, __LINE__, ret); + return; + } + + ret = image_util_transform_create(&g_transform); + if (ret != IMAGE_UTIL_ERROR_NONE) { + FPRINTF("[%s:%d] image_util_transform_create failed (ret: %d)\\n", __FILE__, __LINE__, ret); + return; + } g_async_result = FALSE; + g_startup_ret = TRUE; } /** @@ -180,6 +251,10 @@ void utc_media_image_util_basic_startup(void) */ void utc_media_image_util_basic_cleanup(void) { + if (g_image) { + image_util_destroy_image(g_image); + g_image = NULL; + } if (decoded_image.buffer) { free(decoded_image.buffer); decoded_image.buffer = NULL; @@ -188,9 +263,9 @@ void utc_media_image_util_basic_cleanup(void) free(img_path1); img_path1 = NULL; } - if(image_h) { - image_util_transform_destroy(image_h); - image_h = NULL; + if(g_transform) { + image_util_transform_destroy(g_transform); + g_transform = NULL; } if(fmt) { media_format_unref(fmt); @@ -202,19 +277,6 @@ void utc_media_image_util_basic_cleanup(void) } } - - -static bool utc_transform_completed_cb(media_packet_h *packet, int error, void *user_param) -{ - signal_for_async(); - - if(error == IMAGE_UTIL_ERROR_NONE) { - return true; - } else { - return false; - } -} - /** * @testcase utc_image_util_calculate_buffer_size_p1 * @since_tizen 2.3 @@ -238,6 +300,8 @@ int utc_image_util_calculate_buffer_size_p1(void) */ int utc_image_util_calculate_buffer_size_p2(void) { + assert(g_startup_ret); + unsigned int size_calc = 0; // decoded buffers @@ -306,7 +370,9 @@ int utc_image_util_calculate_buffer_size_n3(void) */ int utc_image_util_transform_create_n(void) { - int ret = image_util_transform_create(NULL); + int ret = IMAGE_UTIL_ERROR_NONE; + + ret = image_util_transform_create(NULL); assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); return 0; @@ -319,8 +385,14 @@ int utc_image_util_transform_create_n(void) */ int utc_image_util_transform_create_p(void) { - int ret = image_util_transform_create(&image_h); + assert_neq(g_transform, NULL); + + int ret = IMAGE_UTIL_ERROR_NONE; + + ret = image_util_transform_destroy(g_transform); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + ret = image_util_transform_create(&g_transform); assert_eq(ret, IMAGE_UTIL_ERROR_NONE); return 0; @@ -347,9 +419,11 @@ int utc_image_util_transform_set_hardware_acceleration_n(void) */ int utc_image_util_transform_set_hardware_acceleration_p(void) { - int ret = image_util_transform_create(&image_h); - ret = image_util_transform_set_hardware_acceleration(image_h, false); + assert_neq(g_transform, NULL); + int ret = IMAGE_UTIL_ERROR_NONE; + + ret = image_util_transform_set_hardware_acceleration(g_transform, false); assert_eq(ret, IMAGE_UTIL_ERROR_NONE); return 0; @@ -362,7 +436,7 @@ int utc_image_util_transform_set_hardware_acceleration_p(void) */ int utc_image_util_transform_set_colorspace_n(void) { - int ret = image_util_transform_set_colorspace(NULL, IMAGE_UTIL_COLORSPACE_RGB888); + int ret = image_util_transform_set_colorspace(NULL, IMAGE_UTIL_COLORSPACE_RGB888); assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); @@ -376,9 +450,11 @@ int utc_image_util_transform_set_colorspace_n(void) */ int utc_image_util_transform_set_colorspace_p(void) { - int ret = image_util_transform_create(&image_h); - ret = image_util_transform_set_colorspace(image_h, IMAGE_UTIL_COLORSPACE_RGB888); + assert_neq(g_transform, NULL); + int ret = IMAGE_UTIL_ERROR_NONE; + + ret = image_util_transform_set_colorspace(g_transform, IMAGE_UTIL_COLORSPACE_RGB888); assert_eq(ret, IMAGE_UTIL_ERROR_NONE); return 0; @@ -406,15 +482,15 @@ int utc_image_util_transform_get_colorspace_n1(void) */ int utc_image_util_transform_get_colorspace_n2(void) { - image_util_colorspace_e colorspace; - int ret = image_util_transform_create(&image_h); + assert_neq(g_transform, NULL); - ret = image_util_transform_get_colorspace(image_h, NULL); + image_util_colorspace_e colorspace; + int ret = IMAGE_UTIL_ERROR_NONE; + ret = image_util_transform_get_colorspace(g_transform, NULL); assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_OPERATION); - ret = image_util_transform_get_colorspace(image_h, &colorspace); - + ret = image_util_transform_get_colorspace(g_transform, &colorspace); assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_OPERATION); return 0; @@ -427,12 +503,15 @@ int utc_image_util_transform_get_colorspace_n2(void) */ int utc_image_util_transform_get_colorspace_p(void) { + assert_neq(g_transform, NULL); + image_util_colorspace_e colorspace; - int ret = image_util_transform_create(&image_h); - ret = image_util_transform_set_colorspace(image_h, IMAGE_UTIL_COLORSPACE_RGB888); + int ret = IMAGE_UTIL_ERROR_NONE; + + ret = image_util_transform_set_colorspace(g_transform, IMAGE_UTIL_COLORSPACE_RGB888); assert_eq(ret, IMAGE_UTIL_ERROR_NONE); - ret = image_util_transform_get_colorspace(image_h, &colorspace); + ret = image_util_transform_get_colorspace(g_transform, &colorspace); assert_eq(ret, IMAGE_UTIL_ERROR_NONE); assert_eq(colorspace, IMAGE_UTIL_COLORSPACE_RGB888); @@ -447,7 +526,7 @@ int utc_image_util_transform_get_colorspace_p(void) */ int utc_image_util_transform_set_resolution_n1(void) { - int ret = image_util_transform_set_resolution(NULL, 320, 240); + int ret = image_util_transform_set_resolution(NULL, 320, 240); assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); @@ -461,16 +540,14 @@ int utc_image_util_transform_set_resolution_n1(void) */ int utc_image_util_transform_set_resolution_n2(void) { - int ret = image_util_transform_create(&image_h); - - assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + assert_neq(g_transform, NULL); - ret = image_util_transform_set_resolution(image_h, 0, 240); + int ret = IMAGE_UTIL_ERROR_NONE; + ret = image_util_transform_set_resolution(g_transform, 0, 240); assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); - ret = image_util_transform_set_resolution(image_h, 320, 0); - + ret = image_util_transform_set_resolution(g_transform, 320, 0); assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); return 0; @@ -483,16 +560,14 @@ int utc_image_util_transform_set_resolution_n2(void) */ int utc_image_util_transform_set_resolution_n3(void) { - int ret = image_util_transform_create(&image_h); + assert_neq(g_transform, NULL); - assert_eq(ret, IMAGE_UTIL_ERROR_NONE); - - ret = image_util_transform_set_crop_area(image_h, 0, 0, 320, 240); + int ret = IMAGE_UTIL_ERROR_NONE; + ret = image_util_transform_set_crop_area(g_transform, 0, 0, 320, 240); assert_eq(ret, IMAGE_UTIL_ERROR_NONE); - ret = image_util_transform_set_resolution(image_h, 320, 240); - + ret = image_util_transform_set_resolution(g_transform, 320, 240); assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_OPERATION); return 0; @@ -505,9 +580,11 @@ int utc_image_util_transform_set_resolution_n3(void) */ int utc_image_util_transform_set_resolution_p(void) { - int ret = image_util_transform_create(&image_h); - ret = image_util_transform_set_resolution(image_h, 320, 240); + assert_neq(g_transform, NULL); + + int ret = IMAGE_UTIL_ERROR_NONE; + ret = image_util_transform_set_resolution(g_transform, 320, 240); assert_eq(ret, IMAGE_UTIL_ERROR_NONE); return 0; @@ -535,19 +612,18 @@ int utc_image_util_transform_get_resolution_n1(void) */ int utc_image_util_transform_get_resolution_n2(void) { - unsigned int width = 0, height = 0; - int ret = image_util_transform_create(&image_h); + assert_neq(g_transform, NULL); - ret = image_util_transform_get_resolution(image_h, NULL, &height); + unsigned int width = 0, height = 0; + int ret = IMAGE_UTIL_ERROR_NONE; + ret = image_util_transform_get_resolution(g_transform, NULL, &height); assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_OPERATION); - ret = image_util_transform_get_resolution(image_h, &width, NULL); - + ret = image_util_transform_get_resolution(g_transform, &width, NULL); assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_OPERATION); - ret = image_util_transform_get_resolution(image_h, &width, &height); - + ret = image_util_transform_get_resolution(g_transform, &width, &height); assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_OPERATION); return 0; @@ -560,14 +636,16 @@ int utc_image_util_transform_get_resolution_n2(void) */ int utc_image_util_transform_get_resolution_p(void) { + assert_neq(g_transform, NULL); + unsigned int width = 0; unsigned int height = 0; - int ret = image_util_transform_create(&image_h); - ret = image_util_transform_set_resolution(image_h, 320, 240); - assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + int ret = IMAGE_UTIL_ERROR_NONE; - ret = image_util_transform_get_resolution(image_h, &width, &height); + ret = image_util_transform_set_resolution(g_transform, 320, 240); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + ret = image_util_transform_get_resolution(g_transform, &width, &height); assert_eq(ret, IMAGE_UTIL_ERROR_NONE); assert_eq(width, 320); assert_eq(height, 240); @@ -597,9 +675,11 @@ int utc_image_util_transform_set_rotation_n(void) */ int utc_image_util_transform_set_rotation_p(void) { - int ret = image_util_transform_create(&image_h); - ret = image_util_transform_set_rotation(image_h, IMAGE_UTIL_ROTATION_90); + assert_neq(g_transform, NULL); + int ret = IMAGE_UTIL_ERROR_NONE; + + ret = image_util_transform_set_rotation(g_transform, IMAGE_UTIL_ROTATION_90); assert_eq(ret, IMAGE_UTIL_ERROR_NONE); return 0; @@ -612,11 +692,10 @@ int utc_image_util_transform_set_rotation_p(void) */ int utc_image_util_transform_get_rotation_n1(void) { - int ret = image_util_transform_create(&image_h); + int ret = IMAGE_UTIL_ERROR_NONE; image_util_rotation_e rotation = IMAGE_UTIL_ROTATION_NONE; ret = image_util_transform_get_rotation(NULL, &rotation); - assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); return 0; @@ -629,15 +708,15 @@ int utc_image_util_transform_get_rotation_n1(void) */ int utc_image_util_transform_get_rotation_n2(void) { - int ret = image_util_transform_create(&image_h); - image_util_rotation_e rotation = IMAGE_UTIL_ROTATION_NONE; + assert_neq(g_transform, NULL); - ret = image_util_transform_get_rotation(image_h, NULL); + int ret = IMAGE_UTIL_ERROR_NONE; + image_util_rotation_e rotation = IMAGE_UTIL_ROTATION_NONE; + ret = image_util_transform_get_rotation(g_transform, NULL); assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_OPERATION); - ret = image_util_transform_get_rotation(image_h, &rotation); - + ret = image_util_transform_get_rotation(g_transform, &rotation); assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_OPERATION); return 0; @@ -650,12 +729,15 @@ int utc_image_util_transform_get_rotation_n2(void) */ int utc_image_util_transform_get_rotation_p(void) { - image_util_rotation_e rotation; - int ret = image_util_transform_create(&image_h); - ret = image_util_transform_set_rotation(image_h, IMAGE_UTIL_ROTATION_90); + assert_neq(g_transform, NULL); + + int ret = IMAGE_UTIL_ERROR_NONE; + image_util_rotation_e rotation = IMAGE_UTIL_ROTATION_NONE; + + ret = image_util_transform_set_rotation(g_transform, IMAGE_UTIL_ROTATION_90); assert_eq(ret, IMAGE_UTIL_ERROR_NONE); - ret = image_util_transform_get_rotation(image_h, &rotation); + ret = image_util_transform_get_rotation(g_transform, &rotation); assert_eq(ret, IMAGE_UTIL_ERROR_NONE); assert_eq(rotation, IMAGE_UTIL_ROTATION_90); @@ -671,7 +753,7 @@ int utc_image_util_transform_get_rotation_p(void) */ int utc_image_util_transform_run_n1(void) { - int ret = image_util_transform_run(NULL, src, (image_util_transform_completed_cb) utc_transform_completed_cb, NULL); + int ret = image_util_transform_run(NULL, src, (image_util_transform_completed_cb) __utc_transform_completed_cb, NULL); assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); @@ -685,10 +767,11 @@ int utc_image_util_transform_run_n1(void) */ int utc_image_util_transform_run_n2(void) { - int ret = image_util_transform_create(&image_h); + assert_neq(g_transform, NULL); - ret = image_util_transform_run(image_h, NULL, (image_util_transform_completed_cb) utc_transform_completed_cb, NULL); + int ret = IMAGE_UTIL_ERROR_NONE; + ret = image_util_transform_run(g_transform, NULL, (image_util_transform_completed_cb) __utc_transform_completed_cb, NULL); assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); return 0; @@ -701,13 +784,14 @@ int utc_image_util_transform_run_n2(void) */ int utc_image_util_transform_run_n3(void) { - int ret = image_util_transform_create(&image_h); - assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + assert_neq(g_transform, NULL); + + int ret = IMAGE_UTIL_ERROR_NONE; - ret = _utc_create_media_packet(); + ret = __utc_create_media_packet(); assert_eq(ret, 0); - ret = image_util_transform_run(image_h, src, (image_util_transform_completed_cb) NULL, NULL); + ret = image_util_transform_run(g_transform, src, (image_util_transform_completed_cb) NULL, NULL); assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); return 0; @@ -720,13 +804,14 @@ int utc_image_util_transform_run_n3(void) */ int utc_image_util_transform_run_n4(void) { - int ret = image_util_transform_create(&image_h); - assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + assert_neq(g_transform, NULL); + + int ret = IMAGE_UTIL_ERROR_NONE; - ret = _utc_create_media_packet(); + ret = __utc_create_media_packet(); assert_eq(ret, 0); - ret = image_util_transform_run(image_h, src, (image_util_transform_completed_cb) utc_transform_completed_cb, NULL); + ret = image_util_transform_run(g_transform, src, (image_util_transform_completed_cb) __utc_transform_completed_cb, NULL); assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); return 0; @@ -739,16 +824,18 @@ int utc_image_util_transform_run_n4(void) */ int utc_image_util_transform_run_p1(void) { - int ret = image_util_transform_create(&image_h); - assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + assert_neq(g_transform, NULL); + + int ret = IMAGE_UTIL_ERROR_NONE; - ret = _utc_create_media_packet(); + ret = __utc_create_media_packet(); assert_eq(ret, 0); - ret = image_util_transform_set_resolution(image_h, 176, 144); + ret = image_util_transform_set_resolution(g_transform, 176, 144); assert_eq(ret, IMAGE_UTIL_ERROR_NONE); - ret = image_util_transform_run(image_h, src, (image_util_transform_completed_cb) utc_transform_completed_cb, NULL); + g_async_result = FALSE; + ret = image_util_transform_run(g_transform, src, (image_util_transform_completed_cb) __utc_transform_completed_cb, NULL); assert_eq(ret, IMAGE_UTIL_ERROR_NONE); wait_for_async(); @@ -764,19 +851,21 @@ int utc_image_util_transform_run_p1(void) */ int utc_image_util_transform_run_p2(void) { - int ret = image_util_transform_create(&image_h); - assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + assert_neq(g_transform, NULL); + + int ret = IMAGE_UTIL_ERROR_NONE; - ret = _utc_create_media_packet(); + ret = __utc_create_media_packet(); assert_eq(ret, 0); - ret = image_util_transform_set_resolution(image_h, 176, 144); + ret = image_util_transform_set_resolution(g_transform, 176, 144); assert_eq(ret, IMAGE_UTIL_ERROR_NONE); - ret = image_util_transform_set_rotation(image_h, IMAGE_UTIL_ROTATION_90); + ret = image_util_transform_set_rotation(g_transform, IMAGE_UTIL_ROTATION_90); assert_eq(ret, IMAGE_UTIL_ERROR_NONE); - ret = image_util_transform_run(image_h, src, (image_util_transform_completed_cb) utc_transform_completed_cb, NULL); + g_async_result = FALSE; + ret = image_util_transform_run(g_transform, src, (image_util_transform_completed_cb) __utc_transform_completed_cb, NULL); assert_eq(ret, IMAGE_UTIL_ERROR_NONE); wait_for_async(); @@ -792,20 +881,23 @@ int utc_image_util_transform_run_p2(void) */ int utc_image_util_transform_run_p3(void) { - int ret = image_util_transform_create(&image_h); - assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + assert_neq(g_transform, NULL); - ret = _utc_create_media_packet(); + int ret = IMAGE_UTIL_ERROR_NONE; + + ret = __utc_create_media_packet(); assert_eq(ret, 0); - ret = image_util_transform_set_crop_area(image_h, 0, 0, 176, 144); + ret = image_util_transform_set_crop_area(g_transform, 0, 0, 176, 144); assert_eq(ret, IMAGE_UTIL_ERROR_NONE); - ret = image_util_transform_set_rotation(image_h, IMAGE_UTIL_ROTATION_90); + ret = image_util_transform_set_rotation(g_transform, IMAGE_UTIL_ROTATION_90); assert_eq(ret, IMAGE_UTIL_ERROR_NONE); - ret = image_util_transform_run(image_h, src, (image_util_transform_completed_cb) utc_transform_completed_cb, NULL); + g_async_result = FALSE; + ret = image_util_transform_run(g_transform, src, (image_util_transform_completed_cb) __utc_transform_completed_cb, NULL); assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + wait_for_async(); assert_eq(g_async_result, TRUE); @@ -819,7 +911,7 @@ int utc_image_util_transform_run_p3(void) */ int utc_image_util_transform_set_crop_area_n1(void) { - int ret = image_util_transform_set_crop_area(NULL, 0, 0, 320, 240); + int ret = image_util_transform_set_crop_area(NULL, 0, 0, 320, 240); assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); @@ -833,16 +925,14 @@ int utc_image_util_transform_set_crop_area_n1(void) */ int utc_image_util_transform_set_crop_area_n2(void) { - int ret = image_util_transform_create(&image_h); - - assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + assert_neq(g_transform, NULL); - ret = image_util_transform_set_crop_area(image_h, 100, 0, 100, 240); + int ret = IMAGE_UTIL_ERROR_NONE; + ret = image_util_transform_set_crop_area(g_transform, 100, 0, 100, 240); assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); - ret = image_util_transform_set_crop_area(image_h, 0, 100, 320, 100); - + ret = image_util_transform_set_crop_area(g_transform, 0, 100, 320, 100); assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); return 0; @@ -855,16 +945,14 @@ int utc_image_util_transform_set_crop_area_n2(void) */ int utc_image_util_transform_set_crop_area_n3(void) { - int ret = image_util_transform_create(&image_h); + assert_neq(g_transform, NULL); - assert_eq(ret, IMAGE_UTIL_ERROR_NONE); - - ret = image_util_transform_set_resolution(image_h, 320, 240); + int ret = IMAGE_UTIL_ERROR_NONE; + ret = image_util_transform_set_resolution(g_transform, 320, 240); assert_eq(ret, IMAGE_UTIL_ERROR_NONE); - ret = image_util_transform_set_crop_area(image_h, 0, 0, 320, 240); - + ret = image_util_transform_set_crop_area(g_transform, 0, 0, 320, 240); assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_OPERATION); return 0; @@ -877,9 +965,11 @@ int utc_image_util_transform_set_crop_area_n3(void) */ int utc_image_util_transform_set_crop_area_p(void) { - int ret = image_util_transform_create(&image_h); - ret = image_util_transform_set_crop_area(image_h, 0, 0, 320, 240); + assert_neq(g_transform, NULL); + + int ret = IMAGE_UTIL_ERROR_NONE; + ret = image_util_transform_set_crop_area(g_transform, 0, 0, 320, 240); assert_eq(ret, IMAGE_UTIL_ERROR_NONE); return 0; @@ -907,16 +997,18 @@ int utc_image_util_transform_get_crop_area_n1(void) */ int utc_image_util_transform_get_crop_area_n2(void) { + assert_neq(g_transform, NULL); + unsigned int start_x = 0; unsigned int start_y = 0; unsigned int end_x = 0; unsigned int end_y = 0; - int ret = image_util_transform_create(&image_h); + int ret = IMAGE_UTIL_ERROR_NONE; - ret = image_util_transform_get_crop_area(image_h, NULL, NULL, NULL, NULL); + ret = image_util_transform_get_crop_area(g_transform, NULL, NULL, NULL, NULL); assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_OPERATION); - ret = image_util_transform_get_crop_area(image_h, &start_x, &start_y, &end_x, &end_y); + ret = image_util_transform_get_crop_area(g_transform, &start_x, &start_y, &end_x, &end_y); assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_OPERATION); return 0; @@ -929,16 +1021,18 @@ int utc_image_util_transform_get_crop_area_n2(void) */ int utc_image_util_transform_get_crop_area_p(void) { + assert_neq(g_transform, NULL); + unsigned int start_x = 0; unsigned int start_y = 0; unsigned int end_x = 0; unsigned int end_y = 0; - int ret = image_util_transform_create(&image_h); - ret = image_util_transform_set_crop_area(image_h, 100, 100, 320, 240); - assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + int ret = IMAGE_UTIL_ERROR_NONE; - ret = image_util_transform_get_crop_area(image_h, &start_x, &start_y, &end_x, &end_y); + ret = image_util_transform_set_crop_area(g_transform, 100, 100, 320, 240); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + ret = image_util_transform_get_crop_area(g_transform, &start_x, &start_y, &end_x, &end_y); assert_eq(ret, IMAGE_UTIL_ERROR_NONE); assert_eq(start_x, 100); assert_eq(start_y, 100); @@ -970,9 +1064,12 @@ int utc_image_util_transform_destory_n(void) */ int utc_image_util_transform_destory_p(void) { - int ret = image_util_transform_create(&image_h); - image_util_transform_destroy(image_h); - image_h = NULL; + assert_neq(g_transform, NULL); + + int ret = IMAGE_UTIL_ERROR_NONE; + + ret = image_util_transform_destroy(g_transform); + g_transform = NULL; assert_eq(ret, IMAGE_UTIL_ERROR_NONE); return 0; @@ -985,17 +1082,19 @@ int utc_image_util_transform_destory_p(void) */ int utc_image_util_extract_color_from_memory_p(void) { - int r; + assert(g_startup_ret); - unsigned char rgb_r; - unsigned char rgb_g; - unsigned char rgb_b; + int r; - r = image_util_extract_color_from_memory(decoded_image.buffer, decoded_image.width, decoded_image.height, &rgb_r, &rgb_g, &rgb_b); + unsigned char rgb_r; + unsigned char rgb_g; + unsigned char rgb_b; - assert_eq(r, IMAGE_UTIL_ERROR_NONE); + r = image_util_extract_color_from_memory(decoded_image.buffer, decoded_image.width, decoded_image.height, &rgb_r, &rgb_g, &rgb_b); - return 0; + assert_eq(r, IMAGE_UTIL_ERROR_NONE); + + return 0; } /** @@ -1006,15 +1105,343 @@ int utc_image_util_extract_color_from_memory_p(void) */ int utc_image_util_extract_color_from_memory_n(void) { - int r; + int r; + + unsigned char rgb_r; + unsigned char rgb_g; + unsigned char rgb_b; + + r = image_util_extract_color_from_memory(NULL, decoded_image.width, decoded_image.height, &rgb_r, &rgb_g, &rgb_b); + + assert_eq(r, IMAGE_UTIL_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_image_util_create_image_p + * @since_tizen 5.5 + * @description Creates image handle from a decoded memory + */ +int utc_image_util_create_image_p(void) +{ + assert(g_startup_ret); + + int ret = IMAGE_UTIL_ERROR_NONE; + + ret = image_util_create_image(decoded_image.width, decoded_image.height, supported_colorspace, + decoded_image.buffer, decoded_image.size, &g_image); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + return 0; +} + +/** + * @testcase utc_image_util_create_image_n + * @since_tizen 5.5 + * @description Creates image handle from a decoded memory, + * but fail because a width, a height or a size are zero or memory address is NULL + */ +int utc_image_util_create_image_n(void) +{ + assert(g_startup_ret); + + int ret = IMAGE_UTIL_ERROR_NONE; + + ret = image_util_create_image(0, decoded_image.height, supported_colorspace, + decoded_image.buffer, decoded_image.size, &g_image); + assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); + + ret = image_util_create_image(decoded_image.width, 0, supported_colorspace, + decoded_image.buffer, decoded_image.size, &g_image); + assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); + + ret = image_util_create_image(decoded_image.width, decoded_image.height, -1, + decoded_image.buffer, decoded_image.size, &g_image); + assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); + + ret = image_util_create_image(decoded_image.width, decoded_image.height, supported_colorspace, + NULL, decoded_image.size, &g_image); + assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); + + ret = image_util_create_image(decoded_image.width, decoded_image.height, supported_colorspace, + decoded_image.buffer, 0, &g_image); + assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_image_util_clone_image_p + * @since_tizen 5.5 + * @description Clones image handle + */ +int utc_image_util_clone_image_p(void) +{ + assert(g_startup_ret); + + int ret = IMAGE_UTIL_ERROR_NONE; + image_util_image_h clone_image = NULL; + unsigned int width = 0; + unsigned int height = 0; + image_util_colorspace_e color = IMAGE_UTIL_COLORSPACE_I420; + unsigned char *buffer = NULL; + size_t buffer_size = 0; + + ret = image_util_create_image(decoded_image.width, decoded_image.height, supported_colorspace, + decoded_image.buffer, decoded_image.size, &g_image); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_clone_image(g_image, &clone_image); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_get_image(clone_image, &width, &height, &color, &buffer, &buffer_size); + image_util_destroy_image(clone_image); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + /* compare clone image with original image */ + assert_neq(buffer, NULL); + free(buffer); + assert_eq(buffer_size, decoded_image.size); + assert_eq(width, decoded_image.width); + assert_eq(height, decoded_image.height); + assert_eq(color, supported_colorspace); + + return 0; +} + +/** + * @testcase utc_image_util_clone_image_n + * @since_tizen 5.5 + * @description Clones image handle, but fail because handle is NULL + */ +int utc_image_util_clone_image_n(void) +{ + assert(g_startup_ret); + + int ret = IMAGE_UTIL_ERROR_NONE; + image_util_image_h clone_image = NULL; + + ret = image_util_create_image(decoded_image.width, decoded_image.height, supported_colorspace, + decoded_image.buffer, decoded_image.size, &g_image); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_clone_image(NULL, &clone_image); + assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); + + ret = image_util_clone_image(g_image, NULL); + assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_image_util_get_image_p + * @since_tizen 5.5 + * @description Gets image information from given image handle + */ +int utc_image_util_get_image_p(void) +{ + assert(g_startup_ret); + + int ret = IMAGE_UTIL_ERROR_NONE; + unsigned int width = 0; + unsigned int height = 0; + image_util_colorspace_e color = IMAGE_UTIL_COLORSPACE_I420; + unsigned char *buffer = NULL; + size_t buffer_size = 0; + + ret = image_util_create_image(decoded_image.width, decoded_image.height, supported_colorspace, + decoded_image.buffer, decoded_image.size, &g_image); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_get_image(g_image, &width, &height, &color, &buffer, &buffer_size); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + /* compare values with original values */ + assert_neq(buffer, NULL); + free(buffer); + assert_eq(buffer_size, decoded_image.size); + assert_eq(width, decoded_image.width); + assert_eq(height, decoded_image.height); + assert_eq(color, supported_colorspace); + + return 0; +} + +/** + * @testcase utc_image_util_get_image_n + * @since_tizen 5.5 + * @description Gets image information from given image handle, but fail because given handle is NULL + */ +int utc_image_util_get_image_n(void) +{ + assert(g_startup_ret); + + int ret = IMAGE_UTIL_ERROR_NONE; + + ret = image_util_create_image(decoded_image.width, decoded_image.height, supported_colorspace, + decoded_image.buffer, decoded_image.size, &g_image); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_get_image(NULL, NULL, NULL, NULL, NULL, NULL); + assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_image_util_destroy_image_p + * @since_tizen 5.5 + * @description Destroyes image handle + */ +int utc_image_util_destroy_image_p(void) +{ + assert(g_startup_ret); + + int ret = IMAGE_UTIL_ERROR_NONE; + + ret = image_util_create_image(decoded_image.width, decoded_image.height, supported_colorspace, + decoded_image.buffer, decoded_image.size, &g_image); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_destroy_image(g_image); + g_image = NULL; + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + return 0; +} + +/** + * @testcase utc_image_util_destroy_image_n + * @since_tizen 5.5 + * @description Destroyes image handle, but fail because a handle is NULL + */ +int utc_image_util_destroy_image_n(void) +{ + assert(g_startup_ret); - unsigned char rgb_r; - unsigned char rgb_g; - unsigned char rgb_b; + int ret = IMAGE_UTIL_ERROR_NONE; + + ret = image_util_destroy_image(NULL); + assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); - r = image_util_extract_color_from_memory(NULL, decoded_image.width, decoded_image.height, &rgb_r, &rgb_g, &rgb_b); + return 0; +} + +/** + * @testcase utc_image_util_transform_run2_p + * @since_tizen 5.5 + * @description Transforms image handle + */ +int utc_image_util_transform_run2_p(void) +{ + assert(g_startup_ret); + + int ret = IMAGE_UTIL_ERROR_NONE; + image_util_image_h transformed_image = NULL; + + ret = image_util_create_image(decoded_image.width, decoded_image.height, supported_colorspace, + decoded_image.buffer, decoded_image.size, &g_image); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_transform_set_resolution(g_transform, RESIZE_WIDTH, RESIZE_HEIGHT); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); - assert_eq(r, IMAGE_UTIL_ERROR_INVALID_PARAMETER); + ret = image_util_transform_run2(g_transform, g_image, &transformed_image); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_destroy_image(transformed_image); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + return 0; +} + +/** + * @testcase utc_image_util_transform_run2_n + * @since_tizen 5.5 + * @description Transforms image handle, but fail because a handle is NULL + */ +int utc_image_util_transform_run2_n(void) +{ + assert(g_startup_ret); + + int ret = IMAGE_UTIL_ERROR_NONE; + image_util_image_h transformed_image = NULL; + + ret = image_util_create_image(decoded_image.width, decoded_image.height, supported_colorspace, + decoded_image.buffer, decoded_image.size, &g_image); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_transform_set_resolution(g_transform, RESIZE_WIDTH, RESIZE_HEIGHT); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_transform_run2(NULL, g_image, &transformed_image); + assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); + + ret = image_util_transform_run2(g_transform, NULL, &transformed_image); + assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); + + ret = image_util_transform_run2(g_transform, g_image, NULL); + assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_image_util_transform_run2_async_p + * @since_tizen 5.5 + * @description Transforms image handle + */ +int utc_image_util_transform_run2_async_p(void) +{ + assert(g_startup_ret); + + int ret = IMAGE_UTIL_ERROR_NONE; + + ret = image_util_create_image(decoded_image.width, decoded_image.height, supported_colorspace, + decoded_image.buffer, decoded_image.size, &g_image); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_transform_set_resolution(g_transform, RESIZE_WIDTH, RESIZE_HEIGHT); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + g_async_result = FALSE; + ret = image_util_transform_run2_async(g_transform, g_image, __utc_transform_completed2_cb, NULL); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + wait_for_async(); + assert_eq(g_async_result, TRUE); + + return 0; +} + +/** + * @testcase utc_image_util_transform_run2_async_n + * @since_tizen 5.5 + * @description Transforms image handle, but fail because a handle is NULL + */ +int utc_image_util_transform_run2_async_n(void) +{ + assert(g_startup_ret); + + int ret = IMAGE_UTIL_ERROR_NONE; + + ret = image_util_create_image(decoded_image.width, decoded_image.height, supported_colorspace, + decoded_image.buffer, decoded_image.size, &g_image); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_transform_set_resolution(g_transform, RESIZE_WIDTH, RESIZE_HEIGHT); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_transform_run2_async(NULL, g_image, __utc_transform_completed2_cb, NULL); + assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); + + ret = image_util_transform_run2_async(g_transform, NULL, __utc_transform_completed2_cb, NULL); + assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); + + ret = image_util_transform_run2_async(g_transform, g_image, NULL, NULL); + assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); return 0; }