Refactoring file I/O functions 34/274234/5
authorjiyong.min <jiyong.min@samsung.com>
Mon, 25 Apr 2022 06:28:34 +0000 (15:28 +0900)
committerjiyong.min <jiyong.min@samsung.com>
Tue, 26 Apr 2022 04:34:03 +0000 (13:34 +0900)
Change-Id: I5f9631d591d54447046f13f4d309d53f456da17f

15 files changed:
anim/test/mm_util_anim_testsuite.c
common/include/mm_util_private.h
common/mm_util_private.c
gif/mm_util_gif.c
gif/test/mm_util_gif_testsuite.c
heif/test/mm_util_heif_testsuite.c
imgp/test/mm_util_imgp_testsuite.c
jpeg/test/mm_util_jpeg_testsuite.c
jxl/mm_util_jxl.c
jxl/test/mm_util_jxl_testsuite.c
magick/mm_util_magick.c
magick/test/mm_util_magick_testsuite.c
packaging/libmm-utility.spec
webp/mm_util_webp.c
webp/test/mm_util_webp_testsuite.c

index 068733b..66146de 100644 (file)
@@ -24,6 +24,7 @@
 #include <mm_util_anim.h>
 #include <mm_util_image.h>
 #include <mm_util_magick.h>
+#include <mm_util_private.h>
 #include <tzplatform_config.h>
 
 #define TEST_STRING_VALID(str) ((str != NULL && strlen(str) > 0) ? TRUE : FALSE)
