Merge thumbnail create API when image type 82/137882/2
authorMinje Ahn <minje.ahn@samsung.com>
Mon, 10 Jul 2017 07:32:25 +0000 (16:32 +0900)
committerMinje Ahn <minje.ahn@samsung.com>
Mon, 10 Jul 2017 07:57:29 +0000 (16:57 +0900)
Change-Id: I14927754931071ef8d3d1307ddc334d5bc643541
Signed-off-by: Minje Ahn <minje.ahn@samsung.com>
src/include/media-thumb-internal.h
src/media-thumb-internal.c

index 6d0d5e6b20b0ab7ddbe3b923440458ccdb220d16..358fdc207ef70cc11a05e23c304c8ea7b8b7da45 100755 (executable)
@@ -70,24 +70,9 @@ typedef struct {
        void *user_data;
 } thumbRawUserData;
 
-int _media_thumb_image(const char *origin_path,
-                                       const char *thumb_path,
-                                       int thumb_width,
-                                       int thumb_height,
-                                       media_thumb_info *thumb_info);
-
-int _media_thumb_video(const char *origin_path,
-                                       int thumb_width,
-                                       int thumb_height,
-                                       media_thumb_info *thumb_info);
-
-int _media_thumb_get_hash_name(const char *file_full_path,
-                                char *thumb_hash_path, size_t max_thumb_path, uid_t uid);
-
-int _media_thumb_save_to_file_with_evas(unsigned char *data,
-                                                                                       int w,
-                                                                                       int h,
-                                                                                       int alpha,
-                                                                                       char *thumb_path);
+int _media_thumb_image(const char *origin_path, const char *thumb_path, int thumb_width, int thumb_height, media_thumb_info *thumb_info);
+int _media_thumb_video(const char *origin_path, int thumb_width, int thumb_height, media_thumb_info *thumb_info);
+int _media_thumb_get_hash_name(const char *file_full_path, char *thumb_hash_path, size_t max_thumb_path, uid_t uid);
+int _media_thumb_save_to_file_with_evas(unsigned char *data, int w, int h, int alpha, char *thumb_path);
 
 #endif /*_MEDIA_THUMB_INTERNAL_H_*/
