1. Remove mm-imgcv dependency from image-util 98/58298/1
authorTae-Young Chung <ty83.chung@samsung.com>
Fri, 29 Jan 2016 05:12:46 +0000 (14:12 +0900)
committerTae-Young Chung <ty83.chung@samsung.com>
Fri, 29 Jan 2016 05:15:51 +0000 (14:15 +0900)
2. Remove MM_ERROR_XXX from testsuite

Change-Id: I22a0273d94ae0055b6eed4a167adfc4ae80f0c7f
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
CMakeLists.txt
include/image_util_private.h
packaging/capi-media-image-util.spec
src/image_util.c
test/image_util_test.c

index b3e36b0..0927f3a 100755 (executable)
@@ -24,7 +24,7 @@ SET(service "media")
 SET(submodule "image-util")
 
 # for package file
-SET(dependents "dlog mmutil-bmp mmutil-gif mmutil-png mmutil-jpeg mmutil-imgp mmutil-imgcv capi-base-common capi-media-tool glib-2.0")
+SET(dependents "dlog mmutil-bmp mmutil-gif mmutil-png mmutil-jpeg mmutil-imgp capi-base-common capi-media-tool glib-2.0")
 SET(pc_dependents "dlog capi-base-common capi-media-tool")
 
 SET(fw_name "${project_prefix}-${service}-${submodule}")
index 603c768..f4ae7fe 100755 (executable)
@@ -21,6 +21,7 @@
 #include <dlog.h>
 #include <stdlib.h>
 #include <glib.h>
+#include <gmodule.h>
 
 #ifdef __cplusplus
 extern "C"
@@ -58,6 +59,10 @@ extern "C"
                } \
        } while (0)
 
