summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMinje Ahn <minje.ahn@samsung.com>2020-11-24 10:31:31 +0900
committerMinje Ahn <minje.ahn@samsung.com>2020-11-24 10:31:56 +0900
commit117553ad260c6781720607fa604e746a64496ef7 (patch)
treebda3cc8612ef518129116c00b1de47d596554735
parent7e4091f23a0f6ae909be3f031885323d3d3d15e7 (diff)
downloadmetadata-extractor-117553ad260c6781720607fa604e746a64496ef7.tar.gz
metadata-extractor-117553ad260c6781720607fa604e746a64496ef7.tar.bz2
metadata-extractor-117553ad260c6781720607fa604e746a64496ef7.zip
Use glib memory allocation
Change-Id: Ia9e7e9c8650827ac14315b3a29d83fe743206852 Signed-off-by: Minje Ahn <minje.ahn@samsung.com>
-rw-r--r--src/metadata_extractor.c109
1 files changed, 37 insertions, 72 deletions
diff --git a/src/metadata_extractor.c b/src/metadata_extractor.c
index c2eeb6a..b1a2b1a 100644
--- a/src/metadata_extractor.c
+++ b/src/metadata_extractor.c
@@ -442,8 +442,7 @@ int metadata_extractor_create(metadata_extractor_h *metadata)
metadata_extractor_retvm_if(metadata == NULL, METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null");
- metadata_extractor_s *_metadata = (metadata_extractor_s *)calloc(1, sizeof(metadata_extractor_s));
- metadata_extractor_retvm_if(_metadata == NULL, METADATA_EXTRACTOR_ERROR_OUT_OF_MEMORY, "Memory allocation failure");
+ metadata_extractor_s *_metadata = g_new0(metadata_extractor_s, 1);
_metadata->path = NULL;
_metadata->buffer = NULL;
@@ -473,13 +472,12 @@ int metadata_extractor_set_path(metadata_extractor_h metadata, const char *path)
if ((_metadata->path != NULL) || (_metadata->buffer != NULL)) {
__metadata_extractor_destroy_handle(_metadata);
- SAFE_FREE(_metadata->path);
+ g_free(_metadata->path);
_metadata->attr_h = 0;
_metadata->tag_h = 0;
}
_metadata->path = g_strdup(path);
- metadata_extractor_retvm_if(_metadata->path == NULL, METADATA_EXTRACTOR_ERROR_OUT_OF_MEMORY, "Memory allocation failure");
return ret;
}
@@ -493,7 +491,8 @@ int metadata_extractor_set_buffer(metadata_extractor_h metadata, const void *buf
if ((_metadata->path != NULL) || (_metadata->buffer != NULL)) {
__metadata_extractor_destroy_handle(_metadata);
- SAFE_FREE(_metadata->path);
+ g_free(_metadata->path);
+ _metadata->path = NULL;
_metadata->attr_h = 0;
_metadata->tag_h = 0;
}
@@ -513,8 +512,8 @@ int metadata_extractor_destroy(metadata_extractor_h metadata)
ret = __metadata_extractor_destroy_handle(_metadata);
- SAFE_FREE(_metadata->path);
- SAFE_FREE(_metadata);
+ g_free(_metadata->path);
+ g_free(_metadata);
return ret;
}
@@ -529,6 +528,9 @@ int metadata_extractor_get_synclyrics(metadata_extractor_h metadata, int index,
metadata_extractor_retvm_if((!_metadata) || ((!_metadata->path) && (!_metadata->buffer)), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Invalid parameter");
+ *lyrics = NULL;
+ *time_stamp = 0;
+
ret = __metadata_extractor_check_and_extract_meta(_metadata, METADATA_TYPE_TAG);
if (ret != METADATA_EXTRACTOR_ERROR_NONE)
return ret;
@@ -537,20 +539,14 @@ int metadata_extractor_get_synclyrics(metadata_extractor_h metadata, int index,
if (ret != METADATA_EXTRACTOR_ERROR_NONE)
return ret;
- if ((_synclyrics_num > 0) && (index < _synclyrics_num)) {
+ if (_synclyrics_num > 0 && index < _synclyrics_num) {
ret = mm_file_get_synclyrics_info((MMHandleType)_metadata->tag_h, index, &_time_info, &_lyrics);
metadata_extractor_retvm_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, "Internal operation error");
- if ((_lyrics != NULL) && (strlen(_lyrics) > 0)) {
+ if (_lyrics && strlen(_lyrics) > 0)
*lyrics = g_strdup(_lyrics);
- metadata_extractor_retvm_if(*lyrics == NULL, METADATA_EXTRACTOR_ERROR_OUT_OF_MEMORY, "Memory allocation failure");
- } else
- *lyrics = NULL;
*time_stamp = _time_info;
- } else {
- *lyrics = NULL;
- *time_stamp = 0;
}
return ret;
@@ -598,6 +594,8 @@ int metadata_extractor_get_metadata(metadata_extractor_h metadata, metadata_extr
metadata_extractor_retvm_if((!_metadata) || ((!_metadata->path) && (!_metadata->buffer)), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Invalid parameter");
+ *value = NULL;
+
ret = __extract_meta(_metadata, attribute);
metadata_extractor_retvm_if(ret != METADATA_EXTRACTOR_ERROR_NONE, ret, "fail to __metadata_extractor_extract_meta() [%d]", ret);
@@ -939,31 +937,17 @@ int metadata_extractor_get_metadata(metadata_extractor_h metadata, metadata_extr
}
if (is_string) {
- if ((s_value != NULL) && (strlen(s_value) > 0)) {
+ if (s_value && strlen(s_value) > 0)
*value = g_strdup(s_value);
- /*Only use strdup in video_codec and audio_codec */
- if (attribute == METADATA_VIDEO_CODEC || attribute == METADATA_AUDIO_CODEC)
- SAFE_FREE(s_value);
- if (*value == NULL) {
- metadata_extractor_error("OUT_OF_MEMORY(0x%08x)", METADATA_EXTRACTOR_ERROR_OUT_OF_MEMORY);
- return METADATA_EXTRACTOR_ERROR_OUT_OF_MEMORY;
- }
- } else {
- if (attribute == METADATA_VIDEO_CODEC || attribute == METADATA_AUDIO_CODEC)
- SAFE_FREE(s_value);
- *value = NULL;
- }
+ /*Only use strdup in video_codec and audio_codec */
+ if (attribute == METADATA_VIDEO_CODEC || attribute == METADATA_AUDIO_CODEC)
+ g_free(s_value);
} else {
- char extracted_metadata[META_MAX_LEN] = {0, };
-
if (is_double)
- snprintf(extracted_metadata, sizeof(extracted_metadata), "%f", d_value);
+ *value = g_strdup_printf("%f", d_value);
else
- snprintf(extracted_metadata, sizeof(extracted_metadata), "%d", i_value);
-
- *value = g_strdup(extracted_metadata);
- metadata_extractor_retvm_if(*value == NULL, METADATA_EXTRACTOR_ERROR_OUT_OF_MEMORY, "Memory allocation failure");
+ *value = g_strdup_printf("%d", i_value);
}
return ret;
@@ -979,40 +963,24 @@ int metadata_extractor_get_artwork(metadata_extractor_h metadata, void **artwork
metadata_extractor_retvm_if((!_metadata) || ((!_metadata->path) && (!_metadata->buffer)), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Invalid parameter");
+ *artwork = NULL;
+ *mime_type = NULL;
+ *size = 0;
+
ret = __metadata_extractor_check_and_extract_meta(_metadata, METADATA_TYPE_TAG);
metadata_extractor_retvm_if(ret != METADATA_EXTRACTOR_ERROR_NONE, ret, "Error in __metadata_extractor_check_and_extract_meta()");
ret = __metadata_extractor_get_artwork(_metadata, &_artwork, &_artwork_size);
metadata_extractor_retvm_if(ret != METADATA_EXTRACTOR_ERROR_NONE, ret, "Fail to get artwork");
- if ((_artwork_size > 0) && (_artwork != NULL)) {
+ if (_artwork_size > 0 && _artwork) {
ret = __metadata_extractor_get_tag_str(_metadata, MM_FILE_TAG_ARTWORK_MIME, &_artwork_mime);
- if (ret != METADATA_EXTRACTOR_ERROR_NONE) {
- *artwork = NULL;
- *size = 0;
-
+ if (ret != METADATA_EXTRACTOR_ERROR_NONE)
return ret;
- }
- *artwork = calloc(1, _artwork_size);
- if (*artwork != NULL) {
- memcpy(*artwork, _artwork, _artwork_size);
- *size = _artwork_size;
- } else {
- *size = 0;
- }
-
- if ((_artwork_mime != NULL) && (strlen(_artwork_mime) > 0)) {
- *mime_type = g_strdup(_artwork_mime);
- metadata_extractor_retvm_if(*mime_type == NULL, METADATA_EXTRACTOR_ERROR_OUT_OF_MEMORY, "Memory allocation failure");
- } else {
- *mime_type = NULL;
- }
-
- } else {
- *artwork = NULL;
- *mime_type = NULL;
- *size = 0;
+ *artwork = g_memdup(_artwork, _artwork_size);
+ *size = _artwork_size;
+ *mime_type = g_strdup(_artwork_mime);
}
return ret;
@@ -1027,6 +995,9 @@ int metadata_extractor_get_frame(metadata_extractor_h metadata, void **frame, in
metadata_extractor_retvm_if((!_metadata) || ((!_metadata->path) && (!_metadata->buffer)) || (!size), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Invalid parameter");
+ *frame = NULL;
+ *size = 0;
+
ret = __metadata_extractor_check_and_extract_meta(_metadata, METADATA_TYPE_ATTR);
if (ret != METADATA_EXTRACTOR_ERROR_NONE)
return ret;
@@ -1035,14 +1006,9 @@ int metadata_extractor_get_frame(metadata_extractor_h metadata, void **frame, in
if (ret != METADATA_EXTRACTOR_ERROR_NONE)
return ret;
- if ((_frame_size > 0) && (_frame != NULL)) {
- *frame = calloc(1, _frame_size);
- metadata_extractor_retvm_if(*frame == NULL, METADATA_EXTRACTOR_ERROR_OUT_OF_MEMORY, "Memory allocation failure");
- memcpy(*frame, _frame, _frame_size);
+ if (_frame_size > 0 && _frame) {
+ *frame = g_memdup(_frame, _frame_size);
*size = _frame_size;
- } else {
- *frame = NULL;
- *size = 0;
}
return ret;
@@ -1061,6 +1027,8 @@ int metadata_extractor_get_frame_at_time(metadata_extractor_h metadata, unsigned
metadata_extractor_retvm_if((!_metadata) || ((!_metadata->path) && (!_metadata->buffer)) || (!size), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Invalid parameter");
micro_timestamp = (long long)timestamp * 1000;
+ *frame = NULL;
+ *size = 0;
metadata_extractor_debug("accurate [%d] timestamp[%lu] micro_timestamp[%lld]", is_accurate, timestamp, micro_timestamp);
@@ -1071,8 +1039,8 @@ int metadata_extractor_get_frame_at_time(metadata_extractor_h metadata, unsigned
metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, _frame);
- if (_frame != NULL) {
- if ((_frame_size > 0)) {
+ if (_frame) {
+ if (_frame_size > 0) {
*frame = _frame;
*size = _frame_size;
} else {
@@ -1080,9 +1048,6 @@ int metadata_extractor_get_frame_at_time(metadata_extractor_h metadata, unsigned
metadata_extractor_error("METADATA_EXTRACTOR_ERROR_OPERATION_FAILED (0x%08x)", METADATA_EXTRACTOR_ERROR_OPERATION_FAILED);
return METADATA_EXTRACTOR_ERROR_OPERATION_FAILED;
}
- } else {
- *frame = NULL;
- *size = 0;
}
return ret;