index ed85c68e54ab06672a880fb4f492222e382a6f14..6526d625f72fc6b4973a9cbda3b571a0198e271c 100755 (executable)
@@ -638,6 +638,7 @@ int _media_thumb_decode_with_evas(const char *origin_path,
        thumb_info->origin_height = height;
        //thumb_dbg("origin width:%d, origin height:%d", width, height);
 
+       /* This case for only JPEG format.. JPEG can be partially processed.. */
        if ((need_scale == 1) && (width * height > THUMB_MAX_ALLOWED_MEM_FOR_THUMB)) {
                thumb_warn("This is too large image. so this's scale is going to be down");
                evas_object_image_load_scale_down_set(source_img, 10);
@@ -777,10 +778,7 @@ int _media_thumb_convert_data(media_thumb_info *thumb_info, int thumb_width, int
        return err;
 }
 
-int _media_thumb_agif(const char *origin_path,
-                                       int thumb_width,
-                                       int thumb_height,
-                                       media_thumb_info *thumb_info)
+int _media_thumb_agif(const char *origin_path, int thumb_width, int thumb_height, media_thumb_info *thumb_info)
 {
        int err = MS_MEDIA_ERR_NONE;
        unsigned int *thumb = NULL;
@@ -828,10 +826,7 @@ int _media_thumb_agif(const char *origin_path,
        return err;
 }
 
-int _media_thumb_png(const char *origin_path,
-                                       int thumb_width,
-                                       int thumb_height,
-                                       media_thumb_info *thumb_info)
+int _media_thumb_general(const char *origin_path, int thumb_width, int thumb_height, media_thumb_info *thumb_info)
 {
        int err = MS_MEDIA_ERR_NONE;
 
@@ -844,59 +839,7 @@ int _media_thumb_png(const char *origin_path,
        return err;
 }
 
-int _media_thumb_bmp(const char *origin_path,
-                                       int thumb_width,
-                                       int thumb_height,
-                                       media_thumb_info *thumb_info)
-{
-       int err = MS_MEDIA_ERR_NONE;
-
-       err = _media_thumb_decode_with_evas(origin_path, thumb_width, thumb_height, thumb_info, 1, NORMAL);
-       if (err != MS_MEDIA_ERR_NONE) {
-               thumb_err("decode_with_evas failed : %d", err);
-               return err;
-       }
-
-       return err;
-}
-
-int _media_thumb_wbmp(const char *origin_path,
-                                       int thumb_width,
-                                       int thumb_height,
-                                       media_thumb_info *thumb_info)
-{
-       int err = MS_MEDIA_ERR_NONE;
-
-       err = _media_thumb_decode_with_evas(origin_path, thumb_width, thumb_height, thumb_info, 1, NORMAL);
-       if (err != MS_MEDIA_ERR_NONE) {
-               thumb_err("decode_with_evas failed : %d", err);
-               return err;
-       }
-
-       return err;
-}
-
-int _media_thumb_gif(const char *origin_path,
-                                       int thumb_width,
-                                       int thumb_height,
-                                       media_thumb_info *thumb_info)
-{
-       int err = MS_MEDIA_ERR_NONE;
-
-       err = _media_thumb_decode_with_evas(origin_path, thumb_width, thumb_height, thumb_info, 1, NORMAL);
-       if (err != MS_MEDIA_ERR_NONE) {
-               thumb_err("decode_with_evas failed : %d", err);
-               return err;
-       }
-
-       return err;
-}
-
-int _media_thumb_jpeg(const char *origin_path,
-                                       const char *thumb_path,
-                                       int thumb_width,
-                                       int thumb_height,
-                                       media_thumb_info *thumb_info)
+int _media_thumb_jpeg(const char *origin_path, const char *thumb_path, int thumb_width, int thumb_height, media_thumb_info *thumb_info)
 {
        int err = MS_MEDIA_ERR_NONE;
        int thumb_done = 0;
@@ -967,11 +910,7 @@ int _media_thumb_jpeg(const char *origin_path,
        return err;
 }
 
-int _media_thumb_image(const char *origin_path,
-                                       const char *thumb_path,
-                                       int thumb_width,
-                                       int thumb_height,
-                                       media_thumb_info *thumb_info)
+int _media_thumb_image(const char *origin_path, const char *thumb_path, int thumb_width, int thumb_height, media_thumb_info *thumb_info)
 {
        int err = MS_MEDIA_ERR_NONE;
        ImgCodecType image_type = 0;
@@ -979,7 +918,6 @@ int _media_thumb_image(const char *origin_path,
        unsigned int origin_h = 0;
 
        err = ImgGetImageInfoForThumb(origin_path, &image_type, &origin_w, &origin_h);
-
        if (err != MS_MEDIA_ERR_NONE) {
                thumb_warn("Getting image info is failed err: %d", err);
        }
@@ -987,8 +925,7 @@ int _media_thumb_image(const char *origin_path,
        thumb_info->origin_width = origin_w;
        thumb_info->origin_height = origin_h;
 
-       if ((image_type != IMG_CODEC_JPEG) &&
-               (origin_w * origin_h > THUMB_MAX_ALLOWED_MEM_FOR_THUMB)) {
+       if ((image_type != IMG_CODEC_JPEG) && (origin_w * origin_h > THUMB_MAX_ALLOWED_MEM_FOR_THUMB)) {
                thumb_warn("This original image is too big");
                return MS_MEDIA_ERR_THUMB_TOO_BIG;
        }
@@ -997,43 +934,9 @@ int _media_thumb_image(const char *origin_path,
                err = _media_thumb_agif(origin_path, thumb_width, thumb_height, thumb_info);
        } else if (image_type == IMG_CODEC_JPEG) {
                err = _media_thumb_jpeg(origin_path, thumb_path, thumb_width, thumb_height, thumb_info);
-       } else if (image_type == IMG_CODEC_PNG) {
-               err = _media_thumb_png(origin_path, thumb_width, thumb_height, thumb_info);
-       } else if (image_type == IMG_CODEC_GIF) {
-               err = _media_thumb_gif(origin_path, thumb_width, thumb_height, thumb_info);
-       } else if (image_type == IMG_CODEC_BMP) {
-               err = _media_thumb_bmp(origin_path, thumb_width, thumb_height, thumb_info);
+       } else if (image_type == IMG_CODEC_PNG || image_type == IMG_CODEC_GIF || image_type == IMG_CODEC_BMP || image_type == IMG_CODEC_WBMP) {
+               err = _media_thumb_general(origin_path, thumb_width, thumb_height, thumb_info);
        } else {
-               char file_ext[10];
-               err = _media_thumb_get_file_ext(origin_path, file_ext, sizeof(file_ext));
-               if (err != MS_MEDIA_ERR_NONE) {
-                       thumb_warn("_media_thumb_get_file_ext failed");
-               } else {
-                       if (strcasecmp(file_ext, "wbmp") == 0) {
-                               image_type = IMG_CODEC_WBMP;
-                               int wbmp_width = 0;
-                               int wbmp_height = 0;
-
-                               err = _media_thumb_get_wh_with_evas(origin_path, &wbmp_width, &wbmp_height);
-                               if (err != MS_MEDIA_ERR_NONE) {
-                                       thumb_err("_media_thumb_get_wh_with_evas in WBMP : %d", err);
-                                       return err;
-                               }
-
-                               if (wbmp_width * wbmp_height > THUMB_MAX_ALLOWED_MEM_FOR_THUMB) {
-                                       thumb_warn("This original image is too big");
-                                       return MS_MEDIA_ERR_THUMB_TOO_BIG;
-                               }
-
-                               thumb_info->origin_width = wbmp_width;
-                               thumb_info->origin_height = wbmp_height;
-
-                               err = _media_thumb_wbmp(origin_path, thumb_width, thumb_height, thumb_info);
-
-                               return err;
-                       }
-               }
-
                thumb_warn("Unsupported image type");
                return MS_MEDIA_ERR_THUMB_UNSUPPORTED;
        }
@@ -1041,10 +944,7 @@ int _media_thumb_image(const char *origin_path,
        return err;
 }
 
-int _media_thumb_video(const char *origin_path,
-                                       int thumb_width,
-                                       int thumb_height,
-                                       media_thumb_info *thumb_info)
+int _media_thumb_video(const char *origin_path, int thumb_width, int thumb_height, media_thumb_info *thumb_info)
 {
        int err = MS_MEDIA_ERR_NONE;
 
@@ -1212,8 +1112,7 @@ int _media_thumb_video(const char *origin_path,
        return err;
 }
 
-int _media_thumb_get_hash_name(const char *file_full_path,
-                                char *thumb_hash_path, size_t max_thumb_path, uid_t uid)
+int _media_thumb_get_hash_name(const char *file_full_path, char *thumb_hash_path, size_t max_thumb_path, uid_t uid)
 {
        char *hash_name = NULL;
        /*char *thumb_dir = NULL;*/
@@ -1268,11 +1167,7 @@ int _media_thumb_get_hash_name(const char *file_full_path,
 }
 
 
-int _media_thumb_save_to_file_with_evas(unsigned char *data,
-                                                                                       int w,
-                                                                                       int h,
-                                                                                       int alpha,
-                                                                                       char *thumb_path)
+int _media_thumb_save_to_file_with_evas(unsigned char *data, int w, int h, int alpha, char *thumb_path)
 {
        Ecore_Evas *ee = ecore_evas_buffer_new(w, h);
        if (ee == NULL) {