int mm_image_create_image(unsigned int width, unsigned int height,
mm_util_color_format_e color, const unsigned char *data, size_t size,
mm_util_image_h *image);
-
+int mm_image_clone_image(mm_util_image_h src, mm_util_image_h *dst);
int mm_image_set_delay_time(mm_util_image_h image, unsigned int delay_time);
int mm_image_get_delay_time(mm_util_image_h image, unsigned int *delay_time);
/* After @data is used, it must be released using free().*/
return MM_UTIL_ERROR_NONE;
}
+int mm_image_clone_image(mm_util_image_h src, mm_util_image_h *dst)
+{
+ mm_image_info_s *_src = (mm_image_info_s *)src;
+ mm_image_info_s *_dst = NULL;
+
+ mm_util_retvm_if(!src, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid src");
+ mm_util_retvm_if(!dst, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid dst");
+
+ _dst = (mm_image_info_s *)calloc(1, sizeof(mm_image_info_s));
+ mm_util_retvm_if((_dst == NULL), MM_UTIL_ERROR_OUT_OF_MEMORY, "Memory allocation failed");
+
+ _dst->width = _src->width;
+ _dst->height = _src->height;
+ _dst->color = _src->color;
+ _dst->size = _src->size;
+
+ _dst->data = calloc(1, _dst->size);
+ if (!_dst->data) {
+ mm_util_error("Memory allocation failed");
+ mm_image_destroy_image(_dst);
+ return MM_UTIL_ERROR_OUT_OF_MEMORY;
+ }
+
+ memcpy(_dst->data, _src->data, _dst->size);
+
+ *dst = (mm_util_image_h)_dst;
+
+ return MM_UTIL_ERROR_NONE;
+}
+
int mm_image_set_delay_time(mm_util_image_h image, unsigned int delay_time)
{
mm_image_info_s *_image = (mm_image_info_s *)image;