diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/CMakeLists.txt | 13 | ||||
-rwxr-xr-x | test/test-thumb.c | 145 |
2 files changed, 100 insertions, 58 deletions
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 0000000..93480e5 --- /dev/null +++ b/test/CMakeLists.txt @@ -0,0 +1,13 @@ +SET(TEST-THUMB "test-thumb.c") + +INCLUDE(FindPkgConfig) + pkg_check_modules(pkgs REQUIRED glib-2.0 gthread-2.0 dlog mm-fileinfo aul libexif ecore-evas evas mmutil-imgp mmutil-jpeg libmedia-utils vconf libtzplatform-config) + +FOREACH(flag ${pkgs_CFLAGS}) + SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") +ENDFOREACH(flag) + +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall -fPIE") + +ADD_EXECUTABLE(test-thumb ${TEST-THUMB}) +TARGET_LINK_LIBRARIES(test-thumb ${pkgs_LDFLAGS} ${MEDIATHUMB-LIB} ) diff --git a/test/test-thumb.c b/test/test-thumb.c index 5c390e9..92919cd 100755 --- a/test/test-thumb.c +++ b/test/test-thumb.c @@ -23,9 +23,10 @@ #include <stdlib.h> #include <string.h> #include <pthread.h> +#include <Evas.h> +#include <Ecore_Evas.h> #include <mm_util_imgp.h> #include <mm_util_jpeg.h> -#include <stdbool.h> #include "media-thumbnail.h" #include "thumb-server-internal.h" @@ -33,16 +34,75 @@ #include "media-thumb-ipc.h" #include "media-thumb-util.h" -int save_to_file_with_gdk(unsigned char *data, int w, int h, int is_bgra) +int save_to_file_with_evas(unsigned char *data, int w, int h, int is_bgra) { - GError *error = NULL; - - gdk_pixbuf_save(data,"/mnt/nfs/test.jpg","jpeg", &error, NULL); - if (error) { - thumb_dbg ("Error saving image file /mnt/nfs/test.jpg "); - g_error_free (error); + ecore_evas_init(); + + Ecore_Evas *ee = + ecore_evas_buffer_new(w, h); + Evas *evas = ecore_evas_get(ee); + + Evas_Object *img = NULL; + img = evas_object_image_add(evas); + + if (img == NULL) { + printf("image object is NULL\n"); + ecore_evas_free(ee); + ecore_evas_shutdown(); return -1; } + + evas_object_image_colorspace_set(img, EVAS_COLORSPACE_ARGB8888); + evas_object_image_size_set(img, w, h); + evas_object_image_fill_set(img, 0, 0, w, h); + + if (!is_bgra) { + unsigned char *m = NULL; + m = evas_object_image_data_get(img, 1); +#if 1 /* Use self-logic to convert from RGB888 to RGBA */ + int i = 0, j; + for (j = 0; j < w * 3 * h; + j += 3) { + m[i++] = (data[j + 2]); + m[i++] = (data[j + 1]); + m[i++] = (data[j]); + m[i++] = 0x0; + } + +#else /* Use mmf api to convert from RGB888 to RGBA */ + int mm_ret = 0; + if ((mm_ret = + mm_util_convert_colorspace(data, + w, + h, + MM_UTIL_IMG_FMT_RGB888, + m, + MM_UTIL_IMG_FMT_BGRA8888)) + < 0) { + printf + ("Failed to change from rgb888 to argb8888 %d\n", + mm_ret); + return -1; + } +#endif /* End of use mmf api to convert from RGB888 to RGBA */ + + evas_object_image_data_set(img, m); + evas_object_image_data_update_add(img, 0, 0, w, h); + } else { + evas_object_image_data_set(img, data); + evas_object_image_data_update_add(img, 0, 0, w, h); + } + + if (evas_object_image_save + (img, "/mnt/nfs/test.jpg", NULL, + "quality=50 compress=2")) { + printf("evas_object_image_save success\n"); + } else { + printf("evas_object_image_save failed\n"); + } + + ecore_evas_shutdown(); + return 0; } @@ -63,79 +123,48 @@ int main(int argc, char *argv[]) if (origin_path && (mode == 1)) { printf("Test _thumbnail_get_data\n"); #if 0 - GdkPixbuf *data = NULL; + unsigned char *data = NULL; int thumb_size = 0; int thumb_w = 0; int thumb_h = 0; int origin_w = 0; int origin_h = 0; int alpha = FALSE; + bool is_saved = FALSE; + char *thumb_path = "thumbnail_path.jpg"; - media_thumb_type thumb_type = MEDIA_THUMB_LARGE; - //media_thumb_type thumb_type = MEDIA_THUMB_SMALL; - //media_thumb_format thumb_format = MEDIA_THUMB_BGRA; - media_thumb_format thumb_format = MEDIA_THUMB_RGB888; + media_thumb_format thumb_format = MEDIA_THUMB_BGRA; + //media_thumb_format thumb_format = MEDIA_THUMB_RGB888; int is_bgra = 1; //int is_bgra = 0; - long start = thumb_get_debug_time(); + //long start = thumb_get_debug_time(); - err = _thumbnail_get_data(origin_path, thumb_type, thumb_format, &data, &thumb_size, &thumb_w, &thumb_h, &origin_w, &origin_h, &alpha, tzplatform_getuid(TZ_USER_NAME)); + err = _thumbnail_get_data(origin_path, thumb_format, thumb_path, &data, &thumb_size, &thumb_w, &thumb_h, &origin_w, &origin_h, &alpha, &is_saved); if (err < 0) { printf("_thumbnail_get_data failed - %d\n", err); return -1; } - - printf("Size : %d, W:%d, H:%d\n", thumb_size, thumb_w, thumb_h); + + printf("Size : %d, W:%d, H:%d\n", thumb_size, thumb_w, thumb_h); printf("Origin W:%d, Origin H:%d\n", origin_w, origin_h); - err = save_to_file_with_gdk(data, thumb_w, thumb_h, is_bgra); - if (err < 0) { - printf("_thumbnail_get_data failed - %d\n", err); - return -1; - } else { - printf("file save success\n"); + if (is_saved == FALSE) { + err = save_to_file_with_evas(data, thumb_w, thumb_h, is_bgra); + if (err < 0) { + printf("save_to_file_with_evas failed - %d\n", err); + return -1; + } else { + printf("file save success\n"); + } } SAFE_FREE(data); - long end = thumb_get_debug_time(); - printf("Time : %f\n", ((double)(end - start) / (double)CLOCKS_PER_SEC)); + //long end = thumb_get_debug_time(); + //printf("Time : %f\n", ((double)(end - start) / (double)CLOCKS_PER_SEC)); #endif - } else if (mode == 2) { - printf("Test thumbnail_request_from_db\n"); - //const char *origin_path = "/opt/media/test/movie1.mp4"; - //const char *origin_path = "/opt/media/test/high.jpg"; - //const char *origin_path = "/opt/media/test/movie2.avi"; - char thumb_path[MAX_PATH_SIZE + 1]; - - err = thumbnail_request_from_db(origin_path, thumb_path, sizeof(thumb_path), tzplatform_getuid(TZ_USER_NAME)); - if (err < 0) { - printf("thumbnail_request_from_db failed : %d\n", err); - return -1; - } - - printf("Success!! (%s)\n", thumb_path); - } else if (mode == 3) { - printf("Test thumbnail_request_save_to_file\n"); - const char *thumb_path = NULL; - - if (argv[3]) { - thumb_path = argv[3]; - } else { - printf("3 mode requires target path of thumbnail\n"); - return -1; - } - - err = thumbnail_request_save_to_file(origin_path, MEDIA_THUMB_LARGE, thumb_path, tzplatform_getuid(TZ_USER_NAME)); - if (err < 0) { - printf("thumbnail_request_save_to_file failed : %d\n", err); - return -1; - } - - printf("Success!!\n"); } else if (origin_path && mode == 4) { - printf("Test thumbnail_generate_hash_code\n"); printf("Success!!\n"); } else if (mode == 5) { printf("Test thumbnail_request_extract_all_thumbs\n"); |