diff options
author | hj kim <backto.kim@samsung.com> | 2019-08-26 16:01:22 +0900 |
---|---|---|
committer | hj kim <backto.kim@samsung.com> | 2019-08-28 08:55:05 +0900 |
commit | 57d2df27d9b6d71c226d2cf653d45e55551257ff (patch) | |
tree | 0882049813324110fd5a0effcb60a028d3454d57 | |
parent | 3753ebb53e0025a25a897034b37fe3ca68e7047c (diff) | |
download | metadata-extractor-57d2df27d9b6d71c226d2cf653d45e55551257ff.tar.gz metadata-extractor-57d2df27d9b6d71c226d2cf653d45e55551257ff.tar.bz2 metadata-extractor-57d2df27d9b6d71c226d2cf653d45e55551257ff.zip |
Update code to reduce Cyclomatic Complexity and DCtizen_5.5.m2_releasesubmit/tizen_5.5_mobile_hotfix/20201026.185102submit/tizen_5.5/20191031.000002submit/tizen/20190830.003130submit/tizen/20190829.010946accepted/tizen/unified/20190901.225911accepted/tizen/5.5/unified/mobile/hotfix/20201027.064336accepted/tizen/5.5/unified/20191031.025710tizen_5.5_mobile_hotfixaccepted/tizen_5.5_unified_mobile_hotfix
Change-Id: I148c3e335e0ef2a978c013aa209ef4c3c5dc6ad0
-rw-r--r-- | src/metadata_extractor.c | 172 |
1 files changed, 71 insertions, 101 deletions
diff --git a/src/metadata_extractor.c b/src/metadata_extractor.c index 0b38e39..c4104f5 100644 --- a/src/metadata_extractor.c +++ b/src/metadata_extractor.c @@ -131,18 +131,13 @@ static int __metadata_extractor_get_stream_info(metadata_extractor_s *metadata, return ret; } -static int __metadata_extractor_create_content_attrs(metadata_extractor_s *metadata, const char *path) +static int __get_content_attrs(metadata_extractor_s *metadata, MMHandleType content) { int ret = METADATA_EXTRACTOR_ERROR_NONE; - MMHandleType content = 0; char *err_attr_name = NULL; - int _audio_track_cnt = 0; int _video_track_cnt = 0; - ret = mm_file_create_content_attrs(&content, path); - metadata_extractor_retvm_if(ret != FILEINFO_ERROR_NONE, __metadata_extractor_error_capi(ret), "Fail mm_file_create_content_attrs(%d)", ret); - ret = mm_file_get_attrs(content, &err_attr_name, MM_FILE_CONTENT_VIDEO_TRACK_COUNT, &_video_track_cnt, MM_FILE_CONTENT_AUDIO_TRACK_COUNT, &_audio_track_cnt, @@ -159,8 +154,18 @@ static int __metadata_extractor_create_content_attrs(metadata_extractor_s *metad metadata->audio_track_cnt = _audio_track_cnt; metadata->video_track_cnt = _video_track_cnt; - return ret; + return METADATA_EXTRACTOR_ERROR_NONE; +} + +static int __metadata_extractor_create_content_attrs(metadata_extractor_s *metadata, const char *path) +{ + int ret = METADATA_EXTRACTOR_ERROR_NONE; + MMHandleType content = 0; + ret = mm_file_create_content_attrs(&content, path); + metadata_extractor_retvm_if(ret != FILEINFO_ERROR_NONE, __metadata_extractor_error_capi(ret), "Fail mm_file_create_content_attrs(%d)", ret); + + return __get_content_attrs(metadata, content); } @@ -182,32 +187,11 @@ static int __metadata_extractor_create_content_attrs_from_buffer(metadata_extrac { int ret = METADATA_EXTRACTOR_ERROR_NONE; MMHandleType content = 0; - char *err_attr_name = NULL; - - int _audio_track_cnt = 0; - int _video_track_cnt = 0; ret = mm_file_create_content_attrs_from_memory(&content, buffer, size, 0); metadata_extractor_retvm_if(ret != FILEINFO_ERROR_NONE, __metadata_extractor_error_capi(ret), "Fail mm_file_create_content_attrs_from_memory(%d)", ret); - ret = mm_file_get_attrs(content, &err_attr_name, - MM_FILE_CONTENT_VIDEO_TRACK_COUNT, &_video_track_cnt, - MM_FILE_CONTENT_AUDIO_TRACK_COUNT, &_audio_track_cnt, - NULL); - - if (ret != FILEINFO_ERROR_NONE) { - metadata_extractor_error("METADATA_EXTRACTOR_ERROR_OPERATION_FAILED(0x%08x)", ret); - SAFE_FREE(err_attr_name); - mm_file_destroy_content_attrs(content); - return METADATA_EXTRACTOR_ERROR_OPERATION_FAILED; - } - - metadata->attr_h = content; - metadata->audio_track_cnt = _audio_track_cnt; - metadata->video_track_cnt = _video_track_cnt; - - return ret; - + return __get_content_attrs(metadata, content); } static int __metadata_extractor_create_tag_attrs_from_buffer(metadata_extractor_s *metadata, const void *buffer, int size) @@ -224,16 +208,25 @@ static int __metadata_extractor_create_tag_attrs_from_buffer(metadata_extractor_ } +static bool __is_tag_param_valid(metadata_extractor_s *metadata, const char *attribute_name) +{ + metadata_extractor_retvm_if(!metadata, false, "Invalid metadata"); + metadata_extractor_retvm_if(!metadata->tag_h, false, "Invalid tag_h"); + metadata_extractor_retvm_if(!ME_STRING_VALID(attribute_name), false, "Invalid attribute_name"); + + return true; +} + static int __metadata_extractor_get_attr_int(metadata_extractor_s *metadata, const char *attribute_name, int *attr) { int ret = METADATA_EXTRACTOR_ERROR_NONE; char *err_attr_name = NULL; int _attr = 0; - metadata_extractor_retvm_if(metadata == NULL, METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - metadata_extractor_retvm_if(metadata->attr_h == NULL, METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Attr handle is null"); + metadata_extractor_retvm_if(!metadata, METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Invalid metadata"); + metadata_extractor_retvm_if(!metadata->attr_h , METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Invalid attr_h"); metadata_extractor_retvm_if(!ME_STRING_VALID(attribute_name), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Invalid attribute_name"); - metadata_extractor_retvm_if(attr == NULL, METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "attr is null"); + metadata_extractor_retvm_if(!attr, METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Invalid attr"); ret = mm_file_get_attrs(metadata->attr_h, &err_attr_name, attribute_name, &_attr, NULL); metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); @@ -245,44 +238,22 @@ static int __metadata_extractor_get_attr_int(metadata_extractor_s *metadata, con static int __metadata_extractor_get_audio_attr_int(metadata_extractor_s *metadata, const char *attribute_name, int *attr) { - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _attr = 0; - - metadata_extractor_retvm_if(metadata == NULL, METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - metadata_extractor_retvm_if(metadata->attr_h == NULL, METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Attr handle is null"); - metadata_extractor_retvm_if(!ME_STRING_VALID(attribute_name), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Invalid attribute_name"); - metadata_extractor_retvm_if(attr == NULL, METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "attr is null"); - - if (metadata->audio_track_cnt > 0) { - ret = mm_file_get_attrs(metadata->attr_h, &err_attr_name, attribute_name, &_attr, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - } + if (metadata && metadata->audio_track_cnt > 0) + return __metadata_extractor_get_attr_int(metadata, attribute_name, attr); - *attr = _attr; + *attr = 0; - return ret; + return METADATA_EXTRACTOR_ERROR_NONE; } static int __metadata_extractor_get_video_attr_int(metadata_extractor_s *metadata, const char *attribute_name, int *attr) { - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _attr = 0; + if (metadata && metadata->video_track_cnt > 0) + return __metadata_extractor_get_attr_int(metadata, attribute_name, attr); - metadata_extractor_retvm_if(metadata == NULL, METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - metadata_extractor_retvm_if(metadata->attr_h == NULL, METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Attr handle is null"); - metadata_extractor_retvm_if(!ME_STRING_VALID(attribute_name), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Invalid attribute_name"); - metadata_extractor_retvm_if(attr == NULL, METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "attr is null"); - - if (metadata->video_track_cnt > 0) { - ret = mm_file_get_attrs(metadata->attr_h, &err_attr_name, attribute_name, &_attr, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - } + *attr = 0; - *attr = _attr; - - return ret; + return METADATA_EXTRACTOR_ERROR_NONE; } static int __metadata_extractor_get_audio_track_count(metadata_extractor_s *metadata, int *track_cnt) @@ -334,10 +305,8 @@ static int __metadata_extractor_get_tag_str(metadata_extractor_s *metadata, cons char *_tag = NULL; int _tag_len = 0; - metadata_extractor_retvm_if(metadata == NULL, METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - metadata_extractor_retvm_if(metadata->tag_h == NULL, METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Tag handle is null"); - metadata_extractor_retvm_if(!ME_STRING_VALID(attribute_name), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Invalid attribute_name"); - metadata_extractor_retvm_if(tag == NULL, METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "tag is null"); + metadata_extractor_retvm_if(!__is_tag_param_valid(metadata, attribute_name), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "fail to __is_tag_param_valid()"); + metadata_extractor_retvm_if(!tag, METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Invalid tag"); ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, attribute_name, &_tag, &_tag_len, NULL); metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); @@ -353,10 +322,8 @@ static int __metadata_extractor_get_tag_int(metadata_extractor_s *metadata, cons char *err_attr_name = NULL; int _tag = 0; - metadata_extractor_retvm_if(metadata == NULL, METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - metadata_extractor_retvm_if(metadata->tag_h == NULL, METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Tag handle is null"); - metadata_extractor_retvm_if(!ME_STRING_VALID(attribute_name), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Invalid attribute_name"); - metadata_extractor_retvm_if(tag == NULL, METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "tag is null"); + metadata_extractor_retvm_if(!__is_tag_param_valid(metadata, attribute_name), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "fail to __is_tag_param_valid()"); + metadata_extractor_retvm_if(!tag, METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Invalid tag"); ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, attribute_name, &_tag, NULL); metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); @@ -372,10 +339,8 @@ static int __metadata_extractor_get_tag_double(metadata_extractor_s *metadata, c char *err_attr_name = NULL; double _tag = 0; - metadata_extractor_retvm_if(metadata == NULL, METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - metadata_extractor_retvm_if(metadata->tag_h == NULL, METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Tag handle is null"); - metadata_extractor_retvm_if(!ME_STRING_VALID(attribute_name), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Invalid attribute_name"); - metadata_extractor_retvm_if(tag == NULL, METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "tag is null"); + metadata_extractor_retvm_if(!__is_tag_param_valid(metadata, attribute_name), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "fail to __is_tag_param_valid()"); + metadata_extractor_retvm_if(!tag, METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Invalid tag"); ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, attribute_name, &_tag, NULL); metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); @@ -599,45 +564,50 @@ int metadata_extractor_get_synclyrics(metadata_extractor_h metadata, int index, return ret; } -int metadata_extractor_get_metadata(metadata_extractor_h metadata, metadata_extractor_attr_e attribute, char **value) +static int __extract_meta(metadata_extractor_s *metadata, metadata_extractor_attr_e attribute) { - int ret = METADATA_EXTRACTOR_ERROR_NONE; - metadata_extractor_s *_metadata = (metadata_extractor_s *)metadata; - int i_value = 0; - double d_value = 0; - char *s_value = NULL; - int is_string = 0; - int is_double = 0; + metadata_extractor_retvm_if(!metadata, METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Invalid parameter"); - metadata_extractor_retvm_if((!_metadata) || ((!_metadata->path) && (!_metadata->buffer)), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Invalid parameter"); + /*metadata_extractor_debug("attribute [%d]", attribute); */ if ((attribute == METADATA_HAS_VIDEO) || (attribute == METADATA_HAS_AUDIO)) { - if (_metadata->path != NULL) - ret = __metadata_extractor_check_and_extract_meta(_metadata, METADATA_TYPE_STREAM); + if (metadata->path != NULL) + return __metadata_extractor_check_and_extract_meta(metadata, METADATA_TYPE_STREAM); else - ret = __metadata_extractor_check_and_extract_meta(_metadata, METADATA_TYPE_ATTR); - } else if ((attribute >= METADATA_DURATION) && (attribute < METADATA_HAS_AUDIO)) - ret = __metadata_extractor_check_and_extract_meta(_metadata, METADATA_TYPE_ATTR); - else if ((attribute > METADATA_HAS_AUDIO) && (attribute <= METADATA_ROTATE)) - ret = __metadata_extractor_check_and_extract_meta(_metadata, METADATA_TYPE_TAG); + return __metadata_extractor_check_and_extract_meta(metadata, METADATA_TYPE_ATTR); + } else if ((attribute >= METADATA_DURATION) && (attribute < METADATA_HAS_AUDIO)) { + return __metadata_extractor_check_and_extract_meta(metadata, METADATA_TYPE_ATTR); + } else if ((attribute > METADATA_HAS_AUDIO) && (attribute <= METADATA_ROTATE)) { + return __metadata_extractor_check_and_extract_meta(metadata, METADATA_TYPE_TAG); #ifdef SUPPORT_GSPHERICAL_METADATA - else if (((attribute >= METADATA_360) && (attribute <= METADATA_AMBISONIC_ORDER))) - ret = __metadata_extractor_check_and_extract_meta(_metadata, METADATA_TYPE_TAG); + } else if (((attribute >= METADATA_360) && (attribute <= METADATA_AMBISONIC_ORDER))) { + return __metadata_extractor_check_and_extract_meta(metadata, METADATA_TYPE_TAG); #else - else if (attribute == METADATA_360) - ret = __metadata_extractor_check_and_extract_meta(_metadata, METADATA_TYPE_TAG); + } else if (attribute == METADATA_360) { + return __metadata_extractor_check_and_extract_meta(metadata, METADATA_TYPE_TAG); #endif - else if ((attribute == METADATA_AUDIO_CODEC) || (attribute == METADATA_VIDEO_CODEC)) - ret = __metadata_extractor_check_and_extract_meta(_metadata, METADATA_TYPE_ATTR); - else { + } else if ((attribute == METADATA_AUDIO_CODEC) || (attribute == METADATA_VIDEO_CODEC)) { + return __metadata_extractor_check_and_extract_meta(metadata, METADATA_TYPE_ATTR); + } else { metadata_extractor_error("INVALID_PARAMETER [%d]", attribute); - ret = METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER; + return METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER; } +} - if (ret != METADATA_EXTRACTOR_ERROR_NONE) - return ret; +int metadata_extractor_get_metadata(metadata_extractor_h metadata, metadata_extractor_attr_e attribute, char **value) +{ + int ret = METADATA_EXTRACTOR_ERROR_NONE; + metadata_extractor_s *_metadata = (metadata_extractor_s *)metadata; + int i_value = 0; + double d_value = 0; + char *s_value = NULL; + int is_string = 0; + int is_double = 0; - /*metadata_extractor_debug("attribute [%d]", attribute); */ + metadata_extractor_retvm_if((!_metadata) || ((!_metadata->path) && (!_metadata->buffer)), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Invalid parameter"); + + ret = __extract_meta(_metadata, attribute); + metadata_extractor_retvm_if(ret != METADATA_EXTRACTOR_ERROR_NONE, ret, "fail to __metadata_extractor_extract_meta() [%d]", ret); switch ((int)attribute) { /*TODO (m.alieksieie): Remove casting after ACR*/ case METADATA_DURATION: { |