#define RGB_ALLOC(r, g, b, number, size) { r = calloc(1, number * size); g = calloc(1, number * size); b = calloc(1, number * size); }
#define RGB_FREE(r, g, b) { MMUTIL_SAFE_FREE(r); MMUTIL_SAFE_FREE(g); MMUTIL_SAFE_FREE(b); }
+#define GRAPHIC_EXT_BLOCK_SIZE 4
static int __convert_gif_to_rgba(mm_image_info_s *decoded, ColorMapObject *color_map, GifRowType *screen_buffer, unsigned long width, unsigned long height)
{
int _gif_image_alloc_glob_ext_block(GifFileType *gif_file, int function, int byte_count, ExtensionBlock **ext_block);
-static int __gif_extract_rgb(gif_image_s *gif_image, unsigned long num_of_pixels, GifByteType **red, GifByteType **green, GifByteType **blue)
+static int __gif_extract_rgb(mm_image_info_s *gif_image, unsigned long num_of_pixels, GifByteType **red, GifByteType **green, GifByteType **blue)
{
GifWord i, j;
GifByteType *redP, *greenP, *blueP;
- GifByteType *buffer = (GifByteType*)gif_image->image_data;
+ GifByteType *buffer = (GifByteType*)gif_image->data;
mm_util_fenter();
return MM_UTIL_ERROR_NONE;
}
-int __gif_make_color_map(gif_image_s *gif_image, ColorMapObject **color_map, GifByteType **intermediate_image, unsigned long *intermediate_image_size)
+int __gif_make_color_map(mm_image_info_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;
return MM_UTIL_ERROR_NONE;
}
-int _gif_image_write_image(gif_file_s *gif_file, gif_image_s *gif_image)
+int _gif_image_write_image(gif_file_s *gif_file, mm_image_info_s *gif_image)
{
int ret = MM_UTIL_ERROR_NONE;
ColorMapObject *color_map = NULL;
unsigned long idx = 0;
mm_util_retvm_if(gif_image == NULL, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter");
- mm_util_retvm_if(gif_image->image_data == NULL, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter");
+ mm_util_retvm_if(gif_image->data == NULL, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter");
/* Make local color map */
ret = __gif_make_color_map(gif_image, &color_map, &intermediate_image, &intermediate_image_size);
return MM_UTIL_ERROR_NONE;
}
-int _gif_image_create_ext_block(gif_image_s *gif_image, int function, int byte_count, ExtensionBlock **ext_block)
+int _gif_image_create_ext_block(mm_image_info_s *gif_image, int function, int byte_count, ExtensionBlock **ext_block)
{
ExtensionBlock *_ext_block = NULL;
return MM_UTIL_ERROR_NONE;
}
-int _gif_image_write_ext_block(gif_file_s *gif_file, gif_image_s *gif_image)
+int _gif_image_write_ext_block(gif_file_s *gif_file, mm_image_info_s *gif_image)
{
int ret = MM_UTIL_ERROR_NONE;
ExtensionBlock *_ext_block = NULL;
return MM_UTIL_ERROR_NONE;
}
-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_create(mm_gif_file_h gif_file_h, mm_image_info_s **gif_image_h)
{
gif_file_s *gif_file = (gif_file_s *)gif_file_h;
- gif_image_s *pImage = NULL;
+ mm_image_info_s *pImage = NULL;
mm_util_retvm_if(gif_file == NULL, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter");
- pImage = (gif_image_s *)calloc(1, sizeof(gif_image_s));
+ pImage = (mm_image_info_s *)calloc(1, sizeof(mm_image_info_s));
mm_util_retvm_if(pImage == NULL, MM_UTIL_ERROR_OUT_OF_MEMORY, "Memory allocation failed");
/* init image when it is allocated */
pImage->width = gif_file->width;
pImage->height = gif_file->height;
- *gif_image_h = (mm_gif_image_h)pImage;
+ *gif_image_h = (mm_image_info_s *)pImage;
return MM_UTIL_ERROR_NONE;
}
-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_delay_time(mm_image_info_s * gif_image_h, const int delay_time)
{
- gif_image_s *gif_image = (gif_image_s *)gif_image_h;
+ mm_image_info_s *gif_image = (mm_image_info_s *)gif_image_h;
mm_util_retvm_if(gif_image == NULL, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter");
mm_util_retvm_if(delay_time < 0, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter");
return MM_UTIL_ERROR_NONE;
}
-int mm_util_gif_image_set_image(mm_gif_image_h gif_image_h, const unsigned char *image_data)
+int mm_util_gif_image_set_image(mm_image_info_s * gif_image_h, const unsigned char *image_data)
{
- gif_image_s *gif_image = (gif_image_s *)gif_image_h;
+ mm_image_info_s *gif_image = (mm_image_info_s *)gif_image_h;
mm_util_retvm_if(gif_image == NULL, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter");
mm_util_retvm_if(image_data == NULL, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter");
mm_util_info("ptr = %p", image_data);
- gif_image->image_data = (void *)image_data;
+ gif_image->data = (void *)image_data;
return MM_UTIL_ERROR_NONE;
}
-void mm_util_gif_image_destory(mm_gif_image_h gif_image_h)
+void mm_util_gif_image_destory(mm_image_info_s * gif_image_h)
{
- gif_image_s *gif_image = (gif_image_s *)gif_image_h;
+ mm_image_info_s *gif_image = (mm_image_info_s *)gif_image_h;
mm_util_retm_if(gif_image == NULL, "Invalid parameter");
+ MMUTIL_SAFE_FREE(gif_image->data);
MMUTIL_SAFE_FREE(gif_image);
}
return MM_UTIL_ERROR_NONE;
}
-int mm_util_gif_encode_add_image(mm_gif_file_h gif_file_h, mm_gif_image_h gif_image_h)
+int mm_util_gif_encode_add_image(mm_gif_file_h gif_file_h, mm_image_info_s *gif_image_h)
{
int ret = MM_UTIL_ERROR_NONE;
gif_file_s *gif_file = (gif_file_s *)gif_file_h;
- gif_image_s *gif_image = (gif_image_s *)gif_image_h;
+ mm_image_info_s *gif_image = (mm_image_info_s *)gif_image_h;
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->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");
+ mm_util_retvm_if(gif_image->data == NULL, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter");
if (gif_file->is_started == FALSE) {
mm_util_warn("first added image, mm_util_gif_encode_start is needed");
return MM_UTIL_ERROR_NONE;
}
-int mm_util_gif_enocde_set_image_handle(mm_gif_file_h gif_file_h, mm_gif_image_h gif_image_h)
+int mm_util_gif_enocde_set_image_handle(mm_gif_file_h gif_file_h, mm_image_info_s *gif_image_h)
{
gif_file_s *gif_file = (gif_file_s *)gif_file_h;
- gif_image_s *gif_image = (gif_image_s *)gif_image_h;
+ mm_image_info_s *gif_image = (mm_image_info_s *)gif_image_h;
mm_util_fenter();
mm_util_retvm_if(gif_file == NULL, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter");
mm_util_retvm_if(gif_file->is_started, MM_UTIL_ERROR_INVALID_OPERATION, "Encoding has already started");
if (gif_file->saved_image == NULL) {
- gif_file->saved_image = (gif_image_s **)calloc(1, sizeof(mm_gif_image_h));
+ gif_file->saved_image = (mm_image_info_s **)calloc(1, sizeof(mm_image_info_s *));
mm_util_retvm_if(gif_file->saved_image == NULL, MM_UTIL_ERROR_OUT_OF_MEMORY, "memory allocation failed");
} else {
- gif_image_s **tmp = (gif_image_s **)realloc(gif_file->saved_image, sizeof(mm_gif_image_h) * (gif_file->saved_image_count + 1));
+ mm_image_info_s **tmp = (mm_image_info_s **)realloc(gif_file->saved_image, sizeof(mm_image_info_s *) * (gif_file->saved_image_count + 1));
mm_util_retvm_if(tmp == NULL, MM_UTIL_ERROR_OUT_OF_MEMORY, "memory allocation failed");
gif_file->saved_image = tmp;
}
return MM_UTIL_ERROR_NONE;
}
-int mm_util_gif_enocde_get_image_handle(mm_gif_file_h gif_file_h, const int index, mm_gif_image_h *gif_image_h)
+int mm_util_gif_enocde_get_image_handle(mm_gif_file_h gif_file_h, const int index, mm_image_info_s **gif_image_h)
{
gif_file_s *gif_file = (gif_file_s *)gif_file_h;
mm_util_retvm_if(gif_file->is_started, MM_UTIL_ERROR_INVALID_OPERATION, "Encoding has already started");
if (index < gif_file->saved_image_count)
- *gif_image_h = (mm_gif_image_h)gif_file->saved_image[index];
+ *gif_image_h = (mm_image_info_s *)gif_file->saved_image[index];
else
*gif_image_h = NULL;
int i = 0;
gif_file_s *gif_file = (gif_file_s *)gif_file_h;
- mm_gif_image_h gif_image = NULL;
+ mm_image_info_s *gif_image = NULL;
mm_util_retvm_if(gif_file == NULL, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter");
mm_util_retvm_if(gif_file->saved_image == NULL, MM_UTIL_ERROR_INVALID_OPERATION, "Invalid parameter");
mm_util_retvm_if(ret != MM_UTIL_ERROR_NONE, ret, "mm_util_gif_encode_start failed");
for (i = 0; i < gif_file->saved_image_count; i++) {
- gif_image = (mm_gif_image_h)gif_file->saved_image[i];
+ gif_image = (mm_image_info_s *)gif_file->saved_image[i];
ret = mm_util_gif_encode_add_image(gif_file_h, gif_image);
mm_util_retvm_if(ret != MM_UTIL_ERROR_NONE, ret, "mm_util_gif_encode_add_image failed");
mm_util_gif_image_destory(gif_image);
int i = 0;
gif_file_s *gif_file = (gif_file_s *)gif_file_h;
- mm_gif_image_h gif_image = NULL;
+ mm_image_info_s * gif_image = NULL;
mm_util_retvm_if(gif_file == NULL, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter");
mm_util_retvm_if(gif_file->saved_image == NULL, MM_UTIL_ERROR_INVALID_OPERATION, "Invalid parameter");
mm_util_retvm_if(ret != MM_UTIL_ERROR_NONE, ret, "mm_util_gif_encode_start failed");
for (i = 0; i < gif_file->saved_image_count; i++) {
- gif_image = (mm_gif_image_h)gif_file->saved_image[i];
+ gif_image = (mm_image_info_s *)gif_file->saved_image[i];
ret = mm_util_gif_encode_add_image(gif_file_h, gif_image);
mm_util_retvm_if(ret != MM_UTIL_ERROR_NONE, ret, "mm_util_gif_encode_add_image failed");
mm_util_gif_image_destory(gif_image);
if (gif_file->saved_image != NULL) {
for (i = 0; i < gif_file->saved_image_count; i++) {
- mm_gif_image_h tmp = (mm_gif_image_h)gif_file->saved_image[i];
+ mm_image_info_s * tmp = (mm_image_info_s *)gif_file->saved_image[i];
mm_util_gif_image_destory(tmp);
}
MMUTIL_SAFE_FREE(gif_file->saved_image);