Modify the value returned by transform to return correct error 01/160201/6
authorJiyong Min <jiyong.min@samsung.com>
Wed, 15 Nov 2017 01:18:06 +0000 (10:18 +0900)
committerJiyong Min <jiyong.min@samsung.com>
Wed, 15 Nov 2017 02:58:16 +0000 (11:58 +0900)
 + Replace 'media_format_make_writable' to 'media_format_create'
 because 'media_format_make_writable' does not create new media_format_h in some case.

Change-Id: I1292c14104e66beef6ed7c692821179724399e53
Signed-off-by: Jiyong Min <jiyong.min@samsung.com>
imgp/mm_util_imgp.c

index 2f4128ea3c01e8dd3829589ea8bdfa3eee616e32..6549c40371d1da1cb2b06721cb05ff59ff289f2e 100755 (executable)
@@ -1159,30 +1159,33 @@ static int __mm_util_processing(mm_util_s *handle)
        return ret;
 }
 
-static int __mm_get_info_from_media_packet(media_packet_h pkt, media_format_h *fmt, mm_util_s *handle)
+static int __mm_get_info_from_media_packet(media_packet_h pkt, mm_util_s *handle)
 {
        int err = MEDIA_PACKET_ERROR_NONE;
        media_format_mimetype_e mimetype = 0;
        int width = 0, height = 0;
        uint64_t size = 0;
        void *ptr = NULL;
+       media_format_h fmt = NULL;
 
-       if ((pkt == NULL) || (fmt == NULL) || (handle == NULL)) {
+       if ((pkt == NULL) || (handle == NULL)) {
                mm_util_error("Invalid parameter");
                return MM_UTIL_ERROR_INVALID_PARAMETER;
        }
 
-       err = media_packet_get_format(pkt, fmt);
+       err = media_packet_get_format(pkt, &fmt);
        if (err != MEDIA_PACKET_ERROR_NONE) {
                mm_util_error("media_packet_get_format failed (%d)", err);
                return MM_UTIL_ERROR_INVALID_PARAMETER;
        }
 
-       err = media_format_get_video_info(*fmt, &mimetype, &width, &height, NULL, NULL);
+       err = media_format_get_video_info(fmt, &mimetype, &width, &height, NULL, NULL);
        if (err != MEDIA_FORMAT_ERROR_NONE) {
                mm_util_error("media_packet_get_format failed (%d)", err);
+               media_format_unref(fmt);
                return MM_UTIL_ERROR_INVALID_PARAMETER;
        }
+       media_format_unref(fmt);
 
        err = media_packet_get_buffer_size(pkt, &size);
        if (err != MEDIA_PACKET_ERROR_NONE) {
@@ -1220,40 +1223,40 @@ static int __mm_get_info_from_media_packet(media_packet_h pkt, media_format_h *f
        return MM_UTIL_ERROR_NONE;
 }
 
-static int __mm_create_media_format(media_format_h fmt, mm_util_img_format format, unsigned int width, unsigned int height, media_format_h *new_fmt)
+static int __mm_create_media_format(mm_util_img_format format, unsigned int width, unsigned int height, media_format_h *new_fmt)
 {
        int err = MEDIA_FORMAT_ERROR_NONE;
 
-       if ((fmt == NULL) || (new_fmt == NULL) || (width == 0) || (height == 0)) {
+       if ((new_fmt == NULL) || (width == 0) || (height == 0)) {
                mm_util_error("Invalid parameter");
                return MM_UTIL_ERROR_INVALID_PARAMETER;
        }
 
-       err = media_format_make_writable(fmt, new_fmt);
+       err = media_format_create(new_fmt);
        if (err != MEDIA_FORMAT_ERROR_NONE) {
                mm_util_error("media_format_make_writable failed (%d)", err);
-               return MM_UTIL_ERROR_INVALID_PARAMETER;
+               return MM_UTIL_ERROR_INVALID_OPERATION;
        }
 
        err = media_format_set_video_mime(*new_fmt, __mm_util_mapping_imgp_format_to_mime(format));
        if (err != MEDIA_FORMAT_ERROR_NONE) {
                media_format_unref(*new_fmt);
                mm_util_error("media_format_set_video_mime failed (%d)", err);
-               return MM_UTIL_ERROR_INVALID_PARAMETER;
+               return MM_UTIL_ERROR_INVALID_OPERATION;
        }
 
        err = media_format_set_video_width(*new_fmt, width);
        if (err != MEDIA_FORMAT_ERROR_NONE) {
                media_format_unref(*new_fmt);
                mm_util_error("media_format_set_video_width failed (%d)", err);
-               return MM_UTIL_ERROR_INVALID_PARAMETER;
+               return MM_UTIL_ERROR_INVALID_OPERATION;
        }
 
        err = media_format_set_video_height(*new_fmt, height);
        if (err != MEDIA_FORMAT_ERROR_NONE) {
                media_format_unref(*new_fmt);
                mm_util_error("media_format_set_video_height failed (%d)", err);
-               return MM_UTIL_ERROR_INVALID_PARAMETER;
+               return MM_UTIL_ERROR_INVALID_OPERATION;
        }
 
        return MM_UTIL_ERROR_NONE;
@@ -1291,9 +1294,9 @@ static int __mm_create_media_packet_with_buffer(media_format_h fmt, void *buffer
 
        err = media_packet_get_buffer_data_ptr(*pkt, &ptr);
        if (err != MM_UTIL_ERROR_NONE) {
-               mm_util_error("[src] media_packet_get_extra");
+               mm_util_error("media_packet_get_buffer_data_ptr failed (%d)", err);
                media_packet_destroy(*pkt);
-               return MM_UTIL_ERROR_INVALID_PARAMETER;
+               return MM_UTIL_ERROR_INVALID_OPERATION;
        }
 
        mm_util_debug("Success - media_packet is created (%p, %lu)", *pkt, size);
@@ -1306,7 +1309,6 @@ static int __mm_create_media_packet_with_buffer(media_format_h fmt, void *buffer
 static int __mm_util_transform_exec(mm_util_s *handle, media_packet_h src_packet)
 {
        int ret = MM_UTIL_ERROR_NONE;
-       media_format_h src_fmt = NULL;
        media_format_h dst_fmt = NULL;
 
        if ((handle == NULL) || (src_packet == NULL)) {
@@ -1314,35 +1316,34 @@ static int __mm_util_transform_exec(mm_util_s *handle, media_packet_h src_packet
                return MM_UTIL_ERROR_INVALID_PARAMETER;
        }
 
-       ret = __mm_get_info_from_media_packet(src_packet, &src_fmt, handle);
+       ret = __mm_get_info_from_media_packet(src_packet, handle);
        if (ret != MM_UTIL_ERROR_NONE) {
-               mm_util_error("__mm_get_info_from_packet failed");
+               mm_util_error("__mm_get_info_from_packet failed (%d)", ret);
                return ret;
        }
        mm_util_debug("src: %p (%u X %u)", src_packet, handle->src_width, handle->src_height);
 
        ret = __mm_util_processing(handle);
        if (ret != MM_UTIL_ERROR_NONE) {
-               mm_util_error("__mm_util_processing failed");
+               mm_util_error("__mm_util_processing failed (%d)", ret);
                handle->dst_packet = NULL;
-               return MM_UTIL_ERROR_INVALID_PARAMETER;
+               return ret;
        }
+
        mm_util_debug("handle->src: %p [%d] %d X %d (%d) => handle->dst: %p [%d] %d X %d (%d)",
                handle->src, handle->src_format, handle->src_width, handle->src_height, handle->src_buf_size,
                handle->dst, handle->dst_format, handle->dst_width, handle->dst_height, handle->dst_buf_size);
 
-       ret = __mm_create_media_format(src_fmt, handle->dst_format, handle->dst_width, handle->dst_height, &dst_fmt);
+       ret = __mm_create_media_format(handle->dst_format, handle->dst_width, handle->dst_height, &dst_fmt);
        if (ret != MM_UTIL_ERROR_NONE) {
-               mm_util_error("__mm_create_media_format failed");
-               media_format_unref(src_fmt);
+               mm_util_error("__mm_create_media_format failed (%d)", ret);
                MMUTIL_SAFE_FREE(handle->dst);
                return ret;
        }
-       media_format_unref(src_fmt);
 
        ret = __mm_create_media_packet_with_buffer(dst_fmt, handle->dst, handle->dst_buf_size, &handle->dst_packet);
        if (ret != MM_UTIL_ERROR_NONE) {
-               mm_util_error("__mm_create_media_packet failed");
+               mm_util_error("__mm_create_media_packet failed (%d)", ret);
                media_format_unref(dst_fmt);
                MMUTIL_SAFE_FREE(handle->dst);
                return ret;