From: jiyong.min Date: Mon, 7 Sep 2020 01:05:09 +0000 (+0900) Subject: [UTC][capi-media-image-util][ACR-1595][Add test cases for animation encoding APIs] X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=48fc4675020fedd35afa5dc4c1ba4f0bb6faf7d1;p=test%2Ftct%2Fnative%2Fapi.git [UTC][capi-media-image-util][ACR-1595][Add test cases for animation encoding APIs] - The test cases for 'image_util_anim_encode_xxx()' APIs have been added. - Some cases are repeated as the value of #image_util_anim_type_e changes(gif & webp). ('create', 'set_loop_count', 'add_frame', 'save_to_file', 'save_to_buffer') - 5 sample images are added and used for animation encoding. - 'set_background_color' and 'set_lossless' functions are only supported for #image_util_anim_webp. Change-Id: Ia1114daff4f10ee24dc9d860a99cc9544c3da62d --- diff --git a/src/utc/image-util/res/mobile/sample_anim1.png b/src/utc/image-util/res/mobile/sample_anim1.png new file mode 100644 index 000000000..646b64789 Binary files /dev/null and b/src/utc/image-util/res/mobile/sample_anim1.png differ diff --git a/src/utc/image-util/res/mobile/sample_anim2.png b/src/utc/image-util/res/mobile/sample_anim2.png new file mode 100644 index 000000000..ae55c0ba1 Binary files /dev/null and b/src/utc/image-util/res/mobile/sample_anim2.png differ diff --git a/src/utc/image-util/res/mobile/sample_anim3.png b/src/utc/image-util/res/mobile/sample_anim3.png new file mode 100644 index 000000000..c251b11e7 Binary files /dev/null and b/src/utc/image-util/res/mobile/sample_anim3.png differ diff --git a/src/utc/image-util/res/mobile/sample_anim4.png b/src/utc/image-util/res/mobile/sample_anim4.png new file mode 100644 index 000000000..4d953747c Binary files /dev/null and b/src/utc/image-util/res/mobile/sample_anim4.png differ diff --git a/src/utc/image-util/res/mobile/sample_anim5.png b/src/utc/image-util/res/mobile/sample_anim5.png new file mode 100644 index 000000000..87b163865 Binary files /dev/null and b/src/utc/image-util/res/mobile/sample_anim5.png differ diff --git a/src/utc/image-util/res/tizeniot/sample_anim1.png b/src/utc/image-util/res/tizeniot/sample_anim1.png new file mode 100644 index 000000000..646b64789 Binary files /dev/null and b/src/utc/image-util/res/tizeniot/sample_anim1.png differ diff --git a/src/utc/image-util/res/tizeniot/sample_anim2.png b/src/utc/image-util/res/tizeniot/sample_anim2.png new file mode 100644 index 000000000..ae55c0ba1 Binary files /dev/null and b/src/utc/image-util/res/tizeniot/sample_anim2.png differ diff --git a/src/utc/image-util/res/tizeniot/sample_anim3.png b/src/utc/image-util/res/tizeniot/sample_anim3.png new file mode 100644 index 000000000..c251b11e7 Binary files /dev/null and b/src/utc/image-util/res/tizeniot/sample_anim3.png differ diff --git a/src/utc/image-util/res/tizeniot/sample_anim4.png b/src/utc/image-util/res/tizeniot/sample_anim4.png new file mode 100644 index 000000000..4d953747c Binary files /dev/null and b/src/utc/image-util/res/tizeniot/sample_anim4.png differ diff --git a/src/utc/image-util/res/tizeniot/sample_anim5.png b/src/utc/image-util/res/tizeniot/sample_anim5.png new file mode 100644 index 000000000..87b163865 Binary files /dev/null and b/src/utc/image-util/res/tizeniot/sample_anim5.png differ diff --git a/src/utc/image-util/res/tv/sample_anim1.png b/src/utc/image-util/res/tv/sample_anim1.png new file mode 100644 index 000000000..646b64789 Binary files /dev/null and b/src/utc/image-util/res/tv/sample_anim1.png differ diff --git a/src/utc/image-util/res/tv/sample_anim2.png b/src/utc/image-util/res/tv/sample_anim2.png new file mode 100644 index 000000000..ae55c0ba1 Binary files /dev/null and b/src/utc/image-util/res/tv/sample_anim2.png differ diff --git a/src/utc/image-util/res/tv/sample_anim3.png b/src/utc/image-util/res/tv/sample_anim3.png new file mode 100644 index 000000000..c251b11e7 Binary files /dev/null and b/src/utc/image-util/res/tv/sample_anim3.png differ diff --git a/src/utc/image-util/res/tv/sample_anim4.png b/src/utc/image-util/res/tv/sample_anim4.png new file mode 100644 index 000000000..4d953747c Binary files /dev/null and b/src/utc/image-util/res/tv/sample_anim4.png differ diff --git a/src/utc/image-util/res/tv/sample_anim5.png b/src/utc/image-util/res/tv/sample_anim5.png new file mode 100644 index 000000000..87b163865 Binary files /dev/null and b/src/utc/image-util/res/tv/sample_anim5.png differ diff --git a/src/utc/image-util/res/wearable/sample_anim1.png b/src/utc/image-util/res/wearable/sample_anim1.png new file mode 100644 index 000000000..646b64789 Binary files /dev/null and b/src/utc/image-util/res/wearable/sample_anim1.png differ diff --git a/src/utc/image-util/res/wearable/sample_anim2.png b/src/utc/image-util/res/wearable/sample_anim2.png new file mode 100644 index 000000000..ae55c0ba1 Binary files /dev/null and b/src/utc/image-util/res/wearable/sample_anim2.png differ diff --git a/src/utc/image-util/res/wearable/sample_anim3.png b/src/utc/image-util/res/wearable/sample_anim3.png new file mode 100644 index 000000000..c251b11e7 Binary files /dev/null and b/src/utc/image-util/res/wearable/sample_anim3.png differ diff --git a/src/utc/image-util/res/wearable/sample_anim4.png b/src/utc/image-util/res/wearable/sample_anim4.png new file mode 100644 index 000000000..4d953747c Binary files /dev/null and b/src/utc/image-util/res/wearable/sample_anim4.png differ diff --git a/src/utc/image-util/res/wearable/sample_anim5.png b/src/utc/image-util/res/wearable/sample_anim5.png new file mode 100644 index 000000000..87b163865 Binary files /dev/null and b/src/utc/image-util/res/wearable/sample_anim5.png differ 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 cae6cf325..3df00fa47 100644 --- a/src/utc/image-util/tct-image-util-core_mobile.h +++ b/src/utc/image-util/tct-image-util-core_mobile.h @@ -27,6 +27,8 @@ extern void utc_media_image_util_basic_startup(void); extern void utc_media_image_util_basic_cleanup(void); extern void utc_image_util_agif_encode_startup(void); extern void utc_image_util_agif_encode_cleanup(void); +extern void utc_image_util_anim_encode_startup(void); +extern void utc_image_util_anim_encode_cleanup(void); extern int utc_image_util_foreach_supported_colorspace_n1(void); extern int utc_image_util_foreach_supported_colorspace_n2(void); @@ -235,6 +237,30 @@ extern int utc_image_util_agif_encode_save_to_buffer_n(void); extern int utc_image_util_agif_encode_destroy_p(void); extern int utc_image_util_agif_encode_destroy_n(void); +extern int utc_image_util_anim_encode_create_p(void); +extern int utc_image_util_anim_encode_create_n1(void); +extern int utc_image_util_anim_encode_create_n2(void); +extern int utc_image_util_anim_encode_set_loop_count_p(void); +extern int utc_image_util_anim_encode_set_loop_count_n(void); +extern int utc_image_util_anim_encode_set_background_color_p(void); +extern int utc_image_util_anim_encode_set_background_color_n1(void); +extern int utc_image_util_anim_encode_set_background_color_n2(void); +extern int utc_image_util_anim_encode_set_lossless_p(void); +extern int utc_image_util_anim_encode_set_lossless_n1(void); +extern int utc_image_util_anim_encode_set_lossless_n2(void); +extern int utc_image_util_anim_encode_add_frame_p(void); +extern int utc_image_util_anim_encode_add_frame_n(void); +extern int utc_image_util_anim_encode_save_to_file_p1(void); +extern int utc_image_util_anim_encode_save_to_file_p2(void); +extern int utc_image_util_anim_encode_save_to_file_n1(void); +extern int utc_image_util_anim_encode_save_to_file_n2(void); +extern int utc_image_util_anim_encode_save_to_buffer_p1(void); +extern int utc_image_util_anim_encode_save_to_buffer_p2(void); +extern int utc_image_util_anim_encode_save_to_buffer_n1(void); +extern int utc_image_util_anim_encode_save_to_buffer_n2(void); +extern int utc_image_util_anim_encode_destroy_p(void); +extern int utc_image_util_anim_encode_destroy_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}, @@ -441,6 +467,29 @@ testcase tc_array[] = { {"utc_image_util_agif_encode_save_to_buffer_n",utc_image_util_agif_encode_save_to_buffer_n,utc_image_util_agif_encode_startup,utc_image_util_agif_encode_cleanup}, {"utc_image_util_agif_encode_destroy_p",utc_image_util_agif_encode_destroy_p,utc_image_util_agif_encode_startup,utc_image_util_agif_encode_cleanup}, {"utc_image_util_agif_encode_destroy_n",utc_image_util_agif_encode_destroy_n,utc_image_util_agif_encode_startup,utc_image_util_agif_encode_cleanup}, + {"utc_image_util_anim_encode_create_p",utc_image_util_anim_encode_create_p,NULL,NULL}, + {"utc_image_util_anim_encode_create_n1",utc_image_util_anim_encode_create_n1,NULL,NULL}, + {"utc_image_util_anim_encode_create_n2",utc_image_util_anim_encode_create_n2,NULL,NULL}, + {"utc_image_util_anim_encode_set_loop_count_p",utc_image_util_anim_encode_set_loop_count_p,NULL,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_set_loop_count_n",utc_image_util_anim_encode_set_loop_count_n,NULL,NULL}, + {"utc_image_util_anim_encode_set_background_color_p",utc_image_util_anim_encode_set_background_color_p,NULL,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_set_background_color_n1",utc_image_util_anim_encode_set_background_color_n1,NULL,NULL}, + {"utc_image_util_anim_encode_set_background_color_n2",utc_image_util_anim_encode_set_background_color_n2,NULL,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_set_lossless_p",utc_image_util_anim_encode_set_lossless_p,NULL,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_set_lossless_n1",utc_image_util_anim_encode_set_lossless_n1,NULL,NULL}, + {"utc_image_util_anim_encode_set_lossless_n2",utc_image_util_anim_encode_set_lossless_n2,NULL,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_add_frame_p",utc_image_util_anim_encode_add_frame_p,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_add_frame_n",utc_image_util_anim_encode_add_frame_n,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_save_to_file_p1",utc_image_util_anim_encode_save_to_file_p1,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_save_to_file_p2",utc_image_util_anim_encode_save_to_file_p2,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_save_to_file_n1",utc_image_util_anim_encode_save_to_file_n1,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_save_to_file_n2",utc_image_util_anim_encode_save_to_file_n2,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_save_to_buffer_p1",utc_image_util_anim_encode_save_to_buffer_p1,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_save_to_buffer_p2",utc_image_util_anim_encode_save_to_buffer_p2,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_save_to_buffer_n1",utc_image_util_anim_encode_save_to_buffer_n1,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_save_to_buffer_n2",utc_image_util_anim_encode_save_to_buffer_n2,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_destroy_p",utc_image_util_anim_encode_destroy_p,NULL,NULL}, + {"utc_image_util_anim_encode_destroy_n",utc_image_util_anim_encode_destroy_n,NULL,NULL}, {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 cae6cf325..3df00fa47 100644 --- a/src/utc/image-util/tct-image-util-core_tizeniot.h +++ b/src/utc/image-util/tct-image-util-core_tizeniot.h @@ -27,6 +27,8 @@ extern void utc_media_image_util_basic_startup(void); extern void utc_media_image_util_basic_cleanup(void); extern void utc_image_util_agif_encode_startup(void); extern void utc_image_util_agif_encode_cleanup(void); +extern void utc_image_util_anim_encode_startup(void); +extern void utc_image_util_anim_encode_cleanup(void); extern int utc_image_util_foreach_supported_colorspace_n1(void); extern int utc_image_util_foreach_supported_colorspace_n2(void); @@ -235,6 +237,30 @@ extern int utc_image_util_agif_encode_save_to_buffer_n(void); extern int utc_image_util_agif_encode_destroy_p(void); extern int utc_image_util_agif_encode_destroy_n(void); +extern int utc_image_util_anim_encode_create_p(void); +extern int utc_image_util_anim_encode_create_n1(void); +extern int utc_image_util_anim_encode_create_n2(void); +extern int utc_image_util_anim_encode_set_loop_count_p(void); +extern int utc_image_util_anim_encode_set_loop_count_n(void); +extern int utc_image_util_anim_encode_set_background_color_p(void); +extern int utc_image_util_anim_encode_set_background_color_n1(void); +extern int utc_image_util_anim_encode_set_background_color_n2(void); +extern int utc_image_util_anim_encode_set_lossless_p(void); +extern int utc_image_util_anim_encode_set_lossless_n1(void); +extern int utc_image_util_anim_encode_set_lossless_n2(void); +extern int utc_image_util_anim_encode_add_frame_p(void); +extern int utc_image_util_anim_encode_add_frame_n(void); +extern int utc_image_util_anim_encode_save_to_file_p1(void); +extern int utc_image_util_anim_encode_save_to_file_p2(void); +extern int utc_image_util_anim_encode_save_to_file_n1(void); +extern int utc_image_util_anim_encode_save_to_file_n2(void); +extern int utc_image_util_anim_encode_save_to_buffer_p1(void); +extern int utc_image_util_anim_encode_save_to_buffer_p2(void); +extern int utc_image_util_anim_encode_save_to_buffer_n1(void); +extern int utc_image_util_anim_encode_save_to_buffer_n2(void); +extern int utc_image_util_anim_encode_destroy_p(void); +extern int utc_image_util_anim_encode_destroy_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}, @@ -441,6 +467,29 @@ testcase tc_array[] = { {"utc_image_util_agif_encode_save_to_buffer_n",utc_image_util_agif_encode_save_to_buffer_n,utc_image_util_agif_encode_startup,utc_image_util_agif_encode_cleanup}, {"utc_image_util_agif_encode_destroy_p",utc_image_util_agif_encode_destroy_p,utc_image_util_agif_encode_startup,utc_image_util_agif_encode_cleanup}, {"utc_image_util_agif_encode_destroy_n",utc_image_util_agif_encode_destroy_n,utc_image_util_agif_encode_startup,utc_image_util_agif_encode_cleanup}, + {"utc_image_util_anim_encode_create_p",utc_image_util_anim_encode_create_p,NULL,NULL}, + {"utc_image_util_anim_encode_create_n1",utc_image_util_anim_encode_create_n1,NULL,NULL}, + {"utc_image_util_anim_encode_create_n2",utc_image_util_anim_encode_create_n2,NULL,NULL}, + {"utc_image_util_anim_encode_set_loop_count_p",utc_image_util_anim_encode_set_loop_count_p,NULL,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_set_loop_count_n",utc_image_util_anim_encode_set_loop_count_n,NULL,NULL}, + {"utc_image_util_anim_encode_set_background_color_p",utc_image_util_anim_encode_set_background_color_p,NULL,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_set_background_color_n1",utc_image_util_anim_encode_set_background_color_n1,NULL,NULL}, + {"utc_image_util_anim_encode_set_background_color_n2",utc_image_util_anim_encode_set_background_color_n2,NULL,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_set_lossless_p",utc_image_util_anim_encode_set_lossless_p,NULL,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_set_lossless_n1",utc_image_util_anim_encode_set_lossless_n1,NULL,NULL}, + {"utc_image_util_anim_encode_set_lossless_n2",utc_image_util_anim_encode_set_lossless_n2,NULL,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_add_frame_p",utc_image_util_anim_encode_add_frame_p,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_add_frame_n",utc_image_util_anim_encode_add_frame_n,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_save_to_file_p1",utc_image_util_anim_encode_save_to_file_p1,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_save_to_file_p2",utc_image_util_anim_encode_save_to_file_p2,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_save_to_file_n1",utc_image_util_anim_encode_save_to_file_n1,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_save_to_file_n2",utc_image_util_anim_encode_save_to_file_n2,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_save_to_buffer_p1",utc_image_util_anim_encode_save_to_buffer_p1,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_save_to_buffer_p2",utc_image_util_anim_encode_save_to_buffer_p2,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_save_to_buffer_n1",utc_image_util_anim_encode_save_to_buffer_n1,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_save_to_buffer_n2",utc_image_util_anim_encode_save_to_buffer_n2,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_destroy_p",utc_image_util_anim_encode_destroy_p,NULL,NULL}, + {"utc_image_util_anim_encode_destroy_n",utc_image_util_anim_encode_destroy_n,NULL,NULL}, {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 cae6cf325..3df00fa47 100644 --- a/src/utc/image-util/tct-image-util-core_wearable.h +++ b/src/utc/image-util/tct-image-util-core_wearable.h @@ -27,6 +27,8 @@ extern void utc_media_image_util_basic_startup(void); extern void utc_media_image_util_basic_cleanup(void); extern void utc_image_util_agif_encode_startup(void); extern void utc_image_util_agif_encode_cleanup(void); +extern void utc_image_util_anim_encode_startup(void); +extern void utc_image_util_anim_encode_cleanup(void); extern int utc_image_util_foreach_supported_colorspace_n1(void); extern int utc_image_util_foreach_supported_colorspace_n2(void); @@ -235,6 +237,30 @@ extern int utc_image_util_agif_encode_save_to_buffer_n(void); extern int utc_image_util_agif_encode_destroy_p(void); extern int utc_image_util_agif_encode_destroy_n(void); +extern int utc_image_util_anim_encode_create_p(void); +extern int utc_image_util_anim_encode_create_n1(void); +extern int utc_image_util_anim_encode_create_n2(void); +extern int utc_image_util_anim_encode_set_loop_count_p(void); +extern int utc_image_util_anim_encode_set_loop_count_n(void); +extern int utc_image_util_anim_encode_set_background_color_p(void); +extern int utc_image_util_anim_encode_set_background_color_n1(void); +extern int utc_image_util_anim_encode_set_background_color_n2(void); +extern int utc_image_util_anim_encode_set_lossless_p(void); +extern int utc_image_util_anim_encode_set_lossless_n1(void); +extern int utc_image_util_anim_encode_set_lossless_n2(void); +extern int utc_image_util_anim_encode_add_frame_p(void); +extern int utc_image_util_anim_encode_add_frame_n(void); +extern int utc_image_util_anim_encode_save_to_file_p1(void); +extern int utc_image_util_anim_encode_save_to_file_p2(void); +extern int utc_image_util_anim_encode_save_to_file_n1(void); +extern int utc_image_util_anim_encode_save_to_file_n2(void); +extern int utc_image_util_anim_encode_save_to_buffer_p1(void); +extern int utc_image_util_anim_encode_save_to_buffer_p2(void); +extern int utc_image_util_anim_encode_save_to_buffer_n1(void); +extern int utc_image_util_anim_encode_save_to_buffer_n2(void); +extern int utc_image_util_anim_encode_destroy_p(void); +extern int utc_image_util_anim_encode_destroy_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}, @@ -441,6 +467,29 @@ testcase tc_array[] = { {"utc_image_util_agif_encode_save_to_buffer_n",utc_image_util_agif_encode_save_to_buffer_n,utc_image_util_agif_encode_startup,utc_image_util_agif_encode_cleanup}, {"utc_image_util_agif_encode_destroy_p",utc_image_util_agif_encode_destroy_p,utc_image_util_agif_encode_startup,utc_image_util_agif_encode_cleanup}, {"utc_image_util_agif_encode_destroy_n",utc_image_util_agif_encode_destroy_n,utc_image_util_agif_encode_startup,utc_image_util_agif_encode_cleanup}, + {"utc_image_util_anim_encode_create_p",utc_image_util_anim_encode_create_p,NULL,NULL}, + {"utc_image_util_anim_encode_create_n1",utc_image_util_anim_encode_create_n1,NULL,NULL}, + {"utc_image_util_anim_encode_create_n2",utc_image_util_anim_encode_create_n2,NULL,NULL}, + {"utc_image_util_anim_encode_set_loop_count_p",utc_image_util_anim_encode_set_loop_count_p,NULL,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_set_loop_count_n",utc_image_util_anim_encode_set_loop_count_n,NULL,NULL}, + {"utc_image_util_anim_encode_set_background_color_p",utc_image_util_anim_encode_set_background_color_p,NULL,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_set_background_color_n1",utc_image_util_anim_encode_set_background_color_n1,NULL,NULL}, + {"utc_image_util_anim_encode_set_background_color_n2",utc_image_util_anim_encode_set_background_color_n2,NULL,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_set_lossless_p",utc_image_util_anim_encode_set_lossless_p,NULL,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_set_lossless_n1",utc_image_util_anim_encode_set_lossless_n1,NULL,NULL}, + {"utc_image_util_anim_encode_set_lossless_n2",utc_image_util_anim_encode_set_lossless_n2,NULL,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_add_frame_p",utc_image_util_anim_encode_add_frame_p,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_add_frame_n",utc_image_util_anim_encode_add_frame_n,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_save_to_file_p1",utc_image_util_anim_encode_save_to_file_p1,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_save_to_file_p2",utc_image_util_anim_encode_save_to_file_p2,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_save_to_file_n1",utc_image_util_anim_encode_save_to_file_n1,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_save_to_file_n2",utc_image_util_anim_encode_save_to_file_n2,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_save_to_buffer_p1",utc_image_util_anim_encode_save_to_buffer_p1,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_save_to_buffer_p2",utc_image_util_anim_encode_save_to_buffer_p2,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_save_to_buffer_n1",utc_image_util_anim_encode_save_to_buffer_n1,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_save_to_buffer_n2",utc_image_util_anim_encode_save_to_buffer_n2,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup}, + {"utc_image_util_anim_encode_destroy_p",utc_image_util_anim_encode_destroy_p,NULL,NULL}, + {"utc_image_util_anim_encode_destroy_n",utc_image_util_anim_encode_destroy_n,NULL,NULL}, {NULL, NULL} }; diff --git a/src/utc/image-util/utc-image-util-agif-encode.c b/src/utc/image-util/utc-image-util-agif-encode.c index a429e215a..5b10c052d 100644 --- a/src/utc/image-util/utc-image-util-agif-encode.c +++ b/src/utc/image-util/utc-image-util-agif-encode.c @@ -27,6 +27,9 @@ #define FILENAME_ORIGIN "sample.gif" #define FILENAME_ENCODE_AGIF "test_output.gif" +#define NUM_OF_ANIM_FILES 5 +#define LAST_ANIM_TYPE IMAGE_UTIL_ANIM_WEBP + typedef struct { unsigned char *buffer; size_t buffer_size; @@ -40,6 +43,34 @@ static image_util_agif_encode_h g_utc_agif_encode_h = NULL; static image_util_image_h g_utc_img_origin = NULL; static utc_buffer_data_t g_utc_buf_agif = { NULL, 0 }; +static const char *g_utc_anim_files[NUM_OF_ANIM_FILES] = { + "sample_anim1.png", + "sample_anim2.png", + "sample_anim3.png", + "sample_anim4.png", + "sample_anim5.png", +}; +static const char *g_utc_anim_output_files[] = { + [IMAGE_UTIL_ANIM_GIF] = "test_output.gif", + [IMAGE_UTIL_ANIM_WEBP] = "test_output.webp", +}; + +static unsigned int g_utc_anim_idx = 0; +static image_util_anim_type_e g_utc_anim_type = IMAGE_UTIL_ANIM_GIF; +static image_util_image_h g_utc_anim_images[NUM_OF_ANIM_FILES] = { NULL, }; +static image_util_anim_encode_h g_utc_anim_encode_h[] = { + [IMAGE_UTIL_ANIM_GIF] = NULL, + [IMAGE_UTIL_ANIM_WEBP] = NULL, +}; +static char *g_utc_anim_output_path[] = { + [IMAGE_UTIL_ANIM_GIF] = NULL, + [IMAGE_UTIL_ANIM_WEBP] = NULL, +}; +static utc_buffer_data_t g_utc_anim_output_buffer[] = { + [IMAGE_UTIL_ANIM_GIF] = { NULL, 0 }, + [IMAGE_UTIL_ANIM_WEBP] = { NULL, 0 }, +}; + /** * @function utc_image_util_encode_agif_startup * @description Called before each test @@ -285,3 +316,572 @@ int utc_image_util_agif_encode_destroy_n(void) return 0; } + +/** + * @function utc_image_util_anim_encode_startup + * @description Called before each test + * @parameter NA + * @return NA + */ +void utc_image_util_anim_encode_startup(void) +{ + int ret = IMAGE_UTIL_ERROR_NONE; + char *anim_src_paths[NUM_OF_ANIM_FILES] = { NULL, }; + + char pszValue[CONFIG_VALUE_LEN_MAX] = {0,}; + 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); + for (g_utc_anim_idx = 0; g_utc_anim_idx < NUM_OF_ANIM_FILES; g_utc_anim_idx++) { + anim_src_paths[g_utc_anim_idx] = _utc_get_test_path(pszValue, g_utc_anim_files[g_utc_anim_idx]); + FPRINTF("[%d:%s] IMAGE PATH [Decode: %s] \\n", __LINE__, __FUNCTION__, anim_src_paths[g_utc_anim_idx]); + } + + for (g_utc_anim_type = 0; g_utc_anim_type <= LAST_ANIM_TYPE; g_utc_anim_type++) { + g_utc_anim_output_path[g_utc_anim_type] = _utc_get_test_path(pszValue, g_utc_anim_output_files[g_utc_anim_type]); + FPRINTF("[%d:%s] IMAGE PATH [Encode: %s] \\n", __LINE__, __FUNCTION__, g_utc_anim_output_path[g_utc_anim_type]); + } + } else { + PRINT_UTC_LOG("[Line : %d][%s] GetValueForTCTSetting returned error for 'DEVICE_SUITE_TARGET_30'\\n", __LINE__, API_NAMESPACE); + return; + } + + for (g_utc_anim_idx = 0; g_utc_anim_idx < NUM_OF_ANIM_FILES; g_utc_anim_idx++) { + ret = _utc_decode_from_file(anim_src_paths[g_utc_anim_idx], &g_utc_anim_images[g_utc_anim_idx]); + if (ret != IMAGE_UTIL_ERROR_NONE) + FPRINTF("[%d:%s] Startup error! \\n", __LINE__, __FUNCTION__); + g_free(anim_src_paths[g_utc_anim_idx]); + } +} + +/** + * @function utc_image_util_anim_encode_cleanup + * @description Called after each test + * @parameter NA + * @return NA + */ +void utc_image_util_anim_encode_cleanup(void) +{ + /* end of TC */ + for (g_utc_anim_idx = 0; g_utc_anim_idx < NUM_OF_ANIM_FILES; g_utc_anim_idx++) { + image_util_destroy_image(g_utc_anim_images[g_utc_anim_idx]); + g_utc_anim_images[g_utc_anim_idx] = NULL; + } + + for (g_utc_anim_type = 0; g_utc_anim_type <= LAST_ANIM_TYPE; g_utc_anim_type++) { + g_free(g_utc_anim_output_path[g_utc_anim_type]); + g_utc_anim_output_path[g_utc_anim_type] = NULL; + + g_free(g_utc_anim_output_buffer[g_utc_anim_type].buffer); + g_utc_anim_output_buffer[g_utc_anim_type].buffer = NULL; + + image_util_anim_encode_destroy(g_utc_anim_encode_h[g_utc_anim_type]); + g_utc_anim_encode_h[g_utc_anim_type] = NULL; + } +} + +/** + * @testcase utc_image_util_anim_encode_create_p + * @since_tizen 6.0 + * @description Positive test case for image_util_anim_encode_create + */ +int utc_image_util_anim_encode_create_p(void) +{ + int ret; + + for (g_utc_anim_type = 0; g_utc_anim_type <= LAST_ANIM_TYPE; g_utc_anim_type++) { + ret = image_util_anim_encode_create(g_utc_anim_type, &g_utc_anim_encode_h[g_utc_anim_type]); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_anim_encode_destroy(g_utc_anim_encode_h[g_utc_anim_type]); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + g_utc_anim_encode_h[g_utc_anim_type] = NULL; + } + + return 0; +} + +/** + * @testcase utc_image_util_anim_encode_create_n1 + * @since_tizen 6.0 + * @description Negative test case for image_util_anim_encode_create + */ +int utc_image_util_anim_encode_create_n1(void) +{ + int ret; + + for (g_utc_anim_type = 0; g_utc_anim_type <= LAST_ANIM_TYPE; g_utc_anim_type++) { + ret = image_util_anim_encode_create(g_utc_anim_type, NULL); + assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); + } + + return 0; +} + +/** + * @testcase utc_image_util_anim_encode_create_n2 + * @since_tizen 6.0 + * @description Negative test case for image_util_anim_encode_create + */ +int utc_image_util_anim_encode_create_n2(void) +{ + int ret; + + ret = image_util_anim_encode_create(-1, &g_utc_anim_encode_h[0]); + assert_eq(ret, IMAGE_UTIL_ERROR_NOT_SUPPORTED_FORMAT); + + ret = image_util_anim_encode_create(LAST_ANIM_TYPE + 2, &g_utc_anim_encode_h[0]); + assert_eq(ret, IMAGE_UTIL_ERROR_NOT_SUPPORTED_FORMAT); + + return 0; +} + +/** + * @testcase utc_image_util_anim_encode_set_loop_count_p + * @since_tizen 6.0 + * @description Positive test case for image_util_anim_encode_set_loop_count + */ +int utc_image_util_anim_encode_set_loop_count_p(void) +{ + int ret; + + for (g_utc_anim_type = 0; g_utc_anim_type <= LAST_ANIM_TYPE; g_utc_anim_type++) { + ret = image_util_anim_encode_create(g_utc_anim_type, &g_utc_anim_encode_h[g_utc_anim_type]); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_anim_encode_set_loop_count(g_utc_anim_encode_h[g_utc_anim_type], 0); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_anim_encode_set_loop_count(g_utc_anim_encode_h[g_utc_anim_type], 10); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + } + + return 0; +} + +/** + * @testcase utc_image_util_anim_encode_set_loop_count_n + * @since_tizen 6.0 + * @description Negative test case for image_util_anim_encode_set_loop_count + */ +int utc_image_util_anim_encode_set_loop_count_n(void) +{ + int ret; + + ret = image_util_anim_encode_set_loop_count(NULL, 10); + assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_image_util_anim_encode_set_background_color_p + * @since_tizen 6.0 + * @description Positive test case for image_util_anim_encode_set_background_color + */ +int utc_image_util_anim_encode_set_background_color_p(void) +{ + int ret; + + ret = image_util_anim_encode_create(IMAGE_UTIL_ANIM_WEBP, &g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP]); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_anim_encode_set_background_color(g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP], 0xFF, 0x00, 0x00, 0xFF); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_anim_encode_set_background_color(g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP], 0x00, 0xFF, 0x00, 0xFF); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_anim_encode_set_background_color(g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP], 0x00, 0x00, 0xFF, 0xFF); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + return 0; +} + +/** + * @testcase utc_image_util_anim_encode_set_background_color_n1 + * @since_tizen 6.0 + * @description Negative test case for image_util_anim_encode_set_background_color + */ +int utc_image_util_anim_encode_set_background_color_n1(void) +{ + int ret = IMAGE_UTIL_ERROR_NONE; + + ret = image_util_anim_encode_set_background_color(NULL, 0x00, 0x00, 0x00, 0xFF); + assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_image_util_anim_encode_set_background_color_n2 + * @since_tizen 6.0 + * @description Negative test case for image_util_anim_encode_set_background_color + */ +int utc_image_util_anim_encode_set_background_color_n2(void) +{ + int ret; + + ret = image_util_anim_encode_create(IMAGE_UTIL_ANIM_GIF, &g_utc_anim_encode_h[IMAGE_UTIL_ANIM_GIF]); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_anim_encode_set_background_color(g_utc_anim_encode_h[IMAGE_UTIL_ANIM_GIF], 0x00, 0x00, 0x00, 0xFF); + assert_eq(ret, IMAGE_UTIL_ERROR_NOT_SUPPORTED_FORMAT); + + return 0; +} + +/** + * @testcase utc_image_util_anim_encode_set_lossless_p + * @since_tizen 6.0 + * @description Positive test case for image_util_anim_encode_set_lossless + */ +int utc_image_util_anim_encode_set_lossless_p(void) +{ + int ret; + + ret = image_util_anim_encode_create(IMAGE_UTIL_ANIM_WEBP, &g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP]); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_anim_encode_set_lossless(g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP], true); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_anim_encode_set_lossless(g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP], false); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + return 0; +} + +/** + * @testcase utc_image_util_anim_encode_set_lossless_n1 + * @since_tizen 6.0 + * @description Negative test case for image_util_anim_encode_set_lossless + */ +int utc_image_util_anim_encode_set_lossless_n1(void) +{ + int ret; + + ret = image_util_anim_encode_set_lossless(NULL, true); + assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_image_util_anim_encode_set_lossless_n2 + * @since_tizen 6.0 + * @description Negative test case for image_util_anim_encode_set_lossless + */ +int utc_image_util_anim_encode_set_lossless_n2(void) +{ + int ret; + + ret = image_util_anim_encode_create(IMAGE_UTIL_ANIM_GIF, &g_utc_anim_encode_h[IMAGE_UTIL_ANIM_GIF]); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_anim_encode_set_lossless(g_utc_anim_encode_h[IMAGE_UTIL_ANIM_GIF], true); + assert_eq(ret, IMAGE_UTIL_ERROR_NOT_SUPPORTED_FORMAT); + + return 0; +} + +/** + * @testcase utc_image_util_anim_encode_add_frame_p + * @since_tizen 6.0 + * @description Positive test case for image_util_anim_encode_add_frame + */ +int utc_image_util_anim_encode_add_frame_p(void) +{ + int ret; + + for (g_utc_anim_type = 0; g_utc_anim_type <= LAST_ANIM_TYPE; g_utc_anim_type++) { + ret = image_util_anim_encode_create(g_utc_anim_type, &g_utc_anim_encode_h[g_utc_anim_type]); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_anim_encode_add_frame(g_utc_anim_encode_h[g_utc_anim_type], g_utc_anim_images[0], 20); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + } + + return 0; +} + +/** + * @testcase utc_image_util_anim_encode_add_frame_n + * @since_tizen 6.0 + * @description Negative test case for image_util_anim_encode_add_frame + */ +int utc_image_util_anim_encode_add_frame_n(void) +{ + int ret; + + for (g_utc_anim_type = 0; g_utc_anim_type <= LAST_ANIM_TYPE; g_utc_anim_type++) { + ret = image_util_anim_encode_create(g_utc_anim_type, &g_utc_anim_encode_h[g_utc_anim_type]); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_anim_encode_add_frame(NULL, g_utc_anim_images[0], 20); + assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); + + ret = image_util_anim_encode_add_frame(g_utc_anim_encode_h[g_utc_anim_type], NULL, 20); + assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); + } + + return 0; +} + +/** + * @testcase utc_image_util_anim_encode_save_to_file_p1 + * @since_tizen 6.0 + * @description Positive test case for image_util_anim_encode_save_to_file + */ +int utc_image_util_anim_encode_save_to_file_p1(void) +{ + int ret; + + for (g_utc_anim_type = 0; g_utc_anim_type <= LAST_ANIM_TYPE; g_utc_anim_type++) { + ret = image_util_anim_encode_create(g_utc_anim_type, &g_utc_anim_encode_h[g_utc_anim_type]); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_anim_encode_set_loop_count(g_utc_anim_encode_h[g_utc_anim_type], 0); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + for (g_utc_anim_idx = 0; g_utc_anim_idx < NUM_OF_ANIM_FILES; g_utc_anim_idx++) { + ret = image_util_anim_encode_add_frame(g_utc_anim_encode_h[g_utc_anim_type], g_utc_anim_images[g_utc_anim_idx], 100); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + } + + ret = image_util_anim_encode_save_to_file(g_utc_anim_encode_h[g_utc_anim_type], g_utc_anim_output_path[g_utc_anim_type]); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + } + + return 0; +} + +/** + * @testcase utc_image_util_anim_encode_save_to_file_p2 + * @since_tizen 6.0 + * @description Positive test case for image_util_anim_encode_save_to_file + */ +int utc_image_util_anim_encode_save_to_file_p2(void) +{ + int ret; + + ret = image_util_anim_encode_create(IMAGE_UTIL_ANIM_WEBP, &g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP]); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_anim_encode_set_lossless(g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP], true); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + for (g_utc_anim_idx = 0; g_utc_anim_idx < NUM_OF_ANIM_FILES; g_utc_anim_idx++) { + ret = image_util_anim_encode_add_frame(g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP], g_utc_anim_images[IMAGE_UTIL_ANIM_WEBP], 100); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + } + + ret = image_util_anim_encode_save_to_file(g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP], g_utc_anim_output_path[IMAGE_UTIL_ANIM_WEBP]); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + return 0; +} + +/** + * @testcase utc_image_util_anim_encode_save_to_file_n1 + * @since_tizen 6.0 + * @description Negative test case for image_util_anim_encode_save_to_file + */ +int utc_image_util_anim_encode_save_to_file_n1(void) +{ + int ret; + + for (g_utc_anim_type = 0; g_utc_anim_type <= LAST_ANIM_TYPE; g_utc_anim_type++) { + ret = image_util_anim_encode_create(g_utc_anim_type, &g_utc_anim_encode_h[g_utc_anim_type]); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + for (g_utc_anim_idx = 0; g_utc_anim_idx < NUM_OF_ANIM_FILES; g_utc_anim_idx++) { + ret = image_util_anim_encode_add_frame(g_utc_anim_encode_h[g_utc_anim_type], g_utc_anim_images[g_utc_anim_idx], 100); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + } + + ret = image_util_anim_encode_save_to_file(NULL, g_utc_anim_output_path[g_utc_anim_type]); + assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); + + ret = image_util_anim_encode_save_to_file(g_utc_anim_encode_h[g_utc_anim_type], NULL); + assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); + } + + return 0; +} + +/** + * @testcase utc_image_util_anim_encode_save_to_file_n2 + * @since_tizen 6.0 + * @description Negative test case for image_util_anim_encode_save_to_file + */ +int utc_image_util_anim_encode_save_to_file_n2(void) +{ + int ret; + + for (g_utc_anim_type = 0; g_utc_anim_type <= LAST_ANIM_TYPE; g_utc_anim_type++) { + ret = image_util_anim_encode_create(g_utc_anim_type, &g_utc_anim_encode_h[g_utc_anim_type]); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_anim_encode_save_to_file(g_utc_anim_encode_h[g_utc_anim_type], g_utc_anim_output_path[g_utc_anim_type]); + assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); + } + + return 0; +} + +/** + * @testcase utc_image_util_anim_encode_save_to_buffer_p1 + * @since_tizen 6.0 + * @description Positive test case for image_util_anim_encode_save_to_buffer + */ +int utc_image_util_anim_encode_save_to_buffer_p1(void) +{ + int ret; + + for (g_utc_anim_type = 0; g_utc_anim_type <= LAST_ANIM_TYPE; g_utc_anim_type++) { + ret = image_util_anim_encode_create(g_utc_anim_type, &g_utc_anim_encode_h[g_utc_anim_type]); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_anim_encode_set_loop_count(g_utc_anim_encode_h[g_utc_anim_type], 0); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + for (g_utc_anim_idx = 0; g_utc_anim_idx < NUM_OF_ANIM_FILES; g_utc_anim_idx++) { + ret = image_util_anim_encode_add_frame(g_utc_anim_encode_h[g_utc_anim_type], g_utc_anim_images[g_utc_anim_idx], 100); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + } + + ret = image_util_anim_encode_save_to_buffer(g_utc_anim_encode_h[g_utc_anim_type], + &g_utc_anim_output_buffer[g_utc_anim_type].buffer, + &g_utc_anim_output_buffer[g_utc_anim_type].buffer_size); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + assert_neq(g_utc_anim_output_buffer[g_utc_anim_type].buffer, NULL); + assert_gt(g_utc_anim_output_buffer[g_utc_anim_type].buffer_size, 8); + } + + return 0; +} + +/** + * @testcase utc_image_util_anim_encode_save_to_buffer_p2 + * @since_tizen 6.0 + * @description Positive test case for image_util_anim_encode_save_to_buffer + */ +int utc_image_util_anim_encode_save_to_buffer_p2(void) +{ + int ret; + + ret = image_util_anim_encode_create(IMAGE_UTIL_ANIM_WEBP, &g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP]); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_anim_encode_set_lossless(g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP], true); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + for (g_utc_anim_idx = 0; g_utc_anim_idx < NUM_OF_ANIM_FILES; g_utc_anim_idx++) { + ret = image_util_anim_encode_add_frame(g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP], g_utc_anim_images[IMAGE_UTIL_ANIM_WEBP], 100); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + } + + ret = image_util_anim_encode_save_to_buffer(g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP], + &g_utc_anim_output_buffer[IMAGE_UTIL_ANIM_WEBP].buffer, + &g_utc_anim_output_buffer[IMAGE_UTIL_ANIM_WEBP].buffer_size); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + assert_neq(g_utc_anim_output_buffer[IMAGE_UTIL_ANIM_WEBP].buffer, NULL); + assert_gt(g_utc_anim_output_buffer[IMAGE_UTIL_ANIM_WEBP].buffer_size, 8); + + return 0; +} + +/** + * @testcase utc_image_util_anim_encode_save_to_buffer_n1 + * @since_tizen 6.0 + * @description Negative test case for image_util_anim_encode_save_to_buffer + */ +int utc_image_util_anim_encode_save_to_buffer_n1(void) +{ + int ret; + + for (g_utc_anim_type = 0; g_utc_anim_type <= LAST_ANIM_TYPE; g_utc_anim_type++) { + ret = image_util_anim_encode_create(g_utc_anim_type, &g_utc_anim_encode_h[g_utc_anim_type]); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + for (g_utc_anim_idx = 0; g_utc_anim_idx < NUM_OF_ANIM_FILES; g_utc_anim_idx++) { + ret = image_util_anim_encode_add_frame(g_utc_anim_encode_h[g_utc_anim_type], g_utc_anim_images[g_utc_anim_idx], 100); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + } + + ret = image_util_anim_encode_save_to_buffer(NULL, + &g_utc_anim_output_buffer[g_utc_anim_type].buffer, + &g_utc_anim_output_buffer[g_utc_anim_type].buffer_size); + assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); + + ret = image_util_anim_encode_save_to_buffer(g_utc_anim_encode_h[g_utc_anim_type], + NULL, + &g_utc_anim_output_buffer[g_utc_anim_type].buffer_size); + assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); + + ret = image_util_anim_encode_save_to_buffer(g_utc_anim_encode_h[g_utc_anim_type], + &g_utc_anim_output_buffer[g_utc_anim_type].buffer, + NULL); + assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); + } + + return 0; +} + +/** + * @testcase utc_image_util_anim_encode_save_to_buffer_n2 + * @since_tizen 6.0 + * @description Negative test case for image_util_anim_encode_save_to_buffer + */ +int utc_image_util_anim_encode_save_to_buffer_n2(void) +{ + int ret; + + for (g_utc_anim_type = 0; g_utc_anim_type <= LAST_ANIM_TYPE; g_utc_anim_type++) { + ret = image_util_anim_encode_create(g_utc_anim_type, &g_utc_anim_encode_h[g_utc_anim_type]); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_anim_encode_save_to_buffer(g_utc_anim_encode_h[g_utc_anim_type], + &g_utc_anim_output_buffer[g_utc_anim_type].buffer, + &g_utc_anim_output_buffer[g_utc_anim_type].buffer_size); + assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); + } + + return 0; +} + +/** + * @testcase utc_image_util_anim_encode_destroy_p + * @since_tizen 6.0 + * @description Positive test case for image_util_anim_encode_destroy + */ +int utc_image_util_anim_encode_destroy_p(void) +{ + int ret; + + for (g_utc_anim_type = 0; g_utc_anim_type <= LAST_ANIM_TYPE; g_utc_anim_type++) { + ret = image_util_anim_encode_create(g_utc_anim_type, &g_utc_anim_encode_h[g_utc_anim_type]); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + + ret = image_util_anim_encode_destroy(g_utc_anim_encode_h[g_utc_anim_type]); + assert_eq(ret, IMAGE_UTIL_ERROR_NONE); + g_utc_anim_encode_h[g_utc_anim_type] = NULL; + } + + return 0; +} + +/** + * @testcase utc_image_util_anim_encode_destroy_n + * @since_tizen 6.0 + * @description Negative test case for image_util_anim_encode_destroy + */ +int utc_image_util_anim_encode_destroy_n(void) +{ + int ret; + + ret = image_util_anim_encode_destroy(NULL); + assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER); + + return 0; +}