+#define IMGCV_FUNC_NAME "mm_util_cv_extract_representative_color"
+#define PATH_MMUTIL_IMGCV_LIB "/usr/lib/libmmutil_imgcv.so"
+typedef gboolean (*ModuleFunc) (void *, int, int, unsigned char *, unsigned char *, unsigned char *);
+
 typedef struct {
        void *user_data;
        media_packet_h dst;
index 4fe832e..21a908d 100755 (executable)
@@ -1,6 +1,6 @@
 Name:       capi-media-image-util
 Summary:    A Image Utility library in Tizen Native API
-Version:    0.1.7
+Version:    0.1.8
 Release:    1
 Group:      Multimedia/API
 License:    Apache-2.0
@@ -9,13 +9,13 @@ Source1001:     capi-media-image-util.manifest
 BuildRequires:  pkgconfig(dlog)
 BuildRequires:  pkgconfig(mmutil-jpeg)
 BuildRequires:  pkgconfig(mmutil-imgp)
-BuildRequires:  pkgconfig(mmutil-imgcv)
 BuildRequires:  pkgconfig(mmutil-png)
 BuildRequires:  pkgconfig(mmutil-gif)
 BuildRequires:  pkgconfig(mmutil-bmp)
 BuildRequires:  pkgconfig(capi-base-common)
 BuildRequires:  pkgconfig(capi-media-tool)
 BuildRequires:  pkgconfig(glib-2.0)
+BuildRequires:  pkgconfig(gmodule-2.0)
 BuildRequires:  cmake
 BuildRequires:  libpng-devel
 BuildRequires:  giflib-devel
@@ -33,7 +33,6 @@ Requires:  pkgconfig(dlog)
 Requires:  pkgconfig(mm-common)
 Requires:  pkgconfig(mmutil-jpeg)
 Requires:  pkgconfig(mmutil-imgp)
-Requires:  pkgconfig(mmutil-imgcv)
 Requires:  pkgconfig(mmutil-png)
 Requires:  pkgconfig(mmutil-gif)
 Requires:  pkgconfig(mmutil-bmp)
index d6a2672..4f7ba51 100755 (executable)
@@ -18,7 +18,6 @@
 
 #include <mm_util_imgp.h>
 #include <mm_util_jpeg.h>
-#include <mm_util_imgcv.h>
 #include <mm_util_png.h>
 #include <mm_util_gif.h>
 #include <mm_util_bmp.h>
@@ -814,13 +813,29 @@ int image_util_extract_color_from_memory(const unsigned char *image_buffer, int
 
        image_util_retvm_if((image_buffer == NULL), IMAGE_UTIL_ERROR_INVALID_PARAMETER, "image_buffer     is null");
 
+       GModule *module = NULL;
+       ModuleFunc mmutil_imgcv_module_func = NULL;
+       module = g_module_open(PATH_MMUTIL_IMGCV_LIB, G_MODULE_BIND_LAZY);
+       image_util_retvm_if((module == NULL), IMAGE_UTIL_ERROR_NO_SUCH_FILE, "fail to open module");
+
+       g_module_symbol(module, IMGCV_FUNC_NAME, (gpointer *)&mmutil_imgcv_module_func);
+       if (!mmutil_imgcv_module_func) {
+               g_module_close(module);
+       }
+       image_util_retvm_if((mmutil_imgcv_module_func == NULL), IMAGE_UTIL_ERROR_INVALID_OPERATION, "fail to get symbol");
+
        unsigned char r_color, g_color, b_color;
-       ret = mm_util_cv_extract_representative_color((void *)image_buffer, width, height, &r_color, &g_color, &b_color);
+       ret = mmutil_imgcv_module_func((void *)image_buffer, width, height, &r_color, &g_color, &b_color);
 
        *rgb_r = r_color;
        *rgb_g = g_color;
        *rgb_b = b_color;
 
+       if (module) {
+               g_module_close(module);
+               module = NULL;
+       }
+
        return _convert_image_util_error_code(__func__, ret);
 }
 
index b231850..fcb1604 100755 (executable)
@@ -21,7 +21,6 @@
 #include <string.h>
 #include <image_util.h>
 #include <image_util_type.h>
-#include <mm_error.h>
 
 #define MAX_STRING_LEN 128
 #define IMAGE_FORMAT_LABEL_BUFFER_SIZE 4
@@ -137,11 +136,11 @@ bool test_transform_completed_cb(media_packet_h *packet, image_util_error_e erro
        char *output_fmt = NULL;
 
        g_printf("test_transform_completed_cb============= [%d] \n", error);
-       if (error == MM_ERROR_NONE) {
+       if (error == IMAGE_UTIL_ERROR_NONE) {
                g_printf("<<<<< SUCCESS >>>>>");
                output_fmt = (char *)malloc(sizeof(char) * IMAGE_FORMAT_LABEL_BUFFER_SIZE);
                if (output_fmt) {
-                       if (media_packet_get_format(*packet, &dst_fmt) != MM_ERROR_NONE) {
+                       if (media_packet_get_format(*packet, &dst_fmt) != MEDIA_PACKET_ERROR_NONE) {
                                g_printf("Imedia_packet_get_format");
                                _signal();
                                return FALSE;
@@ -164,7 +163,7 @@ bool test_transform_completed_cb(media_packet_h *packet, image_util_error_e erro
                if (fpout) {
                        media_packet_get_buffer_size(*packet, &size);
                        void *dst = NULL;
-                       if (media_packet_get_buffer_data_ptr(*packet, &dst) != MM_ERROR_NONE) {
+                       if (media_packet_get_buffer_data_ptr(*packet, &dst) != MEDIA_PACKET_ERROR_NONE) {
                                IMAGE_UTIL_SAFE_FREE(dst);
                                IMAGE_UTIL_SAFE_FREE(output_fmt);
                                fclose(fpout);
@@ -205,31 +204,31 @@ create_media_packet()
                if (media_format_set_video_mime(fmt, _image_util_mapping_imgp_format_to_mime(g_format)) != MEDIA_FORMAT_ERROR_NONE) {
                        media_format_unref(fmt);
                        g_printf("[Error] Set - video mime\n");
-                       return MM_ERROR_IMAGE_INVALID_VALUE;
+                       return IMAGE_UTIL_ERROR_INVALID_PARAMETER;
                }
 
                if (media_format_set_video_width(fmt, g_width) != MEDIA_FORMAT_ERROR_NONE) {
                        media_format_unref(fmt);
                        g_printf("[Error] Set - video width\n");
-                       return MM_ERROR_IMAGE_INVALID_VALUE;
+                       return IMAGE_UTIL_ERROR_INVALID_PARAMETER;
                }
 
                if (media_format_set_video_height(fmt, g_height) != MEDIA_FORMAT_ERROR_NONE) {
                        media_format_unref(fmt);
                        g_printf("[Error] Set - video heigh\nt");
-                       return MM_ERROR_IMAGE_INVALID_VALUE;
+                       return IMAGE_UTIL_ERROR_INVALID_PARAMETER;
                }
 
                if (media_format_set_video_avg_bps(fmt, 2000000) != MEDIA_FORMAT_ERROR_NONE) {
                        media_format_unref(fmt);
                        g_printf("[Error] Set - video avg bps\n");
-                       return MM_ERROR_IMAGE_INVALID_VALUE;
+                       return IMAGE_UTIL_ERROR_INVALID_PARAMETER;
                }
 
                if (media_format_set_video_max_bps(fmt, 15000000) != MEDIA_FORMAT_ERROR_NONE) {
                        media_format_unref(fmt);
                        g_printf("[Error] Set - video max bps\n");
-                       return MM_ERROR_IMAGE_INVALID_VALUE;
+                       return IMAGE_UTIL_ERROR_INVALID_PARAMETER;
                }
 
                g_printf("media_format_set_video_info success! file:%s, w:%d, h:%d, %d\n", g_path, g_width, g_height, _image_util_mapping_imgp_format_to_mime(g_format));
@@ -238,25 +237,25 @@ create_media_packet()
        }
 
        ret = media_packet_create_alloc(fmt, NULL, NULL, &g_src);
-       if (ret == MM_ERROR_NONE) {
+       if (ret == MEDIA_PACKET_ERROR_NONE) {
                g_printf("Success - media_packet_create_alloc\n");
                uint64_t size = 0;
                if (media_packet_get_buffer_size(g_src, &size) == MEDIA_PACKET_ERROR_NONE) {
                        ptr = malloc(size);
                        if (ptr == NULL) {
                                g_printf("\tmemory allocation failed\n");
-                               return MM_ERROR_IMAGE_INTERNAL;
+                               return IMAGE_UTIL_ERROR_OUT_OF_MEMORY;
                        }
                        if (media_packet_get_buffer_data_ptr(g_src, &ptr) == MEDIA_PACKET_ERROR_NONE) {
                                FILE *fp = fopen(g_path, "r");
                                if (fp == NULL) {
                                        g_printf("\tfile open failed %d\n", errno);
-                                       return MM_ERROR_IMAGE_INTERNAL;
+                                       return IMAGE_UTIL_ERROR_NO_SUCH_FILE;
                                }
                                src = malloc(size);
                                if (src == NULL) {
                                        g_printf("\tmemory allocation failed\n");
-                                       return MM_ERROR_IMAGE_INTERNAL;
+                                       return IMAGE_UTIL_ERROR_NO_SUCH_FILE;
                                }
                                if (fread(src, 1, (int)size, fp)) {
                                        g_printf("#Success# fread\n");
@@ -301,7 +300,7 @@ static void _set_image()
                g_printf("[%d]Success source packet is destroyed \n", __LINE__);
        }
        ret = create_media_packet();
-       if (ret == MM_ERROR_NONE)
+       if (ret == MEDIA_PACKET_ERROR_NONE)
                g_printf("Success - Create_media_packet\n");
        else
                g_printf("Error - Create_media_packet\n");
@@ -588,7 +587,7 @@ int main(int argc, char **argv)
        bool hardware_acceleration = FALSE;
 
        ret = create_media_packet();
-       if (ret == MM_ERROR_NONE) {
+       if (ret == MEDIA_PACKET_ERROR_NONE) {
                g_printf("Success - Create_media_packet\n");
        } else {
                g_printf("Error - Create_media_packet\n");