ret = image_util_decode_set_input_path(handle, file_path);
if (ret != IMAGE_UTIL_ERROR_NONE) {
dcm_error("Error image_util_decode_set_input_path ret : %d", ret);
+ image_util_decode_destroy(handle);
return MS_MEDIA_ERR_INTERNAL;
}
colorspace = IMAGE_UTIL_COLORSPACE_RGBA8888;
mm_format = MM_UTIL_IMG_FMT_RGBA8888;
} else {
+ image_util_decode_destroy(handle);
return MS_MEDIA_ERR_UNSUPPORTED_CONTENT;
}
ret = image_util_decode_set_colorspace(handle, colorspace);
if (ret != IMAGE_UTIL_ERROR_NONE) {
dcm_error("Error image_util_decode_set_colorspace ret : %d", ret);
+ image_util_decode_destroy(handle);
return MS_MEDIA_ERR_INTERNAL;
}
}
ret = image_util_decode_set_output_buffer(handle, &decode_buffer);
if (ret != IMAGE_UTIL_ERROR_NONE) {
dcm_error("Error image_util_decode_set_output_buffer ret : %d", ret);
+ image_util_decode_destroy(handle);
return MS_MEDIA_ERR_INTERNAL;
}
ret = image_util_decode_run(handle, (unsigned long *)&decode_width, (unsigned long *)&decode_height, size);
if (ret != IMAGE_UTIL_ERROR_NONE) {
dcm_error("Error image_util_decode_run ret : %d", ret);
+ image_util_decode_destroy(handle);
return MS_MEDIA_ERR_INTERNAL;
}
dcm_error("Failed to calculate image buffer size! err: %d", ret);
return MS_MEDIA_ERR_INTERNAL;
}
+
*size = buffer_size;
resize_buffer = (unsigned char *)malloc(sizeof(unsigned char) * (buffer_size));
- if (resize_buffer != NULL)
- mm_util_resize_image(decode_buffer, decode_width, decode_height, mm_format, resize_buffer, buff_width, buff_height);
+ if (resize_buffer != NULL) {
+ ret = mm_util_resize_image(decode_buffer, decode_width, decode_height, mm_format, resize_buffer, buff_width, buff_height);
+ DCM_SAFE_FREE(decode_buffer);
+ if (ret != MS_MEDIA_ERR_NONE) {
+ dcm_error("Failed to mm_util_resize_image");
+ DCM_SAFE_FREE(resize_buffer);
+ return MS_MEDIA_ERR_INTERNAL;
+ }
+ } else {
+ dcm_error("Failed to allocation");
+ return MS_MEDIA_ERR_OUT_OF_MEMORY;
+ }
} else {
resize_buffer = decode_buffer;
}
*image_buffer = resize_buffer;
} else {
ret = __dcm_rotate_image(resize_buffer, format, orientation, image_buffer, size, buff_width, buff_height);
+ DCM_SAFE_FREE(resize_buffer);
}
if (ret != MS_MEDIA_ERR_NONE) {
dcm_error("Failed to rotate image buffer! err: %d", ret);