From d50c86b0fad5d0e2a6f4326ca0255b718d3f17bf Mon Sep 17 00:00:00 2001 From: Jiyong Min Date: Wed, 15 Nov 2017 10:18:06 +0900 Subject: [PATCH] Modify the value returned by transform to return correct error + 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 --- imgp/mm_util_imgp.c | 47 +++++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/imgp/mm_util_imgp.c b/imgp/mm_util_imgp.c index 2f4128e..6549c40 100755 --- a/imgp/mm_util_imgp.c +++ b/imgp/mm_util_imgp.c @@ -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; -- 2.34.1