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");
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];
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;
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;
}