Use mm_util_encode_to_jpeg_memory() instead of old deprecated mm_util_jpeg_encode_to_... 84/231084/2
authorhj kim <backto.kim@samsung.com>
Fri, 17 Apr 2020 06:44:00 +0000 (15:44 +0900)
committerhj kim <backto.kim@samsung.com>
Mon, 20 Apr 2020 23:44:16 +0000 (08:44 +0900)
Change-Id: Ic22826da0c05f8263da82ff7389e0960e86d71d8

src/mm_camcorder_util.c

index 063ac1fc5d33f3b145b79e017cf8a824f4d02c82..ec1cf78c4d7d666d032ec016ccce8cae1b645f45 100644 (file)
@@ -1884,11 +1884,14 @@ gboolean _mmcamcorder_encode_jpeg(void *src_data, unsigned int src_width, unsign
        int src_format, unsigned int src_length, unsigned int jpeg_quality,
        void **result_data, unsigned int *result_length)
 {
-       int ret = 0;
+       int ret = MM_UTIL_ERROR_NONE;
        gboolean ret_conv = TRUE;
-       int jpeg_format = 0;
+       mm_util_color_format_e jpeg_format = MM_UTIL_COLOR_NUM;
        unsigned char *converted_src = NULL;
        unsigned int converted_src_size = 0;
+       mm_util_image_h decoded = NULL;
+       void *encoded_data = NULL;
+       size_t encoded_data_size = 0;
 
        mmf_return_val_if_fail(src_data && result_data && result_length, FALSE);
 
@@ -1954,19 +1957,33 @@ gboolean _mmcamcorder_encode_jpeg(void *src_data, unsigned int src_width, unsign
                return FALSE;
        }
 
-       ret = mm_util_jpeg_encode_to_memory(result_data, result_length,
-               converted_src, src_width, src_height, jpeg_format, jpeg_quality);
+       converted_src_size = (converted_src && (converted_src != src_data)) ? converted_src_size : src_length;
+       ret = mm_image_create_image(src_width, src_height, jpeg_format, converted_src, (size_t)converted_src_size, &decoded);
+       if (ret != MM_UTIL_ERROR_NONE) {
+               _mmcam_dbg_err("mm_image_create_image error [%d]", ret);
+               if (converted_src && (converted_src != src_data))
+                       free(converted_src);
+               return FALSE;
+       }
+
+       ret = mm_util_encode_to_jpeg_memory(decoded, jpeg_quality, &encoded_data, &encoded_data_size);
+       mm_image_destroy_image(decoded);
 
        if (converted_src && (converted_src != src_data)) {
                free(converted_src);
                converted_src = NULL;
        }
 
-       if (ret != MM_ERROR_NONE) {
+       if (ret != MM_UTIL_ERROR_NONE) {
                _mmcam_dbg_err("No encoder supports %d format, error code %x", src_format, ret);
+               if (encoded_data)
+                       free(encoded_data);
                return FALSE;
        }
 
+       *result_data = encoded_data;
+       *result_length = (unsigned int)encoded_data_size;
+
        return TRUE;
 }