@@ -247,7 +248,6 @@ static gboolean __test_encode_to_buffer(mm_util_img_codec_type type, const char
        /* for encoding webp to memory */
        unsigned char *encoded_data = NULL;
        size_t encoded_size = 0;
-       GError *g_error = NULL;
 
        fprintf(stderr, "[ANIM_testsuite] The test begins: %d, %s\n", type, path);
 
@@ -286,10 +286,9 @@ static gboolean __test_encode_to_buffer(mm_util_img_codec_type type, const char
                goto END;
        }
 
-       if (!g_file_set_contents(path, (gchar *)encoded_data, (gssize)encoded_size, &g_error)) {
-               fprintf(stderr, "\t[ANIM_testsuite] g_file_set_contents failed : %s\n", g_error ? g_error->message : "none");
-               g_error_free(g_error);
-       }
+       ret = mm_util_file_write(path, encoded_data, encoded_size);
+       if (ret != MM_UTIL_ERROR_NONE)
+               printf("Fail mm_util_file_write [%d]\n", ret);
 
 END:
        mm_util_anim_enc_destroy(anim_enc);
index 60575f4..520e84d 100644 (file)
@@ -80,10 +80,14 @@ typedef struct {
 
 gboolean mm_util_is_valid_color_format(mm_util_color_format_e color);
 
+// for using fp like jpeg
 int mm_util_safe_fopen(const char *path, const char *mode, FILE **fp);
-int mm_util_safe_fwrite(FILE *fp, const void *data, size_t length);
 void mm_util_safe_fclose(FILE *fp);
 
+// for others
+int mm_util_file_read(const char *path, void **data, size_t *size);
+int mm_util_file_write(const char *path, void *data, size_t size);
+
 #ifdef __cplusplus
 }
 #endif
index 9525bf3..ec02f22 100644 (file)
@@ -36,9 +36,9 @@ int mm_util_safe_fopen(const char *path, const char *mode, FILE **fp)
        char *_realpath = NULL;
 
        /* The input path was wrong, it returned no such file. */
-       mm_util_retvm_if((!MMUTIL_STRING_VALID(path)), MM_UTIL_ERROR_NO_SUCH_FILE, "invalid path");
-       mm_util_retvm_if((!MMUTIL_STRING_VALID(mode)), MM_UTIL_ERROR_INVALID_PARAMETER, "invalid mode");
-       mm_util_retvm_if((fp == NULL), MM_UTIL_ERROR_INVALID_PARAMETER, "invalid FILE*");
+       mm_util_retvm_if(!MMUTIL_STRING_VALID(path), MM_UTIL_ERROR_NO_SUCH_FILE, "invalid path %s", path);
+       mm_util_retvm_if(!MMUTIL_STRING_VALID(mode), MM_UTIL_ERROR_INVALID_PARAMETER, "invalid mode %s", mode);
+       mm_util_retvm_if(!fp, MM_UTIL_ERROR_INVALID_PARAMETER, "fp is null");
 
        /*
         * If the mode has writing mode('w', 'w+', 'r+', 'a', 'a+'),
@@ -73,22 +73,58 @@ int mm_util_safe_fopen(const char *path, const char *mode, FILE **fp)
        return MM_UTIL_ERROR_NONE;
 }
 
-int mm_util_safe_fwrite(FILE *fp, const void *data, size_t length)
+void mm_util_safe_fclose(FILE *fp)
 {
-       size_t len = 0;
+       if (fp)
+               fclose(fp);
+}
 
-       /* The input path was wrong, it returned no such file. */
-       mm_util_retvm_if((!fp), MM_UTIL_ERROR_NO_SUCH_FILE, "invalid fp");
-       mm_util_retvm_if((!data || length == 0), MM_UTIL_ERROR_INVALID_PARAMETER, "invalid data");
+int mm_util_file_read(const char *path, void **data, size_t *size)
+{
+       gsize read_n = 0;
+       gchar *read_data = NULL;
+       GError *error = NULL;
+
+       mm_util_retvm_if(!MMUTIL_STRING_VALID(path), MM_UTIL_ERROR_INVALID_PARAMETER, "invalid path %s", path);
+       mm_util_retvm_if(!data, MM_UTIL_ERROR_INVALID_PARAMETER, "data is null");
+       mm_util_retvm_if(!size, MM_UTIL_ERROR_INVALID_PARAMETER, "data_size is null");
+
+       mm_util_fenter();
+
+       if (!g_file_get_contents(path, &read_data, &read_n, &error)) {
+               mm_util_error("g_file_get_contents error(%s: %s)", path, (error ? error->message : "none"));
+               if (error)
+                       g_error_free(error);
+               return MM_UTIL_ERROR_INVALID_PARAMETER;
+       }
+
+       *data = read_data;
+       *size = read_n;
 
-       len = fwrite(data, 1, length, fp);
-       mm_util_retvm_if(len != length, MM_UTIL_ERROR_INVALID_OPERATION, "fwrite failed");
+       mm_util_fleave();
 
        return MM_UTIL_ERROR_NONE;
 }
 
-void mm_util_safe_fclose(FILE *fp)
+int mm_util_file_write(const char *path, void *data, size_t size)
 {
-       if (fp)
-               fclose(fp);
+       GError *error = NULL;
+
+       mm_util_retvm_if(!MMUTIL_STRING_VALID(path), MM_UTIL_ERROR_INVALID_PARAMETER, "invalid path %s", path);
+       mm_util_retvm_if(!data, MM_UTIL_ERROR_INVALID_PARAMETER, "data is null");
+       mm_util_retvm_if(size == 0, MM_UTIL_ERROR_INVALID_PARAMETER, "size is 0");
+
+       mm_util_fenter();
+
+       if (!g_file_set_contents(path, (const gchar *)data, (gssize)size, &error)) {
+               mm_util_error("g_file_set_contents error(%s: %s)", path, (error ? error->message : "none"));
+               if (error)
+                       g_error_free(error);
+               return MM_UTIL_ERROR_INVALID_PARAMETER;
+       }
+
+       mm_util_fleave();
+
+       return MM_UTIL_ERROR_NONE;
 }
+
index f0e652e..f635466 100644 (file)
@@ -453,23 +453,9 @@ static int __gif_encode_close_file(GifFileType *gft)
 
 static int __write_gif_to_file(gif_file_s *handle, const char *path)
 {
-       int ret = MM_UTIL_ERROR_NONE;
-       FILE *fp = NULL;
-
        mm_util_retvm_if(!handle, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid handle");
-       mm_util_retvm_if((!handle->io_buf.buf || handle->io_buf.buf_size == 0), MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid io_buf");
-       mm_util_retvm_if(!MMUTIL_STRING_VALID(path), MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid path");
-
-       ret = mm_util_safe_fopen(path, "wb", &fp);
-       mm_util_retvm_if(ret != MM_UTIL_ERROR_NONE, ret, "mm_util_safe_fopen fail (%d)", ret);
 
-       ret = mm_util_safe_fwrite(fp, handle->io_buf.buf, handle->io_buf.buf_size);
-       if (ret != MM_UTIL_ERROR_NONE)
-               mm_util_error("mm_util_safe_fwrite fail (%d)", ret);
-
-       mm_util_safe_fclose(fp);
-
-       return ret;
+       return mm_util_file_write(path, handle->io_buf.buf, handle->io_buf.buf_size);
 }
 
 static int __write_gif_to_buffer(gif_file_s *handle, void **buffer, size_t *buffer_size)
index feea015..6905e85 100644 (file)
@@ -27,6 +27,7 @@
 #include <limits.h>
 #include <mm_util_gif.h>
 #include <mm_util_image.h>
+#include <mm_util_private.h>
 #include <tzplatform_config.h>
 
 #define SAFE_FREE(x)           { if (x != NULL) { free(x); x = NULL; } }
@@ -68,84 +69,6 @@ static size_t g_readed_size = 0;
 
 static mm_util_image_h g_decoded_data = NULL;
 
-static gboolean _read_file(char *path, void **data, size_t *length)
-{
-       FILE *fp = NULL;
-       long len = 0;
-
-       if (!path || !data || length == 0) {
-               fprintf(stderr, "\t[GIF_testsuite] invalid data\n");
-               return FALSE;
-       }
-
-       fprintf(stderr, "\t[GIF_testsuite] %s read\n", path);
-
-       fp = fopen(path, "r");
-       if (fp == NULL) {
-               fprintf(stderr, "\t[GIF_testsuite] fopen failed (%d) \n", errno);
-               return FALSE;
-       }
-
-       if (fseek(fp, 0, SEEK_END) < 0) {
-               fprintf(stderr, "\t[GIF_testsuite] fseek failed \n");
-               fclose(fp);
-               return FALSE;
-       }
-
-       len = ftell(fp);
-       if (len < 0) {
-               fprintf(stderr, "\t[GIF_testsuite] ftell failed \n");
-               fclose(fp);
-               return FALSE;
-       }
-
-       rewind(fp);
-       *data = g_malloc0(len);
-       *length = fread(*data, 1, (size_t)len, fp);
-       if (*length != len) {
-               fprintf(stderr, "\t[GIF_testsuite] fread failed \n");
-       }
-
-       fclose(fp);
-
-       *length = (size_t)len;
-
-       fprintf(stderr, "\t[GIF_testsuite] %s %zu read DONE\n", path, *length);
-
-       return TRUE;
-}
-
-static gboolean _write_file(const char *path, void *data, size_t length)
-{
-       FILE *fp = NULL;
-       size_t len = 0;
-
-       if (!path || !data || length == 0) {
-               fprintf(stderr, "\t[GIF_testsuite] invalid data\n");
-               return FALSE;
-       }
-
-       fprintf(stderr, "\t[GIF_testsuite] %s %p %zu write\n", path, data, length);
-
-       fp = fopen(path, "w");
-       if (fp == NULL) {
-               fprintf(stderr, "\t[GIF_testsuite] fopen failed (%d) \n", errno);
-               return FALSE;
-       }
-
-       len = fwrite(data, 1, length, fp);
-       if (len != length) {
-               fprintf(stderr, "\t[GIF_testsuite] fwrite failed \n");
-       }
-
-       fclose(fp);
-       fp = NULL;
-
-       fprintf(stderr, "\t[GIF_testsuite] %s write DONE\n", path);
-
-       return TRUE;
-}
-
 gboolean _get_input_data(const char *argv, const long min, const long max, int *data)
 {
        if (argv == NULL || strlen(argv) == 0)
@@ -225,15 +148,17 @@ gboolean _test_decode(const test_mode_e mode)
                        fprintf(stderr, "\t[GIF_testsuite] mm_image_get_image failed %d\n", ret);
                        return FALSE;
                }
-               if (FALSE == _write_file(DECODE_FILE_PATH, data, size)) {
-                       fprintf(stderr, "\t[GIF_testsuite] writing decoded data failed : %s\n", DECODE_FILE_PATH);
+               ret = mm_util_file_write(DECODE_FILE_PATH, data, size);
+               if (ret != MM_UTIL_ERROR_NONE) {
+                       fprintf(stderr, "\t[GIF_testsuite] mm_util_file_write failed %d\n", ret);
                        SAFE_FREE(data);
                        return FALSE;
                }
                SAFE_FREE(data);
        } else if (mode == TEST_DECODE_MEMORY) {
-               if (FALSE == _read_file(g_path, &g_readed_data, &g_readed_size)) {
-                       fprintf(stderr, "\t[GIF_testsuite] reading file error\n");
+               ret = mm_util_file_read(g_path, &g_readed_data, &g_readed_size);
+               if (ret != MM_UTIL_ERROR_NONE) {
+                       fprintf(stderr, "\t[GIF_testsuite] mm_util_file_read failed %d\n", ret);
                        return FALSE;
                }
 
@@ -247,8 +172,9 @@ gboolean _test_decode(const test_mode_e mode)
                        fprintf(stderr, "\t[GIF_testsuite] mm_image_get_image failed %d\n", ret);
                        return FALSE;
                }
-               if (FALSE == _write_file(DECODE_MEM_PATH, data, size)) {
-                       fprintf(stderr, "\t[GIF_testsuite] writing decoded data failed : %s\n", DECODE_MEM_PATH);
+               ret = mm_util_file_write(DECODE_MEM_PATH, data, size);
+               if (ret != MM_UTIL_ERROR_NONE) {
+                       fprintf(stderr, "\t[GIF_testsuite] mm_util_file_write failed %d\n", ret);
                        SAFE_FREE(data);
                        return FALSE;
                }
@@ -268,10 +194,12 @@ gboolean _test_encode(const test_mode_e mode)
        if ((mode != TEST_ENCODE_FILE) && (mode != TEST_ENCODE_MEMORY))
                return TRUE;
 
-       if (FALSE == _read_file(g_path, &g_readed_data, &g_readed_size)) {
-               fprintf(stderr, "\t[GIF_testsuite] reading file error\n");
+       ret = mm_util_file_read(g_path, &g_readed_data, &g_readed_size);
+       if (ret != MM_UTIL_ERROR_NONE) {
+               fprintf(stderr, "\t[GIF_testsuite] mm_util_file_read failed %d\n", ret);
                return FALSE;
        }
+
        ret = mm_image_create_image(g_width, g_height, MM_UTIL_COLOR_RGBA, (unsigned char *)g_readed_data, g_readed_size, &g_decoded_data);
        if (ret != MM_UTIL_ERROR_NONE) {
                fprintf(stderr, "\t[GIF_testsuite] mm_image_create_image failed : %d\n", ret);
@@ -292,8 +220,10 @@ gboolean _test_encode(const test_mode_e mode)
                        SAFE_FREE(encoded_data);
                        return FALSE;
                }
-               if (FALSE == _write_file(ENCODE_MEM_PATH, encoded_data, encoded_size)) {
-                       fprintf(stderr, "\t[GIF_testsuite] writing decoded data failed : %s\n", ENCODE_MEM_PATH);
+
+               ret = mm_util_file_write(ENCODE_MEM_PATH, encoded_data, encoded_size);
+               if (ret != MM_UTIL_ERROR_NONE) {
+                       fprintf(stderr, "\t[GIF_testsuite] mm_util_file_write failed %d\n", ret);
                        SAFE_FREE(encoded_data);
                        return FALSE;
                }
index ea4da62..e4c7680 100644 (file)
@@ -22,6 +22,7 @@
 #include <mm_util_heif.h>
 #include <mm_util_image.h>
 #include <mm_util_jpeg.h>
+#include <mm_util_private.h>
 
 #define SAFE_FREE(x)           { g_free(x); x = NULL; }
 #define SAFE_IMAGE_FREE(x)     { if (x != NULL) { mm_image_destroy_image(x); x = NULL; } }
@@ -46,7 +47,7 @@ static char *g_path = NULL;
 static int g_color = MM_UTIL_COLOR_RGB24;
 
 /* for reading file */
-static gchar *g_readed_data = NULL;
+static void *g_readed_data = NULL;
 static gsize g_readed_size = 0;
 
 /* for saving result */
@@ -151,7 +152,6 @@ static gboolean __get_arguments(int argc, char *argv[])
 static gboolean __test_decode(const heif_test_mode_e mode, mm_util_color_format_e color, const char *path)
 {
        int ret = 0;
-       GError *error = NULL;
 
        if (!path) {
                g_print("\t[HEIF_testsuite] No-Error\n");
@@ -166,9 +166,9 @@ static gboolean __test_decode(const heif_test_mode_e mode, mm_util_color_format_
                        return FALSE;
                }
        } else if (mode == TEST_DECODE_BUFFER) {
-               if (!g_file_get_contents(g_path, &g_readed_data, &g_readed_size, &error)) {
-                       g_print("\t[HEIF_testsuite] reading file error(%s)\n", (error ? error->message : "none"));
-                       g_error_free(error);
+               ret = mm_util_file_read(g_path, &g_readed_data, &g_readed_size);
+               if (ret != MM_UTIL_ERROR_NONE) {
+                       g_print("\t[HEIF_testsuite] mm_util_file_read failed %d\n", ret);
                        return FALSE;
                }
 
index 7589011..8954973 100644 (file)
@@ -27,6 +27,7 @@
 #include <errno.h>
 #include <mm_util_imgp.h>
 #include <mm_util_image.h>
+#include <mm_util_private.h>
 #include <limits.h>
 #include <tzplatform_config.h>
 
@@ -64,84 +65,6 @@ typedef struct {
 static input_params g_args;
 static output_values g_transformed;
 
-static gboolean _read_file(char *path, void **data, size_t *length)
-{
-       FILE *fp = NULL;
-       long len = 0;
-
-       if (!path || !data || length == 0) {
-               fprintf(stderr, "\t[IMGP_testsuite] invalid data\n");
-               return FALSE;
-       }
-
-       fprintf(stderr, "\t[IMGP_testsuite] %s read\n", path);
-
-       fp = fopen(path, "r");
-       if (fp == NULL) {
-               fprintf(stderr, "\t[IMGP_testsuite] fopen failed (%d) \n", errno);
-               return FALSE;
-       }
-
-       if (fseek(fp, 0, SEEK_END) < 0) {
-               fprintf(stderr, "\t[IMGP_testsuite] fseek failed \n");
-               fclose(fp);
-               return FALSE;
-       }
-
-       len = ftell(fp);
-       if (len < 0) {
-               fprintf(stderr, "\t[IMGP_testsuite] ftell failed \n");
-               fclose(fp);
-               return FALSE;
-       }
-
-       rewind(fp);
-       *data = g_malloc0(len);
-       *length = fread(*data, 1, (size_t)len, fp);
-       if (*length != len) {
-               fprintf(stderr, "\t[IMGP_testsuite] fread failed \n");
-       }
-
-       fclose(fp);
-
-       *length = (size_t)len;
-
-       fprintf(stderr, "\t[IMGP_testsuite] %s %zu read DONE\n", path, *length);
-
-       return TRUE;
-}
-
-static gboolean _write_file(const char *path, void *data, size_t length)
-{
-       FILE *fp = NULL;
-       size_t len = 0;
-
-       if (!path || !data || length == 0) {
-               fprintf(stderr, "\t[IMGP_testsuite] invalid data\n");
-               return FALSE;
-       }
-
-       fprintf(stderr, "\t[IMGP_testsuite] %s %p %zu write\n", path, data, length);
-
-       fp = fopen(path, "w");
-       if (fp == NULL) {
-               fprintf(stderr, "\t[IMGP_testsuite] fopen failed (%d) \n", errno);
-               return FALSE;
-       }
-
-       len = fwrite(data, 1, length, fp);
-       if (len != length) {
-               fprintf(stderr, "\t[IMGP_testsuite] fwrite failed \n");
-       }
-
-       fclose(fp);
-       fp = NULL;
-
-       fprintf(stderr, "\t[IMGP_testsuite] %s write DONE\n", path);
-
-       return TRUE;
-}
-
 gboolean _get_input_data(const char *argv, const unsigned long min, const unsigned long max, unsigned int *data)
 {
        if (argv == NULL || strlen(argv) == 0)
@@ -277,7 +200,8 @@ int main(int argc, char *argv[])
        }
 
        /* read input file */
-       if (FALSE == _read_file(g_args.path, &g_args.data, &g_args.size)) {
+       ret = mm_util_file_read(g_args.path, &g_args.data, &g_args.size);
+       if (ret != MM_UTIL_ERROR_NONE) {
                fprintf(stderr, "\t[IMGP_testsuite] reading file(%s) error\n", g_args.path);
                goto TEST_FAIL;
        }
@@ -330,7 +254,8 @@ int main(int argc, char *argv[])
        snprintf(g_transformed.path, PATH_MAX, "result_%s_%ux%u.raw", g_args.cmd, g_transformed.width, g_transformed.height);
 
        /* write output file */
-       if (FALSE == _write_file(g_transformed.path, (void *)g_transformed.data, g_transformed.size)) {
+       ret = mm_util_file_write(g_transformed.path, (void *)g_transformed.data, g_transformed.size);
+       if (ret != MM_UTIL_ERROR_NONE) {
                fprintf(stderr, "\t[IMGP_testsuite] writing file(%s) error\n", g_transformed.path);
                goto TEST_FAIL;
        }
index f97880d..0e5a902 100644 (file)
@@ -27,6 +27,7 @@
 #include <limits.h>
 #include <mm_util_jpeg.h>
 #include <mm_util_image.h>
+#include <mm_util_private.h>
 #include <tzplatform_config.h>
 
 #define SAFE_FREE(x)           { if (x != NULL) { free(x); x = NULL; } }
@@ -70,84 +71,6 @@ static size_t g_readed_size = 0;
 
 static mm_util_image_h g_decoded_data = NULL;
 
-static gboolean _read_file(char *path, void **data, size_t *length)
-{
-       FILE *fp = NULL;
-       long len = 0;
-
-       if (!path || !data || length == 0) {
-               fprintf(stderr, "\t[JPEG_testsuite] invalid data\n");
-               return FALSE;
-       }
-
-       fprintf(stderr, "\t[JPEG_testsuite] %s read\n", path);
-
-       fp = fopen(path, "r");
-       if (fp == NULL) {
-               fprintf(stderr, "\t[JPEG_testsuite] fopen failed (%d) \n", errno);
-               return FALSE;
-       }
-
-       if (fseek(fp, 0, SEEK_END) < 0) {
-               fprintf(stderr, "\t[JPEG_testsuite] fseek failed \n");
-               fclose(fp);
-               return FALSE;
-       }
-
-       len = ftell(fp);
-       if (len < 0) {
-               fprintf(stderr, "\t[JPEG_testsuite] ftell failed \n");
-               fclose(fp);
-               return FALSE;
-       }
-
-       rewind(fp);
-       *data = g_malloc0(len);
-       *length = fread(*data, 1, (size_t)len, fp);
-       if (*length != len) {
-               fprintf(stderr, "\t[JPEG_testsuite] fread failed \n");
-       }
-
-       fclose(fp);
-
-       *length = (size_t)len;
-
-       fprintf(stderr, "\t[JPEG_testsuite] %s %zu read DONE\n", path, *length);
-
-       return TRUE;
-}
-
-static gboolean _write_file(const char *path, void *data, size_t length)
-{
-       FILE *fp = NULL;
-       size_t len = 0;
-
-       if (!path || !data || length == 0) {
-               fprintf(stderr, "\t[JPEG_testsuite] invalid data\n");
-               return FALSE;
-       }
-
-       fprintf(stderr, "\t[JPEG_testsuite] %s %p %zu write\n", path, data, length);
-
-       fp = fopen(path, "w");
-       if (fp == NULL) {
-               fprintf(stderr, "\t[JPEG_testsuite] fopen failed (%d) \n", errno);
-               return FALSE;
-       }
-
-       len = fwrite(data, 1, length, fp);
-       if (len != length) {
-               fprintf(stderr, "\t[JPEG_testsuite] fwrite failed \n");
-       }
-
-       fclose(fp);
-       fp = NULL;
-
-       fprintf(stderr, "\t[JPEG_testsuite] %s write DONE\n", path);
-
-       return TRUE;
-}
-
 gboolean _get_input_data(const char *argv, const long min, const long max, int *data)
 {
        if (argv == NULL || strlen(argv) == 0)
@@ -249,15 +172,17 @@ gboolean _test_decode(const jpeg_test_mode_e mode)
                        fprintf(stderr, "\t[JPEG_testsuite] mm_image_get_image failed %d\n", ret);
                        return FALSE;
                }
-               if (FALSE == _write_file(DECODE_FILE_PATH, data, size)) {
-                       fprintf(stderr, "\t[JPEG_testsuite] writing decoded data failed : %s\n", DECODE_FILE_PATH);
+               ret = mm_util_file_write(DECODE_FILE_PATH, data, size);
+               if (ret != MM_UTIL_ERROR_NONE) {
+                       fprintf(stderr, "\t[JPEG_testsuite] mm_util_file_write failed %d\n", ret);
                        SAFE_FREE(data);
                        return FALSE;
                }
                SAFE_FREE(data);
        } else if (mode == TEST_DECODE_MEMORY) {
-               if (FALSE == _read_file(g_path, &g_readed_data, &g_readed_size)) {
-                       fprintf(stderr, "\t[JPEG_testsuite] reading file error\n");
+               ret = mm_util_file_read(g_path, &g_readed_data, &g_readed_size);
+               if (ret != MM_UTIL_ERROR_NONE) {
+                       fprintf(stderr, "\t[JPEG_testsuite] mm_util_file_read failed %d\n", ret);
                        return FALSE;
                }
 
@@ -271,8 +196,9 @@ gboolean _test_decode(const jpeg_test_mode_e mode)
                        fprintf(stderr, "\t[JPEG_testsuite] mm_image_get_image failed %d\n", ret);
                        return FALSE;
                }
-               if (FALSE == _write_file(DECODE_MEM_PATH, data, size)) {
-                       fprintf(stderr, "\t[JPEG_testsuite] writing decoded data failed : %s\n", DECODE_MEM_PATH);
+               ret = mm_util_file_write(DECODE_MEM_PATH, data, size);
+               if (ret != MM_UTIL_ERROR_NONE) {
+                       fprintf(stderr, "\t[JPEG_testsuite] mm_util_file_write failed %d\n", ret);
                        SAFE_FREE(data);
                        return FALSE;
                }
@@ -292,8 +218,9 @@ gboolean _test_encode(const jpeg_test_mode_e mode)
        if ((mode != TEST_ENCODE_FILE) && (mode != TEST_ENCODE_MEMORY))
                return TRUE;
 
-       if (FALSE == _read_file(g_path, &g_readed_data, &g_readed_size)) {
-               fprintf(stderr, "\t[JPEG_testsuite] reading file error\n");
+       ret = mm_util_file_read(g_path, &g_readed_data, &g_readed_size);
+       if (ret != MM_UTIL_ERROR_NONE) {
+               fprintf(stderr, "\t[JPEG_testsuite] mm_util_file_read failed %d\n", ret);
                return FALSE;
        }
        ret = mm_image_create_image(g_width, g_height, g_color, (unsigned char *)g_readed_data,
@@ -317,8 +244,9 @@ gboolean _test_encode(const jpeg_test_mode_e mode)
                        SAFE_FREE(encoded_data);
                        return FALSE;
                }
-               if (FALSE == _write_file(ENCODE_MEM_PATH, encoded_data, encoded_size)) {
-                       fprintf(stderr, "\t[JPEG_testsuite] writing decoded data failed : %s\n", ENCODE_MEM_PATH);
+               ret = mm_util_file_write(ENCODE_MEM_PATH, encoded_data, encoded_size);
+               if (ret != MM_UTIL_ERROR_NONE) {
+                       fprintf(stderr, "\t[JPEG_testsuite] mm_util_file_write failed %d\n", ret);
                        SAFE_FREE(encoded_data);
                        return FALSE;
                }
index 723767a..9d17871 100644 (file)
@@ -18,7 +18,6 @@
 #include <stdint.h>
 #include <fcntl.h>
 #include <glib.h>
-#include <glib/gstdio.h>
 #include <inttypes.h>
 #include <unistd.h>
 
@@ -29,7 +28,6 @@
 #include "mm_util_jxl.h"
 #include "mm_util_private.h"
 
-
 // TODO: it will be moved into .ini of mmfw_config
 #define NUM_OF_THREADS 4
 
@@ -92,29 +90,6 @@ static int __convert_enc_error(JxlEncoderStatus status)
        return err;
 }
 
-static int __get_file_size(const char *path, size_t *size)
-{
-       GStatBuf buf;
-
-       mm_util_retvm_if(!path, MM_UTIL_ERROR_INVALID_PARAMETER, "invalid path");
-       mm_util_retvm_if(!size, MM_UTIL_ERROR_INVALID_PARAMETER, "invalid size");
-
-       mm_util_fenter();
-
-       if (g_stat(path, &buf) < 0) {
-               mm_util_stderror("Fail to open path");
-               return MM_UTIL_ERROR_INVALID_PARAMETER;
-       }
-
-       *size = (size_t)buf.st_size;
-
-       mm_util_info("size: %zu", *size);
-
-       mm_util_fleave();
-
-       return MM_UTIL_ERROR_NONE;
-}
-
 static int __get_decoded_data(mm_util_image_h decoded, uint32_t *width, uint32_t *height, JxlPixelFormat *format, uint8_t **pixels, size_t *pixels_size)
 {
        mm_image_info_s *_image = (mm_image_info_s *)decoded;
@@ -133,59 +108,6 @@ static int __get_decoded_data(mm_util_image_h decoded, uint32_t *width, uint32_t
        return MM_UTIL_ERROR_NONE;
 }
 
-static bool __read_file(const char *path, void **data, size_t size)
-{
-       gsize read_n = 0;
-       gchar *read_data = NULL;
-       GError *error = NULL;
-
-       mm_util_retvm_if(!path, false, "invalid path");
-       mm_util_retvm_if(!data, false, "invalid data");
-       mm_util_retvm_if(size == 0, false, "invalid size");
-
-       mm_util_fenter();
-
-       if (!g_file_get_contents(path, &read_data, &read_n, &error)) {
-               mm_util_error("g_file_get_contents error(%s)", (error ? error->message : "none"));
-               g_error_free(error);
-               return false;
-       }
-
-       if (read_n != size) {
-               mm_util_stderror("read");
-               mm_util_error("read_n: %zu, size: %zu", read_n, size);
-               g_free(read_data);
-               return false;
-       }
-
-       *data = read_data;
-
-       mm_util_fleave();
-
-       return true;
-}
-
-static bool __write_file(const char *path, void *data, size_t size)
-{
-       GError *error = NULL;
-
-       mm_util_retvm_if(!path, false, "invalid path");
-       mm_util_retvm_if(!data, false, "invalid data");
-       mm_util_retvm_if(size == 0, false, "invalid size");
-
-       mm_util_fenter();
-
-       if (!g_file_set_contents(path, (const gchar *)data, (gssize)size, &error)) {
-               mm_util_error("g_file_set_contents error(%s)", (error ? error->message : "none"));
-               g_error_free(error);
-               return false;
-       }
-
-       mm_util_fleave();
-
-       return true;
-}
-
 static int __mm_util_decode_jpegxl(const void *buf, size_t buf_size, mm_util_color_format_e format, mm_util_image_h *decoded_image)
 {
        int ret = MM_UTIL_ERROR_NONE;
@@ -454,10 +376,7 @@ int mm_util_decode_jxl_from_file(const char *path, mm_util_color_format_e format
        void *encoded_buf = NULL;
        size_t encoded_buf_size = 0;
 
-       mm_util_retvm_if(__get_file_size(path, &encoded_buf_size) != MM_UTIL_ERROR_NONE,
-                               MM_UTIL_ERROR_INVALID_PARAMETER, "invalid path %s", path);
-       mm_util_retvm_if(!__read_file(path, &encoded_buf, encoded_buf_size),
-                               MM_UTIL_ERROR_INVALID_PARAMETER, "invalid path %s:%zu", path, encoded_buf_size);
+       mm_util_retvm_if(mm_util_file_read(path, &encoded_buf, &encoded_buf_size) != MM_UTIL_ERROR_NONE, MM_UTIL_ERROR_INVALID_PARAMETER, "invalid path %s:%zu", path, encoded_buf_size);
 
        ret =__mm_util_decode_jpegxl(encoded_buf, encoded_buf_size, format, decoded_image);
 
@@ -483,10 +402,9 @@ int mm_util_encode_jxl_to_file(mm_util_image_h decoded_image, mm_util_enc_opt_h
                return ret;
        }
 
-       if (!__write_file(path, encoded_buf, encoded_buf_size)) {
-               mm_util_error("failed to __write_file");
-               ret = MM_UTIL_ERROR_INVALID_PARAMETER;
-       }
+       ret = mm_util_file_write(path, encoded_buf, encoded_buf_size);
+       if (ret != MM_UTIL_ERROR_NONE)
+               mm_util_error("failed to __write_file(%d)", ret);
 
        g_free(encoded_buf);
 
index 935338a..00d4bd7 100644 (file)
@@ -21,6 +21,7 @@
 
 #include <mm_util_jxl.h>
 #include <mm_util_jpeg.h>
+#include <mm_util_private.h>
 
 #define SAFE_FREE(x)           { g_free(x); x = NULL; }
 #define SAFE_IMAGE_FREE(x)     { if (x != NULL) { mm_image_destroy_image(x); x = NULL; } }
@@ -53,7 +54,7 @@ static int g_color = MM_UTIL_COLOR_RGB24;
 static bool g_lossless = false;
 
 /* for reading file */
-static gchar *g_readed_data = NULL;
+static void *g_readed_data = NULL;
 static gsize g_readed_size = 0;
 
 /* for saving result */
@@ -169,11 +170,10 @@ static gboolean __get_arguments(int argc, char *argv[])
 static gboolean __get_decoded_data(void)
 {
        int ret = 0;
-       GError *error = NULL;
 
-       if (!g_file_get_contents(g_path, &g_readed_data, &g_readed_size, &error)) {
-               g_print("\t[JXL_testsuite] reading file error(%s)\n", (error ? error->message : "none"));
-               g_error_free(error);
+       ret = mm_util_file_read(g_path, &g_readed_data, &g_readed_size);
+       if (ret != MM_UTIL_ERROR_NONE) {
+               g_print("\t[JXL_testsuite] mm_util_file_read failed : %d\n", ret);
                return FALSE;
        }
        ret = mm_image_create_image(g_width, g_height, g_color,
@@ -215,7 +215,6 @@ static void __set_enc_opt(bool lossless)
 static gboolean __test_decode(const jxl_test_mode_e mode, mm_util_color_format_e color)
 {
        int ret = 0;
-       GError *error = NULL;
 
        SAFE_FREE(g_readed_data);
        SAFE_IMAGE_FREE(g_decoded_data);
@@ -231,9 +230,9 @@ static gboolean __test_decode(const jxl_test_mode_e mode, mm_util_color_format_e
                        return FALSE;
                }
        } else if (mode == TEST_DECODE_BUFFER) {
-               if (!g_file_get_contents(g_path, &g_readed_data, &g_readed_size, &error)) {
-                       g_print("\t[JXL_testsuite] reading file error(%s)\n", (error ? error->message : "none"));
-                       g_error_free(error);
+               ret = mm_util_file_read(g_path, &g_readed_data, &g_readed_size);
+               if (ret != MM_UTIL_ERROR_NONE) {
+                       g_print("\t[JXL_testsuite] mm_util_file_read failed : %d\n", ret);
                        return FALSE;
                }
 
@@ -258,7 +257,6 @@ static gboolean __test_encode(const jxl_test_mode_e mode, mm_util_color_format_e
        int ret = 0;
        void *encoded_data = NULL;
        size_t encoded_size = 0;
-       GError *error = NULL;
 
        if ((mode != TEST_ENCODE_FILE) && (mode != TEST_ENCODE_BUFFER))
                return TRUE;
@@ -277,10 +275,9 @@ static gboolean __test_encode(const jxl_test_mode_e mode, mm_util_color_format_e
                        SAFE_FREE(encoded_data);
                        return FALSE;
                }
-               if (FALSE == g_file_set_contents(g_test_filename[mode][color], encoded_data, encoded_size, &error)) {
-                       g_print("\t[JXL_testsuite] g_file_set_contents failed : %s\n", (error ? error->message : "none"));
-                       g_error_free(error);
-               }
+               ret = mm_util_file_write(g_test_filename[mode][color], encoded_data, encoded_size);
+               if (ret != MM_UTIL_ERROR_NONE)
+                       g_print("\t[JXL_testsuite] mm_util_file_write failed : %d\n", ret);
 
                SAFE_FREE(encoded_data);
        }
index ed7ab7c..50d7d58 100644 (file)
@@ -498,58 +498,6 @@ static int __mm_util_make_tmp_file(mm_util_img_codec_type type, char **path)
        return MM_UTIL_ERROR_NONE;
 }
 
-static int __mm_util_read_tmp_file(const char *path, void **data, size_t *length)
-{
-       int ret = MM_UTIL_ERROR_NONE;
-       FILE *fp = NULL;
-       char *_data = NULL;
-       long _length = 0;
-
-       mm_util_retvm_if(!path, MM_UTIL_ERROR_INVALID_PARAMETER, "invalid path");
-       mm_util_retvm_if(!data, MM_UTIL_ERROR_INVALID_PARAMETER, "invalid data");
-       mm_util_retvm_if(!length, MM_UTIL_ERROR_INVALID_PARAMETER, "invalid length");
-
-       mm_util_sec_debug("read path [%s]", path);
-
-       fp = fopen(path, "r");
-       if (!fp) {
-               mm_util_stderror("fopen failed");
-               return MM_UTIL_ERROR_INVALID_OPERATION;
-       }
-
-       if (fseek(fp, 0, SEEK_END) < 0) {
-               mm_util_stderror("fseek failed");
-               ret = MM_UTIL_ERROR_INVALID_OPERATION;
-               goto ERROR;
-       }
-
-       _length = ftell(fp);
-       if (_length < 0) {
-               mm_util_stderror("ftell failed");
-               ret = MM_UTIL_ERROR_INVALID_OPERATION;
-               goto ERROR;
-       }
-
-       rewind(fp);
-       _data = g_malloc0(_length);
-
-       if (fread(_data, 1, _length, fp) != _length) {
-               mm_util_stderror("fread failed");
-               ret = MM_UTIL_ERROR_INVALID_OPERATION;
-               g_free(_data);
-               goto ERROR;
-       }
-
-       *data = _data;
-       *length = (size_t)_length;
-
-ERROR:
-
-       fclose(fp);
-
-       return ret;
-}
-
 int mm_util_rotate_B_B(mm_util_image_h src_handle, mm_util_rotate_type_e rotation, mm_util_image_h *dst_handle)
 {
        int ret = MM_UTIL_ERROR_NONE;
@@ -1065,9 +1013,9 @@ int mm_util_encode_image_to_buffer(mm_util_image_h decoded_image, mm_util_enc_op
                goto ERROR;
        }
 
-       ret = __mm_util_read_tmp_file(tmp_file, buf, buf_size);
+       ret = mm_util_file_read(tmp_file, buf, buf_size);
        if (ret != MM_UTIL_ERROR_NONE)
-               mm_util_error("Error: __mm_util_read_tmp_file failed.");
+               mm_util_error("Error: mm_util_file_read failed.");
 
 ERROR:
 
index 43b1d57..dd9ca86 100644 (file)
@@ -23,6 +23,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <mm_util_magick.h>
+#include <mm_util_private.h>
 
 typedef enum {
        MM_UTIL_RESIZE,
@@ -96,7 +97,6 @@ static void __save_to_file(mm_util_image_h handle, const char *out_path)
        unsigned int height = 0;
        size_t size = 0;
        mm_util_color_format_e format = MM_UTIL_COLOR_NUM;
-       GError *error = NULL;
 
        ret = mm_image_get_image(handle, &width, &height, &format, &buffer, &size);
        if (ret != MM_UTIL_ERROR_NONE) {
@@ -106,11 +106,11 @@ static void __save_to_file(mm_util_image_h handle, const char *out_path)
 
        printf("[save to file] buffer[%p], width[%u], height[%u], size[%zu], format [%d], out_path [%s]\n", buffer, width, height, size, format, out_path);
 
-       if (!g_file_set_contents(out_path, (gchar *)buffer, (gssize)size, &error))
-               printf("Fail g_file_set_contents [%s: %s]", out_path, (error ? error->message : "none"));
+       ret = mm_util_file_write(out_path, buffer, size);
+       if (ret != MM_UTIL_ERROR_NONE)
+               printf("Fail mm_util_file_write [%d]\n", ret);
 
        MM_UTIL_SAFE_FREE(buffer);
-       g_error_free(error);
 
        return;
 }
@@ -493,24 +493,23 @@ static int __magick_decenc_buffer_png_test(mm_util_color_format_e format, unsign
        char dst_path[1024] = {0, };
        mm_util_image_h decoded_image = NULL;
        mm_util_enc_opt_h enc_option = NULL;
-       gchar *src_buffer = NULL;
-       gsize src_buffer_size = 0;
+       void *src_buffer = NULL;
+       size_t src_buffer_size = 0;
        void *buffer = NULL;
        size_t buffer_size = 0;
-       GError *error = NULL;
 
        memset(dst_path, 0x00, sizeof(dst_path));
        snprintf(dst_path, sizeof(dst_path), "/opt/usr/home/owner/media/decenc_buffer_png_test_%d_%u.png", format, comp_level);
 
        printf("* PNG test [%s] \n", dst_path);
 
-       if (!g_file_get_contents(src_path, &src_buffer, &src_buffer_size, &error)) {
-               printf("Fail g_file_get_contents [%s: %s]\n", src_path, (error ? error->message : "none"));
-               g_error_free(error);
+       ret = mm_util_file_read(src_path, &src_buffer, &src_buffer_size);
+       if (ret != MM_UTIL_ERROR_NONE) {
+               printf("Fail mm_util_file_read [%s: %d]\n", src_path, ret);
                return ret;
        }
 
-       ret = mm_util_decode_image_from_buffer((void *)src_buffer, (size_t)src_buffer_size, format, &decoded_image);
+       ret = mm_util_decode_image_from_buffer(src_buffer, src_buffer_size, format, &decoded_image);
        if (ret != MM_UTIL_ERROR_NONE) {
                printf("Fail mm_util_decode_image_from_buffer [0x%x]\n", ret);
                g_free(src_buffer);
@@ -543,14 +542,14 @@ static int __magick_decenc_buffer_png_test(mm_util_color_format_e format, unsign
                goto END;
        }
 
-       if (!g_file_set_contents(dst_path, (gchar *)buffer, (gssize)buffer_size, &error))
-               printf("Fail g_file_set_contents [%s: %s]", dst_path, (error ? error->message : "none"));
+       ret = mm_util_file_write(dst_path, buffer, buffer_size);
+       if (ret != MM_UTIL_ERROR_NONE)
+               printf("Fail mm_util_file_write [0x%x]\n", ret);
 
 END:
        mm_util_enc_opt_destroy(enc_option);
        mm_image_destroy_image(decoded_image);
        g_free(buffer);
-       g_error_free(error);
 
        return ret;
 }
@@ -610,24 +609,23 @@ static int __magick_decenc_buffer_webp_test(mm_util_color_format_e format, bool
        char dst_path[1024] = {0, };
        mm_util_image_h decoded_image = NULL;
        mm_util_enc_opt_h enc_option = NULL;
-       gchar *src_buffer = NULL;
-       gsize src_buffer_size = 0;
+       void *src_buffer = NULL;
+       size_t src_buffer_size = 0;
        void *buffer = NULL;
        size_t buffer_size = 0;
-       GError *error = NULL;
 
        memset(dst_path, 0x00, sizeof(dst_path));
        snprintf(dst_path, sizeof(dst_path), "/opt/usr/home/owner/media/decenc_buffer_webp_test_%d_%s.webp", format, (lossless ? "ll" : "nor"));
 
        printf("* WEBP test [%s] \n", dst_path);
 
-       if (!g_file_get_contents(src_path, &src_buffer, &src_buffer_size, &error)) {
-               printf("Fail g_file_get_contents [%s: %s]\n", src_path, (error ? error->message : "none"));
-               g_error_free(error);
+       ret = mm_util_file_read(src_path, &src_buffer, &src_buffer_size);
+       if (ret != MM_UTIL_ERROR_NONE) {
+               printf("Fail mm_util_file_read [%s: %d]\n", src_path, ret);
                return ret;
        }
 
-       ret = mm_util_decode_image_from_buffer((void *)src_buffer, (size_t)src_buffer_size, format, &decoded_image);
+       ret = mm_util_decode_image_from_buffer(src_buffer, src_buffer_size, format, &decoded_image);
        if (ret != MM_UTIL_ERROR_NONE) {
                printf("Fail mm_util_decode_image_from_buffer [0x%x]\n", ret);
                g_free(src_buffer);
@@ -660,14 +658,14 @@ static int __magick_decenc_buffer_webp_test(mm_util_color_format_e format, bool
                goto END;
        }
 
-       if (!g_file_set_contents(dst_path, (gchar *)buffer, (gssize)buffer_size, &error))
-               printf("Fail g_file_set_contents [%s: %s]", dst_path, (error ? error->message : "none"));
+       ret = mm_util_file_write(dst_path, buffer, buffer_size);
+       if (ret != MM_UTIL_ERROR_NONE)
+               printf("Fail mm_util_file_write [0x%x]\n", ret);
 
 END:
        mm_util_enc_opt_destroy(enc_option);
        mm_image_destroy_image(decoded_image);
        g_free(buffer);
-       g_error_free(error);
 
        return ret;
 }
index dba051e..c66ca75 100644 (file)
@@ -1,6 +1,6 @@
 Name:       libmm-utility
 Summary:    Multimedia Framework Utility Library
-Version:    0.4.2
+Version:    0.4.3
 Release:    0
 Group:      System/Libraries
 License:    Apache-2.0
index 84967ca..b85413c 100644 (file)
@@ -276,7 +276,6 @@ int mm_util_webp_anim_enc_save_to_file(mm_util_webp_anim_enc_h anim_enc_h, const
        int ret = MM_UTIL_ERROR_NONE;
        mm_util_webp_anim_enc_t *anim_enc = (mm_util_webp_anim_enc_t *)anim_enc_h;
        WebPData webp_data;
-       GError *g_error = NULL;
 
        mm_util_retvm_if(!anim_enc_h, MM_UTIL_ERROR_INVALID_PARAMETER, "invalid anim_enc_h");
        mm_util_retvm_if(anim_enc->frame_count == 0, MM_UTIL_ERROR_INVALID_PARAMETER, "invalid frame_count");
@@ -289,10 +288,10 @@ int mm_util_webp_anim_enc_save_to_file(mm_util_webp_anim_enc_h anim_enc_h, const
                goto END;
        }
 
-       if (!g_file_set_contents(path, (gchar *)webp_data.bytes, (gssize)webp_data.size, &g_error))
-               mm_util_error("Error! g_file_set_contents(%s)", (g_error ? g_error->message : "none"));
+       ret = mm_util_file_write(path, (void *)webp_data.bytes, webp_data.size);
+       if (ret != MM_UTIL_ERROR_NONE)
+               mm_util_error("Error! mm_util_file_write(%d)", ret);
 
-       g_error_free(g_error);
 END:
 
        WebPDataClear(&webp_data);
index e6e3663..0278980 100644 (file)
@@ -24,6 +24,7 @@
 #include <mm_util_image.h>
 #include <mm_util_magick.h>
 #include <mm_util_webp.h>
+#include <mm_util_private.h>
 #include <tzplatform_config.h>
 
 #define TEST_STRING_VALID(str) ((str != NULL && strlen(str) > 0) ? TRUE : FALSE)
@@ -218,7 +219,6 @@ static gboolean __test_encode_to_buffer()
        /* for encoding webp to memory */
        void *encoded_data = NULL;
        size_t encoded_size = 0;
-       GError *g_error = NULL;
 
        ret = mm_util_webp_anim_enc_create(&anim_enc);
        if (ret != MM_UTIL_ERROR_NONE) {
@@ -245,11 +245,10 @@ static gboolean __test_encode_to_buffer()
                fprintf(stderr, "\t[WEBP_testsuite] mm_util_webp_anim_enc_save_to_buffer failed : %d\n", ret);
                goto END;
        }
-       if (!g_file_set_contents(ENCODE_MEM_PATH, (gchar *)encoded_data, (gssize)encoded_size, &g_error)) {
-               fprintf(stderr, "\t[WEBP_testsuite] g_file_set_contents failed : %s\n", ENCODE_MEM_PATH);
-               g_error_free(g_error);
-               goto END;
-       }
+
+       ret = mm_util_file_write(ENCODE_MEM_PATH, encoded_data, encoded_size);
+       if (ret != MM_UTIL_ERROR_NONE)
+               fprintf(stderr, "\t[WEBP_testsuite] mm_util_file_write failed : %d\n", ret);
 
 END:
        mm_util_webp_anim_enc_destroy(anim_enc);