From: jiyong.min Date: Fri, 12 Oct 2018 04:06:49 +0000 (+0900) Subject: Remove `GifImageDesc` from gif_image_s X-Git-Tag: submit/tizen/20181106.000712^2~17 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=88fced775171f1eca5a538f794b0c9b5fe6da213;p=platform%2Fcore%2Fmultimedia%2Flibmm-utility.git Remove `GifImageDesc` from gif_image_s Change-Id: I5c8d9a8fdd2c6d95dfce3733c8a1853289735081 --- diff --git a/gif/include/mm_util_gif.h b/gif/include/mm_util_gif.h old mode 100755 new mode 100644 index 0d482e5..48fecec --- a/gif/include/mm_util_gif.h +++ b/gif/include/mm_util_gif.h @@ -60,7 +60,6 @@ int mm_util_encode_to_gif_memory(mm_gif_file_h gif_file_h, void **buffer, size_t /* a-gif extras */ int mm_util_gif_image_create(mm_gif_file_h gif_file_h, mm_gif_image_h *gif_image_h); -int mm_util_gif_image_set_position(mm_gif_image_h gif_image_h, const int left, const int top, const int width, const int height); int mm_util_gif_image_set_delay_time(mm_gif_image_h gif_image_h, const int delay_time); int mm_util_gif_image_set_image(mm_gif_image_h gif_image_h, const unsigned char *image_data); void mm_util_gif_image_destory(mm_gif_image_h gif_image_h); diff --git a/gif/include/mm_util_gif_private.h b/gif/include/mm_util_gif_private.h index f45c2bc..849cb18 100644 --- a/gif/include/mm_util_gif_private.h +++ b/gif/include/mm_util_gif_private.h @@ -36,16 +36,13 @@ typedef struct { typedef struct { /* for giflib, Same as SavedImage */ - GifImageDesc image_desc; + unsigned long width; + unsigned long height; void *image_data; int delay_time; int ext_block_count; ExtensionBlock *ext_blocks; - - /* for libmm */ - GifWord width; - GifWord height; } gif_image_s; typedef struct { diff --git a/gif/mm_util_gif.c b/gif/mm_util_gif.c index e05ed36..e4040f0 100644 --- a/gif/mm_util_gif.c +++ b/gif/mm_util_gif.c @@ -295,8 +295,8 @@ static int __gif_extract_rgb(gif_image_s *gif_image, unsigned long num_of_pixels *blue = blueP; mm_util_retvm_if((redP == NULL || greenP == NULL || blueP == NULL), MM_UTIL_ERROR_OUT_OF_MEMORY, "Memory allocation failed"); - for (i = 0; i < gif_image->image_desc.Height; i++) { - for (j = 0; j < gif_image->image_desc.Width; j++) { + for (i = 0; i < gif_image->height; i++) { + for (j = 0; j < gif_image->width; j++) { *redP++ = *buffer++; *greenP++ = *buffer++; *blueP++ = *buffer++; @@ -307,7 +307,7 @@ static int __gif_extract_rgb(gif_image_s *gif_image, unsigned long num_of_pixels return MM_UTIL_ERROR_NONE; } -int __gif_make_color_map(gif_image_s *gif_image, GifByteType **intermediate_image, unsigned long *intermediate_image_size) +int __gif_make_color_map(gif_image_s *gif_image, ColorMapObject **color_map, GifByteType **intermediate_image, unsigned long *intermediate_image_size) { int ret = MM_UTIL_ERROR_NONE; int colormap_size = DEFAULT_COLORMAP_SIZE; @@ -315,7 +315,7 @@ int __gif_make_color_map(gif_image_s *gif_image, GifByteType **intermediate_imag mm_util_retvm_if(gif_image == NULL, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter"); - unsigned long num_of_pixels = gif_image->image_desc.Width * gif_image->image_desc.Height; + unsigned long num_of_pixels = gif_image->width * gif_image->height; /* make colormap and quantization for the color table of gif */ ret = __gif_extract_rgb(gif_image, num_of_pixels, &red, &green, &blue); @@ -324,7 +324,7 @@ int __gif_make_color_map(gif_image_s *gif_image, GifByteType **intermediate_imag goto FAIL; } - if ((gif_image->image_desc.ColorMap = GifMakeMapObject(colormap_size, NULL)) == NULL) { + if ((*color_map = GifMakeMapObject(colormap_size, NULL)) == NULL) { mm_util_error("To make color map is failed"); ret = MM_UTIL_ERROR_INVALID_OPERATION; goto FAIL; @@ -339,7 +339,7 @@ int __gif_make_color_map(gif_image_s *gif_image, GifByteType **intermediate_imag } *intermediate_image_size = num_of_pixels * sizeof(GifByteType); - if (GifQuantizeBuffer(gif_image->image_desc.Width, gif_image->image_desc.Height, &colormap_size, red, green, blue, *intermediate_image, gif_image->image_desc.ColorMap->Colors) == GIF_ERROR) { + if (GifQuantizeBuffer(gif_image->width, gif_image->height, &colormap_size, red, green, blue, *intermediate_image, (*color_map)->Colors) == GIF_ERROR) { mm_util_error("could not quantize buffer"); ret = MM_UTIL_ERROR_INVALID_OPERATION; goto FAIL; @@ -351,7 +351,7 @@ FAIL: MMUTIL_SAFE_FREE(*intermediate_image); *intermediate_image_size = 0; - COLORMAP_FREE(gif_image->image_desc.ColorMap); + COLORMAP_FREE(*color_map); SUCCESS: RGB_FREE(red, green, blue); @@ -465,7 +465,7 @@ int _gif_encode_move_to_mem(const unsigned char *src, size_t src_size, void **ds int _gif_image_write_image(gif_file_s *gif_file, gif_image_s *gif_image) { int ret = MM_UTIL_ERROR_NONE; - + ColorMapObject *color_map = NULL; GifByteType *intermediate_image = NULL; unsigned long intermediate_image_size = 0; unsigned long idx = 0; @@ -474,16 +474,18 @@ int _gif_image_write_image(gif_file_s *gif_file, gif_image_s *gif_image) mm_util_retvm_if(gif_image->image_data == NULL, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter"); /* Make local color map */ - ret = __gif_make_color_map(gif_image, &intermediate_image, &intermediate_image_size); + ret = __gif_make_color_map(gif_image, &color_map, &intermediate_image, &intermediate_image_size); mm_util_retvm_if(ret != MM_UTIL_ERROR_NONE, ret, "__gif_make_color_map failed"); - if (EGifPutImageDesc(gif_file->GifFile, gif_image->image_desc.Left, gif_image->image_desc.Top, - gif_image->image_desc.Width, gif_image->image_desc.Height, gif_image->image_desc.Interlace, - gif_image->image_desc.ColorMap) == GIF_ERROR) { + if (EGifPutImageDesc(gif_file->GifFile, 0, 0, gif_image->width, gif_image->height, + FALSE, color_map) == GIF_ERROR) { mm_util_error("EGifPutImageDesc failed due to %s", GifErrorString(gif_file->GifFile->Error)); + COLORMAP_FREE(color_map); MMUTIL_SAFE_FREE(intermediate_image); return MM_UTIL_ERROR_INVALID_OPERATION; } + /* release color map */ + COLORMAP_FREE(color_map); mm_util_debug("put pixel count: %lu", (intermediate_image_size / sizeof(GifPixelType))); @@ -698,9 +700,8 @@ int mm_util_gif_image_create(mm_gif_file_h gif_file_h, mm_gif_image_h *gif_image /* init image when it is allocated */ /* set default width & height */ - pImage->width = pImage->image_desc.Width = gif_file->width; - pImage->height = pImage->image_desc.Height = gif_file->height; - pImage->image_desc.Interlace = FALSE; /* don't change this, fixed value */ + pImage->width = gif_file->width; + pImage->height = gif_file->height; pImage->ext_block_count = 0; pImage->ext_blocks = NULL; @@ -709,26 +710,6 @@ int mm_util_gif_image_create(mm_gif_file_h gif_file_h, mm_gif_image_h *gif_image return MM_UTIL_ERROR_NONE; } -int mm_util_gif_image_set_position(mm_gif_image_h gif_image_h, const int left, const int top, const int width, const int height) -{ - gif_image_s *gif_image = (gif_image_s *)gif_image_h; - - mm_util_retvm_if(gif_image == NULL, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter"); - mm_util_retvm_if((left < 0) || (top < 0), MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter"); - mm_util_retvm_if((width <= 0) || (height <= 0), MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter"); - mm_util_retvm_if((gif_image->width > 0) && (left + width > gif_image->width), MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter"); - mm_util_retvm_if((gif_image->height > 0) && (top + height > gif_image->height), MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter"); - - mm_util_info("l = %d, t = %d, w= %d, h = %d", left, top, width, height); - - gif_image->image_desc.Left = left; - gif_image->image_desc.Top = top; - gif_image->image_desc.Width = width; - gif_image->image_desc.Height = height; - - return MM_UTIL_ERROR_NONE; -} - int mm_util_gif_image_set_delay_time(mm_gif_image_h gif_image_h, const int delay_time) { gif_image_s *gif_image = (gif_image_s *)gif_image_h; @@ -765,9 +746,6 @@ void mm_util_gif_image_destory(mm_gif_image_h gif_image_h) mm_util_retm_if(gif_image == NULL, "Invalid parameter"); - /* release color map */ - COLORMAP_FREE(gif_image->image_desc.ColorMap); - /* release extension blocks */ if (gif_image->ext_blocks != NULL) { for (i = 0; i < gif_image->ext_block_count; i++) { @@ -896,9 +874,7 @@ int mm_util_gif_encode_add_image(mm_gif_file_h gif_file_h, mm_gif_image_h gif_im mm_util_fenter(); 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((gif_image->image_desc.Width <= 0) || (gif_image->image_desc.Height <= 0), MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter"); - mm_util_retvm_if((gif_image->image_desc.Left + gif_image->image_desc.Width > gif_file->width), MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter"); - mm_util_retvm_if((gif_image->image_desc.Top + gif_image->image_desc.Height > gif_file->height), MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter"); + mm_util_retvm_if((gif_image->width == 0) || (gif_image->height == 0), MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter"); mm_util_retvm_if(gif_image->image_data == NULL, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter"); if (gif_file->is_started == FALSE) { @@ -911,7 +887,7 @@ int mm_util_gif_encode_add_image(mm_gif_file_h gif_file_h, mm_gif_image_h gif_im ret = _gif_image_write_ext_blocks(gif_file, gif_image); mm_util_retvm_if(ret != MM_UTIL_ERROR_NONE, ret, "_gif_image_write_ext_blocks failed"); - /* Write image description */ + /* Write image description & data */ ret = _gif_image_write_image(gif_file, gif_image); mm_util_retvm_if(ret != MM_UTIL_ERROR_NONE, ret, "_gif_image_write_image_desc failed"); diff --git a/gif/test/mm_util_gif_testsuite.c b/gif/test/mm_util_gif_testsuite.c old mode 100755 new mode 100644 index 783004e..3860cfe --- a/gif/test/mm_util_gif_testsuite.c +++ b/gif/test/mm_util_gif_testsuite.c @@ -175,9 +175,6 @@ int main(int argc, char *argv[]) ret = mm_util_gif_image_set_delay_time(gif_image, 20); fprintf(stderr, "\t mm_util_gif_image_set_delay_time [%d]\n", ret); - ret = mm_util_gif_image_set_position(gif_image, 0, 0, files[i].decoded.width, files[i].decoded.height); - fprintf(stderr, "\t mm_util_gif_image_set_position [%d]\n", ret); - ret = mm_util_gif_encode_add_image(gif_file, gif_image); fprintf(stderr, "\t mm_util_gif_enc_add_image [%d]\n", ret);