Remove graphic_control_block from gif_image_s 65/191165/1
authorjiyong.min <jiyong.min@samsung.com>
Fri, 12 Oct 2018 03:59:50 +0000 (12:59 +0900)
committerjiyong.min <jiyong.min@samsung.com>
Fri, 12 Oct 2018 04:00:50 +0000 (13:00 +0900)
Change-Id: I0226464617487cc851fa5d1897cfd719dec67c83

gif/include/mm_util_gif_private.h [changed mode: 0755->0644]
gif/mm_util_gif.c

old mode 100755 (executable)
new mode 100644 (file)
index 1c856dc..f45c2bc
@@ -38,13 +38,14 @@ typedef struct {
        /* for giflib, Same as SavedImage */
        GifImageDesc image_desc;
        void *image_data;
+       int delay_time;
+
        int ext_block_count;
        ExtensionBlock *ext_blocks;
 
        /* for libmm */
        GifWord width;
        GifWord height;
-       GraphicsControlBlock graphic_control_block;
 } gif_image_s;
 
 typedef struct {
index 7977740..e05ed36 100644 (file)
@@ -565,6 +565,7 @@ int _gif_image_write_ext_blocks(gif_file_s *gif_file, gif_image_s *gif_image)
        int ret = MM_UTIL_ERROR_NONE;
        int i = 0;
        ExtensionBlock *_ext_block = NULL;
+       GraphicsControlBlock graphic_control_block;
 
        mm_util_retvm_if(gif_file == NULL, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter");
        mm_util_retvm_if(gif_image == NULL, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter");
@@ -573,7 +574,13 @@ int _gif_image_write_ext_blocks(gif_file_s *gif_file, gif_image_s *gif_image)
        mm_util_retvm_if(ret != MM_UTIL_ERROR_NONE, ret, "_gif_image_alloc_ext_block failed");
        mm_util_retvm_if(_ext_block->Bytes == NULL, MM_UTIL_ERROR_OUT_OF_MEMORY, "_gif_image_alloc_ext_block failed");
 
-       EGifGCBToExtension(&gif_image->graphic_control_block, _ext_block->Bytes);
+       /* use fixed graphics control */
+       graphic_control_block.DisposalMode = MM_UTIL_GIF_DISPOSAL_UNSPECIFIED;
+       graphic_control_block.UserInputFlag = FALSE;
+       graphic_control_block.TransparentColor = NO_TRANSPARENT_COLOR;
+       graphic_control_block.DelayTime = gif_image->delay_time;
+
+       EGifGCBToExtension(&graphic_control_block, _ext_block->Bytes);
 
        for (i = 0; i < gif_image->ext_block_count; i++) {
                _ext_block = &gif_image->ext_blocks[i];
@@ -696,9 +703,6 @@ int mm_util_gif_image_create(mm_gif_file_h gif_file_h, mm_gif_image_h *gif_image
        pImage->image_desc.Interlace = FALSE;   /* don't change this,  fixed value */
        pImage->ext_block_count = 0;
        pImage->ext_blocks = NULL;
-       pImage->graphic_control_block.DisposalMode = MM_UTIL_GIF_DISPOSAL_UNSPECIFIED;
-       pImage->graphic_control_block.UserInputFlag = FALSE;
-       pImage->graphic_control_block.TransparentColor = NO_TRANSPARENT_COLOR;
 
        *gif_image_h = (mm_gif_image_h)pImage;
 
@@ -734,7 +738,7 @@ int mm_util_gif_image_set_delay_time(mm_gif_image_h gif_image_h, const int delay
 
        mm_util_info("delay_time = %d", delay_time);
 
-       gif_image->graphic_control_block.DelayTime = delay_time;
+       gif_image->delay_time = delay_time;
 
        return MM_UTIL_ERROR_NONE;
 }