diff options
author | hj kim <backto.kim@samsung.com> | 2018-09-19 14:52:53 +0900 |
---|---|---|
committer | hj kim <backto.kim@samsung.com> | 2018-09-19 15:06:41 +0900 |
commit | 5cd2da7729e5589028a9dd81474fccc784ea15ee (patch) | |
tree | 88ce1788b03ebbf7743555c179c19c628c2909ef | |
parent | 1bd9bdef2b685f0f3a8b9394728a04c7ce9a4e5b (diff) | |
download | metadata-extractor-5cd2da7729e5589028a9dd81474fccc784ea15ee.tar.gz metadata-extractor-5cd2da7729e5589028a9dd81474fccc784ea15ee.tar.bz2 metadata-extractor-5cd2da7729e5589028a9dd81474fccc784ea15ee.zip |
Code refactoringsubmit/tizen_5.0/20181101.000002submit/tizen/20180919.063447accepted/tizen/unified/20180920.063832accepted/tizen/5.0/unified/20181102.013512
Change-Id: Id176b97081d51452420743bf9680c91e88db85b1
-rwxr-xr-x | include/metadata_extractor_private.h | 1 | ||||
-rwxr-xr-x | src/metadata_extractor.c | 1189 |
2 files changed, 119 insertions, 1071 deletions
diff --git a/include/metadata_extractor_private.h b/include/metadata_extractor_private.h index a26fe52..fd9a03c 100755 --- a/include/metadata_extractor_private.h +++ b/include/metadata_extractor_private.h @@ -32,6 +32,7 @@ extern "C" { #define LOG_TAG "CAPI_MEDIA_METADATA_EXTRACTOR" #define SAFE_FREE(src) { if (src) {free(src); src = NULL; } } +#define ME_STRING_VALID(str) ((str != NULL && strlen(str) > 0) ? TRUE : FALSE) #define metadata_extractor_debug(fmt, arg...) do { \ LOGD(""fmt"", ##arg); \ diff --git a/src/metadata_extractor.c b/src/metadata_extractor.c index 51b7a96..2de7779 100755 --- a/src/metadata_extractor.c +++ b/src/metadata_extractor.c @@ -23,7 +23,6 @@ #define META_MAX_LEN 256 - typedef enum { METADATA_TYPE_STREAM = 0, METADATA_TYPE_ATTR, @@ -37,78 +36,12 @@ static int __metadata_extractor_create_tag_attr(metadata_extractor_s *metadata, static int __metadata_extractor_create_content_attrs_from_buffer(metadata_extractor_s *metadata, const void *buffer, int size); static int __metadata_extractor_create_tag_attrs_from_buffer(metadata_extractor_s *metadata, const void *buffer, int size); static int __metadata_extractor_get_artwork(metadata_extractor_s *metadata, void **artwork, int *artwork_size); -static int __metadata_extractor_get_artwork_mime(metadata_extractor_s *metadata, char **artwork_mime); static int __metadata_extractor_get_video_thumbnail(metadata_extractor_s *metadata, void **thumbnail, int *thumbnail_len); -static int __metadata_extractor_get_duration(metadata_extractor_s *metadata, int *duration); -static int __metadata_extractor_get_audio_bitrate(metadata_extractor_s *metadata, int *bitrate); -static int __metadata_extractor_get_audio_channel(metadata_extractor_s *metadata, int *channel); -static int __metadata_extractor_get_audio_samplerate(metadata_extractor_s *metadata, int *samplerate); static int __metadata_extractor_get_audio_track_count(metadata_extractor_s *metadata, int *track_cnt); -static int __metadata_extractor_get_video_bitrate(metadata_extractor_s *metadata, int *bitrate); -static int __metadata_extractor_get_video_FPS(metadata_extractor_s *metadata, int *fps); -static int __metadata_extractor_get_video_width(metadata_extractor_s *metadata, int *width); -static int __metadata_extractor_get_video_height(metadata_extractor_s *metadata, int *height); static int __metadata_extractor_get_video_track_count(metadata_extractor_s *metadata, int *track_cnt); -static int __metadata_extractor_get_artist(metadata_extractor_s *metadata, char **artist); -static int __metadata_extractor_get_title(metadata_extractor_s *metadata, char **title); -static int __metadata_extractor_get_album(metadata_extractor_s *metadata, char **album); -static int __metadata_extractor_get_album_artist(metadata_extractor_s *metadata, char **album_artist); -static int __metadata_extractor_get_genre(metadata_extractor_s *metadata, char **genre); -static int __metadata_extractor_get_author(metadata_extractor_s *metadata, char **author); -static int __metadata_extractor_get_copyright(metadata_extractor_s *metadata, char **copyright); -static int __metadata_extractor_get_date(metadata_extractor_s *metadata, char **date); -static int __metadata_extractor_get_description(metadata_extractor_s *metadata, char **description); -static int __metadata_extractor_get_comment(metadata_extractor_s *metadata, char **comment); -static int __metadata_extractor_get_track_num(metadata_extractor_s *metadata, char **track_num); -static int __metadata_extractor_get_classification(metadata_extractor_s *metadata, char **classification); -static int __metadata_extractor_get_rating(metadata_extractor_s *metadata, char **rating); -static int __metadata_extractor_get_longitude(metadata_extractor_s *metadata, double *longitude); -static int __metadata_extractor_get_latitude(metadata_extractor_s *metadata, double *latitude); -static int __metadata_extractor_get_altitude(metadata_extractor_s *metadata, double *altitude); -static int __metadata_extractor_get_conductor(metadata_extractor_s *metadata, char **conductor); -static int __metadata_extractor_get_unsynclyrics(metadata_extractor_s *metadata, char **unsynclyrics); -static int __metadata_extractor_get_recording_date(metadata_extractor_s *metadata, char **rec_date); -static int __metadata_extractor_get_rotate(metadata_extractor_s *metadata, char **rotate); -static int __metadata_extractor_get_synclyrics_pair_num(metadata_extractor_s *metadata, int *synclyrics_num); static int __metadata_extractor_destroy_handle(metadata_extractor_s *metadata); static int __metadata_extractor_get_audio_codec(metadata_extractor_s *metadata, char **audio_codec); static int __metadata_extractor_get_video_codec(metadata_extractor_s *metadata, char **video_codec); -static int __metadata_extractor_get_is_360(metadata_extractor_s *metadata, int *is_360); - -#ifdef SUPPORT_GSPHERICAL_METADATA -static int __metadata_extractor_get_is_stitched_v1(metadata_extractor_s *metadata, int *is_stitched); -static int __metadata_extractor_get_projection_type_v1(metadata_extractor_s *metadata, char **projection_type); -static int __metadata_extractor_get_stitching_software_v1(metadata_extractor_s *metadata, char **stitching_software); -static int __metadata_extractor_get_stereo_mode_v1(metadata_extractor_s *metadata, char **stereo_mode); -static int __metadata_extractor_get_source_count_v1(metadata_extractor_s *metadata, int *source_count); -static int __metadata_extractor_get_initial_view_heading_degrees_v1(metadata_extractor_s *metadata, int32_t *initial_view_heading_degrees); -static int __metadata_extractor_get_initial_view_pitch_degrees_v1(metadata_extractor_s *metadata, int32_t *initial_view_pitch_degrees); -static int __metadata_extractor_get_initial_view_roll_degrees_v1(metadata_extractor_s *metadata, int32_t *initial_view_roll_degrees); -static int __metadata_extractor_get_timestamp_v1(metadata_extractor_s *metadata, int *timestamp); -static int __metadata_extractor_get_full_pano_width_pixels_v1(metadata_extractor_s *metadata, int *full_pano_width_pixels); -static int __metadata_extractor_get_full_pano_height_pixels_v1(metadata_extractor_s *metadata, int *full_pano_height_pixels); -static int __metadata_extractor_get_cropped_area_image_width_v1(metadata_extractor_s *metadata, int *cropped_area_image_width); -static int __metadata_extractor_get_cropped_area_image_height_v1(metadata_extractor_s *metadata, int *cropped_area_image_height); -static int __metadata_extractor_get_cropped_area_left_v1(metadata_extractor_s *metadata, int *cropped_area_left); -static int __metadata_extractor_get_cropped_area_top_v1(metadata_extractor_s *metadata, int *cropped_area_top); - -static int __metadata_extractor_get_stereo_mode_v2(metadata_extractor_s *metadata, int *stereo_mode_v2); -static int __metadata_extractor_get_proj_type_v2(metadata_extractor_s *metadata, int *proj_type_v2); -static int __metadata_extractor_get_metadata_source_v2(metadata_extractor_s *metadata, char **metadata_source_v2); -static int __metadata_extractor_get_pose_yaw_degrees_v2(metadata_extractor_s *metadata, int *pose_yaw_degrees_v2); -static int __metadata_extractor_get_pose_pitch_degrees_v2(metadata_extractor_s *metadata, int *pose_pitch_degrees_v2); -static int __metadata_extractor_get_pose_roll_degrees_v2(metadata_extractor_s *metadata, int *pose_roll_degrees_v2); -static int __metadata_extractor_get_cbmp_layout_v2(metadata_extractor_s *metadata, int *cbmp_layout_v2); -static int __metadata_extractor_get_cbmp_padding_v2(metadata_extractor_s *metadata, int *cbmp_padding_v2); -static int __metadata_extractor_get_equi_projection_bounds_top_v2(metadata_extractor_s *metadata, int *equi_projection_bounds_top_v2); -static int __metadata_extractor_get_equi_projection_bounds_bottom_v2(metadata_extractor_s *metadata, int *equi_projection_bounds_bottom_v2); -static int __metadata_extractor_get_equi_projection_bounds_left_v2(metadata_extractor_s *metadata, int *equi_projection_bounds_left_v2); -static int __metadata_extractor_get_equi_projection_bounds_right_v2(metadata_extractor_s *metadata, int *equi_projection_bounds_right_v2); - -static int __metadata_extractor_get_ambisonic_type(metadata_extractor_s *metadata, int *ambisonic_type); -static int __metadata_extractor_get_ambisonic_format(metadata_extractor_s *metadata, int *ambisonic_format); -static int __metadata_extractor_get_ambisonic_order(metadata_extractor_s *metadata, int *ambisonic_order); -#endif static int __metadata_extractor_check_and_extract_meta(metadata_extractor_s *metadata, metadata_extractor_type_e metadata_type) { @@ -319,90 +252,63 @@ static int __metadata_extractor_create_tag_attrs_from_buffer(metadata_extractor_ } -static int __metadata_extractor_get_duration(metadata_extractor_s *metadata, int *duration) +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 _duration = 0; + int _attr = 0; - metadata_extractor_retvm_if((!metadata) || (!metadata->attr_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); + 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"); - ret = mm_file_get_attrs(metadata->attr_h, &err_attr_name, MM_FILE_CONTENT_DURATION, &_duration, NULL); + 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); - *duration = _duration; - - return ret; -} - -static int __metadata_extractor_get_audio_bitrate(metadata_extractor_s *metadata, int *bitrate) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _audio_bitrate = 0; - - metadata_extractor_retvm_if((!metadata) || (!metadata->attr_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - if (metadata->audio_track_cnt > 0) { - ret = mm_file_get_attrs(metadata->attr_h, &err_attr_name, MM_FILE_CONTENT_AUDIO_BITRATE, &_audio_bitrate, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - } - - *bitrate = _audio_bitrate; - - return ret; -} - -static int __metadata_extractor_get_audio_channel(metadata_extractor_s *metadata, int *channel) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _audio_channel = 0; - - metadata_extractor_retvm_if((!metadata) || (!metadata->attr_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - if (metadata->audio_track_cnt > 0) { - ret = mm_file_get_attrs(metadata->attr_h, &err_attr_name, MM_FILE_CONTENT_AUDIO_CHANNELS, &_audio_channel, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - } - - *channel = _audio_channel; + *attr = _attr; return ret; } -static int __metadata_extractor_get_audio_samplerate(metadata_extractor_s *metadata, int *samplerate) +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 _audio_samplerate = 0; + int _attr = 0; - metadata_extractor_retvm_if((!metadata) || (!metadata->attr_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); + 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, MM_FILE_CONTENT_AUDIO_SAMPLERATE, &_audio_samplerate, NULL); + 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); } - *samplerate = _audio_samplerate; + *attr = _attr; return ret; } -static int __metadata_extractor_get_audio_bitpersample(metadata_extractor_s *metadata, int *bitpersample) +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 _audio_bit_per_sample = 0; + int _attr = 0; - metadata_extractor_retvm_if((!metadata) || (!metadata->attr_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); + 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, MM_FILE_CONTENT_AUDIO_BITPERSAMPLE, &_audio_bit_per_sample, 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); } - *bitpersample = _audio_bit_per_sample; + *attr = _attr; return ret; } @@ -418,77 +324,6 @@ static int __metadata_extractor_get_audio_track_count(metadata_extractor_s *meta return ret; } -static int __metadata_extractor_get_video_bitrate(metadata_extractor_s *metadata, int *bitrate) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _video_bitrate = 0; - - metadata_extractor_retvm_if((!metadata) || (!metadata->attr_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - if (metadata->video_track_cnt > 0) { - ret = mm_file_get_attrs(metadata->attr_h, &err_attr_name, MM_FILE_CONTENT_VIDEO_BITRATE, &_video_bitrate, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - } - *bitrate = _video_bitrate; - - return ret; -} - -static int __metadata_extractor_get_video_FPS(metadata_extractor_s *metadata, int *fps) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _video_fps = 0; - - metadata_extractor_retvm_if((!metadata) || (!metadata->attr_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - if (metadata->video_track_cnt > 0) { - ret = mm_file_get_attrs(metadata->attr_h, &err_attr_name, MM_FILE_CONTENT_VIDEO_FPS, &_video_fps, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - } - - *fps = _video_fps; - - return ret; -} - -static int __metadata_extractor_get_video_width(metadata_extractor_s *metadata, int *width) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _video_width = 0; - - metadata_extractor_retvm_if((!metadata) || (!metadata->attr_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - if (metadata->video_track_cnt > 0) { - ret = mm_file_get_attrs(metadata->attr_h, &err_attr_name, MM_FILE_CONTENT_VIDEO_WIDTH, &_video_width, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - } - - *width = _video_width; - - return ret; -} - -static int __metadata_extractor_get_video_height(metadata_extractor_s *metadata, int *height) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _video_height = 0; - - metadata_extractor_retvm_if((!metadata) || (!metadata->attr_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - if (metadata->video_track_cnt > 0) { - ret = mm_file_get_attrs(metadata->attr_h, &err_attr_name, MM_FILE_CONTENT_VIDEO_HEIGHT, &_video_height, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - } - - *height = _video_height; - - return ret; -} - static int __metadata_extractor_get_video_thumbnail(metadata_extractor_s *metadata, void **thumbnail, int *thumbnail_len) { int ret = METADATA_EXTRACTOR_ERROR_NONE; @@ -520,152 +355,60 @@ static int __metadata_extractor_get_video_track_count(metadata_extractor_s *meta return ret; } -static int __metadata_extractor_get_artist(metadata_extractor_s *metadata, char **artist) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - char *_artist = NULL; - int _tag_len = 0; - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_ARTIST, &_artist, &_tag_len, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *artist = _artist; - - return ret; -} - -static int __metadata_extractor_get_title(metadata_extractor_s *metadata, char **title) +static int __metadata_extractor_get_tag_str(metadata_extractor_s *metadata, const char *attribute_name, char **tag) { int ret = METADATA_EXTRACTOR_ERROR_NONE; char *err_attr_name = NULL; - char *_title = NULL; + char *_tag = NULL; int _tag_len = 0; - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_TITLE, &_title, &_tag_len, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *title = _title; - - return ret; -} - -static int __metadata_extractor_get_album(metadata_extractor_s *metadata, char **album) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - char *_album = NULL; - int _tag_len = 0; - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_ALBUM, &_album, &_tag_len, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *album = _album; - - return ret; -} - -static int __metadata_extractor_get_album_artist(metadata_extractor_s *metadata, char **album_artist) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - char *_album_artist = NULL; - int _tag_len = 0; - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_ALBUM_ARTIST, &_album_artist, &_tag_len, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *album_artist = _album_artist; - - return ret; -} - -static int __metadata_extractor_get_genre(metadata_extractor_s *metadata, char **genre) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - char *_genre = NULL; - int _tag_len = 0; - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_GENRE, &_genre, &_tag_len, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *genre = _genre; - - return ret; -} - -static int __metadata_extractor_get_author(metadata_extractor_s *metadata, char **author) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - char *_author = 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"); - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_AUTHOR, &_author, &_tag_len, NULL); + 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); - *author = _author; + *tag = _tag; return ret; } -static int __metadata_extractor_get_copyright(metadata_extractor_s *metadata, char **copyright) +static int __metadata_extractor_get_tag_int(metadata_extractor_s *metadata, const char *attribute_name, int *tag) { int ret = METADATA_EXTRACTOR_ERROR_NONE; char *err_attr_name = NULL; - char *_copyright = NULL; - int _tag_len = 0; - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_COPYRIGHT, &_copyright, &_tag_len, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *copyright = _copyright; - - return ret; -} + int _tag = 0; -static int __metadata_extractor_get_date(metadata_extractor_s *metadata, char **date) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - char *_date = 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"); - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_DATE, &_date, &_tag_len, NULL); + 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); - *date = _date; + *tag = _tag; return ret; } -static int __metadata_extractor_get_description(metadata_extractor_s *metadata, char **description) +static int __metadata_extractor_get_tag_double(metadata_extractor_s *metadata, const char *attribute_name, double *tag) { int ret = METADATA_EXTRACTOR_ERROR_NONE; char *err_attr_name = NULL; - char *_description = NULL; - int _tag_len = 0; - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_DESCRIPTION, &_description, &_tag_len, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *description = _description; + double _tag = 0; - return ret; -} - -static int __metadata_extractor_get_comment(metadata_extractor_s *metadata, char **comment) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - char *_comment = 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"); - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_COMMENT, &_comment, &_tag_len, NULL); + 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); - *comment = _comment; + *tag = _tag; return ret; } @@ -692,186 +435,9 @@ static int __metadata_extractor_get_artwork(metadata_extractor_s *metadata, void return ret; } -static int __metadata_extractor_get_artwork_mime(metadata_extractor_s *metadata, char **artwork_mime) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - char *_artwork_mime = NULL; - int _tag_len = 0; - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_ARTWORK_MIME, &_artwork_mime, &_tag_len, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *artwork_mime = _artwork_mime; - - return ret; -} - - -static int __metadata_extractor_get_track_num(metadata_extractor_s *metadata, char **track_num) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - char *_track_num = NULL; - int _tag_len = 0; - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_TRACK_NUM, &_track_num, &_tag_len, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *track_num = _track_num; - - return ret; -} - -static int __metadata_extractor_get_classification(metadata_extractor_s *metadata, char **classification) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - char *_classification = NULL; - int _tag_len = 0; - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_CLASSIFICATION, &_classification, &_tag_len, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *classification = _classification; - - return ret; -} - -static int __metadata_extractor_get_rating(metadata_extractor_s *metadata, char **rating) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - char *_rating = NULL; - int _tag_len = 0; - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_RATING, &_rating, &_tag_len, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *rating = _rating; - - return ret; -} - -static int __metadata_extractor_get_longitude(metadata_extractor_s *metadata, double *longitude) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - double _longitude = 0; - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_LONGITUDE, &_longitude, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *longitude = _longitude; - - return ret; -} - -static int __metadata_extractor_get_latitude(metadata_extractor_s *metadata, double *latitude) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - double _latitude = 0; - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_LATIDUE, &_latitude, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *latitude = _latitude; - - return ret; -} - -static int __metadata_extractor_get_altitude(metadata_extractor_s *metadata, double *altitude) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - double _altitude = 0; - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_ALTIDUE, &_altitude, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *altitude = _altitude; - - return ret; -} - -static int __metadata_extractor_get_conductor(metadata_extractor_s *metadata, char **conductor) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - char *_conductor = NULL; - int _tag_len = 0; - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_CONDUCTOR, &_conductor, &_tag_len, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *conductor = _conductor; - - return ret; -} -static int __metadata_extractor_get_unsynclyrics(metadata_extractor_s *metadata, char **unsynclyrics) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - char *_unsynclyrics = NULL; - int _tag_len = 0; - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_UNSYNCLYRICS, &_unsynclyrics, &_tag_len, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *unsynclyrics = _unsynclyrics; - - return ret; -} - -static int __metadata_extractor_get_recording_date(metadata_extractor_s *metadata, char **rec_date) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - char *_rec_date = NULL; - int _tag_len = 0; - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_RECDATE, &_rec_date, &_tag_len, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *rec_date = _rec_date; - - return ret; -} - -static int __metadata_extractor_get_rotate(metadata_extractor_s *metadata, char **rotate) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - char *_rotate = NULL; - int _tag_len = 0; - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_ROTATE, &_rotate, &_tag_len, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *rotate = _rotate; - - return ret; -} - -static int __metadata_extractor_get_synclyrics_pair_num(metadata_extractor_s *metadata, int *synclyrics_num) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _synclyrics_num = 0; - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_SYNCLYRICS_NUM, &_synclyrics_num, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *synclyrics_num = _synclyrics_num; - - return ret; -} - static int __metadata_extractor_get_audio_codec(metadata_extractor_s *metadata, char **audio_codec) { int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; int audio_codec_idx = 0; int audio_codec_cnt = 45; @@ -884,12 +450,8 @@ static int __metadata_extractor_get_audio_codec(metadata_extractor_s *metadata, "PCM", "ALAW", "MULAW", "MS ADPCM", "FLAC" }; - metadata_extractor_retvm_if((!metadata) || (!metadata->attr_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - if (metadata->audio_track_cnt > 0) { - ret = mm_file_get_attrs(metadata->attr_h, &err_attr_name, MM_FILE_CONTENT_AUDIO_CODEC, &audio_codec_idx, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - } + ret = __metadata_extractor_get_audio_attr_int(metadata, MM_FILE_CONTENT_AUDIO_CODEC, &audio_codec_idx); + metadata_extractor_retvm_if(ret != METADATA_EXTRACTOR_ERROR_NONE, ret, "Fail to get codec idx"); if (audio_codec_idx < audio_codec_cnt) *audio_codec = strdup(AudioCodecTypeString[audio_codec_idx]); @@ -904,7 +466,6 @@ static int __metadata_extractor_get_audio_codec(metadata_extractor_s *metadata, static int __metadata_extractor_get_video_codec(metadata_extractor_s *metadata, char **video_codec) { int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; int video_codec_idx = 0; int video_codec_cnt = 29; @@ -916,12 +477,8 @@ static int __metadata_extractor_get_video_codec(metadata_extractor_s *metadata, "MPEG4 part-10 (h.264)", "Real", "VC-1", "AVS", "Cinepak", "Indeo", "Theora", "Flv" }; - metadata_extractor_retvm_if((!metadata) || (!metadata->attr_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - if (metadata->video_track_cnt > 0) { - ret = mm_file_get_attrs(metadata->attr_h, &err_attr_name, MM_FILE_CONTENT_VIDEO_CODEC, &video_codec_idx, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - } + ret = __metadata_extractor_get_video_attr_int(metadata, MM_FILE_CONTENT_AUDIO_CODEC, &video_codec_idx); + metadata_extractor_retvm_if(ret != METADATA_EXTRACTOR_ERROR_NONE, ret, "Fail to get codec idx"); if (video_codec_idx < video_codec_cnt) *video_codec = strdup(VideoCodecTypeString[video_codec_idx]); @@ -933,514 +490,6 @@ static int __metadata_extractor_get_video_codec(metadata_extractor_s *metadata, return ret; } -static int __metadata_extractor_get_is_360(metadata_extractor_s *metadata, int *is_360) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _is_360 = 0; - - metadata_extractor_retvm_if((!metadata) || (!metadata->tag_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_SPHERICAL, &_is_360, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *is_360 = _is_360; - - return ret; -} - -#ifdef SUPPORT_GSPHERICAL_METADATA -static int __metadata_extractor_get_is_stitched_v1(metadata_extractor_s *metadata, int *is_stitched) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _is_stitched = 0; - - metadata_extractor_retvm_if((!metadata) || (!metadata->tag_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_SPHERICAL_STITCHED, &_is_stitched, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *is_stitched = _is_stitched; - - return ret; -} - -static int __metadata_extractor_get_projection_type_v1(metadata_extractor_s *metadata, char **projection_type) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - char *_projection_type = NULL; - int _tag_len = 0; - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_SPHERICAL_PROJECTION_TYPE, &_projection_type, &_tag_len, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *projection_type = _projection_type; - - return ret; -} - -static int __metadata_extractor_get_stitching_software_v1(metadata_extractor_s *metadata, char **stitching_software) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - char *_stitching_software = NULL; - int _tag_len = 0; - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_SPHERICAL_STITCHING_SOFTWARE, &_stitching_software, &_tag_len, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *stitching_software = _stitching_software; - - return ret; -} - -static int __metadata_extractor_get_stereo_mode_v1(metadata_extractor_s *metadata, char **stereo_mode) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - char *_stereo_mode = NULL; - int _tag_len = 0; - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_SPHERICAL_STEREO_MODE, &_stereo_mode, &_tag_len, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *stereo_mode = _stereo_mode; - - return ret; -} - -static int __metadata_extractor_get_source_count_v1(metadata_extractor_s *metadata, int *source_count) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _source_count = 0; - - metadata_extractor_retvm_if((!metadata) || (!metadata->tag_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_SPHERICAL_SOURCE_COUNT, &_source_count, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *source_count = _source_count; - - return ret; -} - -static int __metadata_extractor_get_initial_view_heading_degrees_v1(metadata_extractor_s *metadata, int32_t *initial_view_heading_degrees) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _initial_view_heading_degrees = -1; - - metadata_extractor_retvm_if((!metadata) || (!metadata->tag_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_SPHERICAL_INIT_VIEW_HEADING, &_initial_view_heading_degrees, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *initial_view_heading_degrees = _initial_view_heading_degrees; - - return ret; -} - -static int __metadata_extractor_get_initial_view_pitch_degrees_v1(metadata_extractor_s *metadata, int32_t *initial_view_pitch_degrees) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _initial_view_pitch_degrees = -1; - - metadata_extractor_retvm_if((!metadata) || (!metadata->tag_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_SPHERICAL_INIT_VIEW_PITCH, &_initial_view_pitch_degrees, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *initial_view_pitch_degrees = _initial_view_pitch_degrees; - - return ret; -} - -static int __metadata_extractor_get_initial_view_roll_degrees_v1(metadata_extractor_s *metadata, int32_t *initial_view_roll_degrees) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _initial_view_roll_degrees = -1; - - metadata_extractor_retvm_if((!metadata) || (!metadata->tag_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_SPHERICAL_INIT_VIEW_ROLL, &_initial_view_roll_degrees, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *initial_view_roll_degrees = _initial_view_roll_degrees; - - return ret; -} - -static int __metadata_extractor_get_timestamp_v1(metadata_extractor_s *metadata, int *timestamp) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _timestamp = 0; - - metadata_extractor_retvm_if((!metadata) || (!metadata->tag_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_SPHERICAL_TIMESTAMP, &_timestamp, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *timestamp = _timestamp; - - return ret; -} - -static int __metadata_extractor_get_full_pano_width_pixels_v1(metadata_extractor_s *metadata, int *full_pano_width_pixels) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _full_pano_width_pixels = 0; - - metadata_extractor_retvm_if((!metadata) || (!metadata->tag_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_SPHERICAL_FULL_PANO_WIDTH, &_full_pano_width_pixels, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *full_pano_width_pixels = _full_pano_width_pixels; - - return ret; -} - -static int __metadata_extractor_get_full_pano_height_pixels_v1(metadata_extractor_s *metadata, int *full_pano_height_pixels) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _full_pano_height_pixels = 0; - - metadata_extractor_retvm_if((!metadata) || (!metadata->tag_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_SPHERICAL_FULL_PANO_HEIGHT, &_full_pano_height_pixels, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *full_pano_height_pixels = _full_pano_height_pixels; - - return ret; -} - -static int __metadata_extractor_get_cropped_area_image_width_v1(metadata_extractor_s *metadata, int *cropped_area_image_width) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _cropped_area_image_width = 0; - - metadata_extractor_retvm_if((!metadata) || (!metadata->tag_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_SPHERICAL_CROPPED_AREA_IMAGE_WIDTH, &_cropped_area_image_width, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *cropped_area_image_width = _cropped_area_image_width; - - return ret; -} - -static int __metadata_extractor_get_cropped_area_image_height_v1(metadata_extractor_s *metadata, int *cropped_area_image_height) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _cropped_area_image_height = 0; - - metadata_extractor_retvm_if((!metadata) || (!metadata->tag_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_SPHERICAL_CROPPED_AREA_IMAGE_HEIGHT, &_cropped_area_image_height, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *cropped_area_image_height = _cropped_area_image_height; - - return ret; -} - -static int __metadata_extractor_get_cropped_area_left_v1(metadata_extractor_s *metadata, int *cropped_area_left) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _cropped_area_left = 0; - - metadata_extractor_retvm_if((!metadata) || (!metadata->tag_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_SPHERICAL_CROPPED_AREA_LEFT, &_cropped_area_left, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *cropped_area_left = _cropped_area_left; - - return ret; -} - -static int __metadata_extractor_get_cropped_area_top_v1(metadata_extractor_s *metadata, int *cropped_area_top) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _cropped_area_top = 0; - - metadata_extractor_retvm_if((!metadata) || (!metadata->tag_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_SPHERICAL_CROPPED_AREA_TOP, &_cropped_area_top, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *cropped_area_top = _cropped_area_top; - - return ret; -} - -static int __metadata_extractor_get_ambisonic_type(metadata_extractor_s *metadata, int *ambisonic_type) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _ambisonic_type = -1; - *ambisonic_type = -1; - - metadata_extractor_retvm_if((!metadata) || (!metadata->tag_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_AMBISONIC_TYPE, &_ambisonic_type, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *ambisonic_type = _ambisonic_type; - - return ret; -} - -static int __metadata_extractor_get_ambisonic_format(metadata_extractor_s *metadata, int *ambisonic_format) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _ambisonic_format = -1; - *ambisonic_format = -1; - - metadata_extractor_retvm_if((!metadata) || (!metadata->tag_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_AMBISONIC_FORMAT, &_ambisonic_format, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *ambisonic_format = _ambisonic_format; - - return ret; -} - -static int __metadata_extractor_get_ambisonic_order(metadata_extractor_s *metadata, int *ambisonic_order) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _ambisonic_order = -1; - *ambisonic_order = -1; - - metadata_extractor_retvm_if((!metadata) || (!metadata->tag_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_AMBISONIC_ORDER, &_ambisonic_order, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *ambisonic_order = _ambisonic_order; - - return ret; -} - -static int __metadata_extractor_get_stereo_mode_v2(metadata_extractor_s *metadata, int *stereo_mode_v2) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _stereo_mode_v2 = -1; - *stereo_mode_v2 = -1; - - metadata_extractor_retvm_if((!metadata) || (!metadata->tag_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_SPHERICAL_V2_STEREO_MODE, &_stereo_mode_v2, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *stereo_mode_v2 = _stereo_mode_v2; - - return ret; -} - -static int __metadata_extractor_get_metadata_source_v2(metadata_extractor_s *metadata, char **metadata_source_v2) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - char *_metadata_source_v2 = NULL; - int _tag_len = 0; - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_SPHERICAL_V2_METADATA_SOURCE, &_metadata_source_v2, &_tag_len, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *metadata_source_v2 = _metadata_source_v2; - - return ret; -} - -static int __metadata_extractor_get_proj_type_v2(metadata_extractor_s *metadata, int *proj_type_v2) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _proj_type_v2 = -1; - *proj_type_v2 = -1; - - metadata_extractor_retvm_if((!metadata) || (!metadata->tag_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_SPHERICAL_V2_PROJ_TYPE, &_proj_type_v2, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *proj_type_v2 = _proj_type_v2; - - return ret; -} - -static int __metadata_extractor_get_pose_yaw_degrees_v2(metadata_extractor_s *metadata, int *pose_yaw_degrees_v2) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _pose_yaw_degrees_v2 = -1; - *pose_yaw_degrees_v2 = -1; - - metadata_extractor_retvm_if((!metadata) || (!metadata->tag_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_SPHERICAL_V2_POSE_YAW, &_pose_yaw_degrees_v2, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *pose_yaw_degrees_v2 = _pose_yaw_degrees_v2; - - return ret; -} - -static int __metadata_extractor_get_pose_pitch_degrees_v2(metadata_extractor_s *metadata, int *pose_pitch_degrees_v2) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _pose_pitch_degrees_v2 = -1; - *pose_pitch_degrees_v2 = -1; - - metadata_extractor_retvm_if((!metadata) || (!metadata->tag_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_SPHERICAL_V2_POSE_PITCH, &_pose_pitch_degrees_v2, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *pose_pitch_degrees_v2 = _pose_pitch_degrees_v2; - - return ret; -} - -static int __metadata_extractor_get_pose_roll_degrees_v2(metadata_extractor_s *metadata, int *pose_roll_degrees_v2) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _pose_roll_degrees_v2 = -1; - *pose_roll_degrees_v2 = -1; - - metadata_extractor_retvm_if((!metadata) || (!metadata->tag_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_SPHERICAL_V2_POSE_ROLL, &_pose_roll_degrees_v2, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *pose_roll_degrees_v2 = _pose_roll_degrees_v2; - - return ret; -} - -static int __metadata_extractor_get_cbmp_layout_v2(metadata_extractor_s *metadata, int *cbmp_layout_v2) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _cbmp_layout_v2 = -1; - *cbmp_layout_v2 = -1; - - metadata_extractor_retvm_if((!metadata) || (!metadata->tag_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_SPHERICAL_V2_CBMP_LAYOUT, &_cbmp_layout_v2, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *cbmp_layout_v2 = _cbmp_layout_v2; - - return ret; -} - -static int __metadata_extractor_get_cbmp_padding_v2(metadata_extractor_s *metadata, int *cbmp_padding_v2) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _cbmp_padding_v2 = -1; - *cbmp_padding_v2 = -1; - - metadata_extractor_retvm_if((!metadata) || (!metadata->tag_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_SPHERICAL_V2_CBMP_PADDING, &_cbmp_padding_v2, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *cbmp_padding_v2 = _cbmp_padding_v2; - - return ret; -} - -static int __metadata_extractor_get_equi_projection_bounds_top_v2(metadata_extractor_s *metadata, int *equi_projection_bounds_top_v2) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _equi_projection_bounds_top_v2 = -1; - *equi_projection_bounds_top_v2 = -1; - - metadata_extractor_retvm_if((!metadata) || (!metadata->tag_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_SPHERICAL_V2_EQUI_BOUNDS_TOP, &_equi_projection_bounds_top_v2, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *equi_projection_bounds_top_v2 = _equi_projection_bounds_top_v2; - - return ret; -} - -static int __metadata_extractor_get_equi_projection_bounds_bottom_v2(metadata_extractor_s *metadata, int *equi_projection_bounds_bottom_v2) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _equi_projection_bounds_bottom_v2 = -1; - *equi_projection_bounds_bottom_v2 = -1; - - metadata_extractor_retvm_if((!metadata) || (!metadata->tag_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_SPHERICAL_V2_EQUI_BOUNDS_BOTTOM, &_equi_projection_bounds_bottom_v2, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *equi_projection_bounds_bottom_v2 = _equi_projection_bounds_bottom_v2; - - return ret; -} - -static int __metadata_extractor_get_equi_projection_bounds_left_v2(metadata_extractor_s *metadata, int *equi_projection_bounds_left_v2) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _equi_projection_bounds_left_v2 = -1; - *equi_projection_bounds_left_v2 = -1; - - metadata_extractor_retvm_if((!metadata) || (!metadata->tag_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_SPHERICAL_V2_EQUI_BOUNDS_LEFT, &_equi_projection_bounds_left_v2, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *equi_projection_bounds_left_v2 = _equi_projection_bounds_left_v2; - - return ret; -} - -static int __metadata_extractor_get_equi_projection_bounds_right_v2(metadata_extractor_s *metadata, int *equi_projection_bounds_right_v2) -{ - int ret = METADATA_EXTRACTOR_ERROR_NONE; - char *err_attr_name = NULL; - int _equi_projection_bounds_right_v2 = -1; - *equi_projection_bounds_right_v2 = -1; - - metadata_extractor_retvm_if((!metadata) || (!metadata->tag_h), METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Handle is null"); - - ret = mm_file_get_attrs(metadata->tag_h, &err_attr_name, MM_FILE_TAG_SPHERICAL_V2_EQUI_BOUNDS_RIGHT, &_equi_projection_bounds_right_v2, NULL); - metadata_extractor_retv_free_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, err_attr_name); - - *equi_projection_bounds_right_v2 = _equi_projection_bounds_right_v2; - - return ret; -} -#endif - static int __metadata_extractor_destroy_handle(metadata_extractor_s *metadata) { int ret = METADATA_EXTRACTOR_ERROR_NONE; @@ -1555,7 +604,7 @@ int metadata_extractor_get_synclyrics(metadata_extractor_h metadata, int index, if (ret != METADATA_EXTRACTOR_ERROR_NONE) return ret; - ret = __metadata_extractor_get_synclyrics_pair_num(_metadata, &_synclyrics_num); + ret = __metadata_extractor_get_tag_int(_metadata, MM_FILE_TAG_SYNCLYRICS_NUM, &_synclyrics_num); if (ret != METADATA_EXTRACTOR_ERROR_NONE) return ret; @@ -1621,7 +670,7 @@ int metadata_extractor_get_metadata(metadata_extractor_h metadata, metadata_extr switch ((int)attribute) { /*TODO (m.alieksieie): Remove casting after ACR*/ case METADATA_DURATION: { is_string = 0; - ret = __metadata_extractor_get_duration(_metadata, &i_value); + ret = __metadata_extractor_get_attr_int(_metadata, MM_FILE_CONTENT_DURATION, &i_value); break; } case METADATA_VIDEO_CODEC: { @@ -1631,22 +680,22 @@ int metadata_extractor_get_metadata(metadata_extractor_h metadata, metadata_extr } case METADATA_VIDEO_BITRATE: { is_string = 0; - ret = __metadata_extractor_get_video_bitrate(_metadata, &i_value); + ret = __metadata_extractor_get_video_attr_int(_metadata, MM_FILE_CONTENT_VIDEO_BITRATE, &i_value); break; } case METADATA_VIDEO_FPS: { is_string = 0; - ret = __metadata_extractor_get_video_FPS(_metadata, &i_value); + ret = __metadata_extractor_get_video_attr_int(_metadata, MM_FILE_CONTENT_VIDEO_FPS, &i_value); break; } case METADATA_VIDEO_WIDTH: { is_string = 0; - ret = __metadata_extractor_get_video_width(_metadata, &i_value); + ret = __metadata_extractor_get_video_attr_int(_metadata, MM_FILE_CONTENT_VIDEO_WIDTH, &i_value); break; } case METADATA_VIDEO_HEIGHT: { is_string = 0; - ret = __metadata_extractor_get_video_height(_metadata, &i_value); + ret = __metadata_extractor_get_video_attr_int(_metadata, MM_FILE_CONTENT_VIDEO_HEIGHT, &i_value); break; } case METADATA_HAS_VIDEO: { @@ -1661,22 +710,22 @@ int metadata_extractor_get_metadata(metadata_extractor_h metadata, metadata_extr } case METADATA_AUDIO_BITRATE: { is_string = 0; - ret = __metadata_extractor_get_audio_bitrate(_metadata, &i_value); + ret = __metadata_extractor_get_audio_attr_int(_metadata, MM_FILE_CONTENT_AUDIO_BITRATE, &i_value); break; } case METADATA_AUDIO_CHANNELS: { is_string = 0; - ret = __metadata_extractor_get_audio_channel(_metadata, &i_value); + ret = __metadata_extractor_get_audio_attr_int(_metadata, MM_FILE_CONTENT_AUDIO_CHANNELS, &i_value); break; } case METADATA_AUDIO_SAMPLERATE: { is_string = 0; - ret = __metadata_extractor_get_audio_samplerate(_metadata, &i_value); + ret = __metadata_extractor_get_audio_attr_int(_metadata, MM_FILE_CONTENT_AUDIO_SAMPLERATE, &i_value); break; } case METADATA_AUDIO_BITPERSAMPLE: { is_string = 0; - ret = __metadata_extractor_get_audio_bitpersample(_metadata, &i_value); + ret = __metadata_extractor_get_audio_attr_int(_metadata, MM_FILE_CONTENT_AUDIO_BITPERSAMPLE, &i_value); break; } case METADATA_HAS_AUDIO: { @@ -1686,263 +735,263 @@ int metadata_extractor_get_metadata(metadata_extractor_h metadata, metadata_extr } case METADATA_ARTIST: { is_string = 1; - ret = __metadata_extractor_get_artist(_metadata, &s_value); + ret = __metadata_extractor_get_tag_str(_metadata, MM_FILE_TAG_ARTIST, &s_value); break; } case METADATA_TITLE: { is_string = 1; - ret = __metadata_extractor_get_title(_metadata, &s_value); + ret = __metadata_extractor_get_tag_str(_metadata, MM_FILE_TAG_TITLE, &s_value); break; } case METADATA_ALBUM: { is_string = 1; - ret = __metadata_extractor_get_album(_metadata, &s_value); + ret = __metadata_extractor_get_tag_str(_metadata, MM_FILE_TAG_ALBUM, &s_value); break; } case METADATA_ALBUM_ARTIST: { is_string = 1; - ret = __metadata_extractor_get_album_artist(_metadata, &s_value); + ret = __metadata_extractor_get_tag_str(_metadata, MM_FILE_TAG_ALBUM_ARTIST, &s_value); break; } case METADATA_GENRE: { is_string = 1; - ret = __metadata_extractor_get_genre(_metadata, &s_value); + ret = __metadata_extractor_get_tag_str(_metadata, MM_FILE_TAG_GENRE, &s_value); break; } case METADATA_AUTHOR: { is_string = 1; - ret = __metadata_extractor_get_author(_metadata, &s_value); + ret = __metadata_extractor_get_tag_str(_metadata, MM_FILE_TAG_AUTHOR, &s_value); break; } case METADATA_COPYRIGHT: { is_string = 1; - ret = __metadata_extractor_get_copyright(_metadata, &s_value); + ret = __metadata_extractor_get_tag_str(_metadata, MM_FILE_TAG_COPYRIGHT, &s_value); break; } case METADATA_DATE: { is_string = 1; - ret = __metadata_extractor_get_date(_metadata, &s_value); + ret = __metadata_extractor_get_tag_str(_metadata, MM_FILE_TAG_DATE, &s_value); break; } case METADATA_DESCRIPTION: { is_string = 1; - ret = __metadata_extractor_get_description(_metadata, &s_value); + ret = __metadata_extractor_get_tag_str(_metadata, MM_FILE_TAG_DESCRIPTION, &s_value); break; } case METADATA_COMMENT: { is_string = 1; - ret = __metadata_extractor_get_comment(_metadata, &s_value); + ret = __metadata_extractor_get_tag_str(_metadata, MM_FILE_TAG_COMMENT, &s_value); break; } case METADATA_TRACK_NUM: { is_string = 1; - ret = __metadata_extractor_get_track_num(_metadata, &s_value); + ret = __metadata_extractor_get_tag_str(_metadata, MM_FILE_TAG_TRACK_NUM, &s_value); break; } case METADATA_CLASSIFICATION: { is_string = 1; - ret = __metadata_extractor_get_classification(_metadata, &s_value); + ret = __metadata_extractor_get_tag_str(_metadata, MM_FILE_TAG_CLASSIFICATION, &s_value); break; } case METADATA_RATING: { is_string = 1; - ret = __metadata_extractor_get_rating(_metadata, &s_value); + ret = __metadata_extractor_get_tag_str(_metadata, MM_FILE_TAG_RATING, &s_value); break; } case METADATA_LONGITUDE: { is_double = 1; - ret = __metadata_extractor_get_longitude(_metadata, &d_value); + ret = __metadata_extractor_get_tag_double(_metadata, MM_FILE_TAG_LONGITUDE, &d_value); break; } case METADATA_LATITUDE: { is_double = 1; - ret = __metadata_extractor_get_latitude(_metadata, &d_value); + ret = __metadata_extractor_get_tag_double(_metadata, MM_FILE_TAG_LATIDUE, &d_value); break; } case METADATA_ALTITUDE: { is_double = 1; - ret = __metadata_extractor_get_altitude(_metadata, &d_value); + ret = __metadata_extractor_get_tag_double(_metadata, MM_FILE_TAG_ALTIDUE, &d_value); break; } case METADATA_CONDUCTOR: { is_string = 1; - ret = __metadata_extractor_get_conductor(_metadata, &s_value); + ret = __metadata_extractor_get_tag_str(_metadata, MM_FILE_TAG_CONDUCTOR, &s_value); break; } case METADATA_UNSYNCLYRICS: { is_string = 1; - ret = __metadata_extractor_get_unsynclyrics(_metadata, &s_value); + ret = __metadata_extractor_get_tag_str(_metadata, MM_FILE_TAG_UNSYNCLYRICS, &s_value); break; } case METADATA_SYNCLYRICS_NUM: { is_string = 0; - ret = __metadata_extractor_get_synclyrics_pair_num(_metadata, &i_value); + ret = __metadata_extractor_get_tag_int(_metadata, MM_FILE_TAG_SYNCLYRICS_NUM, &i_value); break; } case METADATA_RECDATE: { is_string = 1; - ret = __metadata_extractor_get_recording_date(_metadata, &s_value); + ret = __metadata_extractor_get_tag_str(_metadata, MM_FILE_TAG_RECDATE, &s_value); break; } case METADATA_ROTATE: { is_string = 1; - ret = __metadata_extractor_get_rotate(_metadata, &s_value); + ret = __metadata_extractor_get_tag_str(_metadata, MM_FILE_TAG_ROTATE, &s_value); break; } case METADATA_360: { is_string = 0; - ret = __metadata_extractor_get_is_360(_metadata, &i_value); + ret = __metadata_extractor_get_tag_int(_metadata, MM_FILE_TAG_SPHERICAL, &i_value); break; } #ifdef SUPPORT_GSPHERICAL_METADATA case METADATA_360_V1_STITCHED: { is_string = 0; - ret = __metadata_extractor_get_is_stitched_v1(_metadata, &i_value); + ret = __metadata_extractor_get_tag_int(_metadata, MM_FILE_TAG_SPHERICAL_STITCHED, &i_value); break; } case METADATA_360_V1_PROJECTION_TYPE: { is_string = 1; - ret = __metadata_extractor_get_projection_type_v1(_metadata, &s_value); + ret = __metadata_extractor_get_tag_str(_metadata, MM_FILE_TAG_SPHERICAL_PROJECTION_TYPE, &s_value); break; } case METADATA_360_V1_STITCHING_SOFTWARE: { is_string = 1; - ret = __metadata_extractor_get_stitching_software_v1(_metadata, &s_value); + ret = __metadata_extractor_get_tag_str(_metadata, MM_FILE_TAG_SPHERICAL_STITCHING_SOFTWARE, &s_value); break; } case METADATA_360_V1_STEREO_MODE: { is_string = 1; - ret = __metadata_extractor_get_stereo_mode_v1(_metadata, &s_value); + ret = __metadata_extractor_get_tag_str(_metadata, MM_FILE_TAG_SPHERICAL_STEREO_MODE, &s_value); break; } case METADATA_360_V1_SOURCE_COUNT: { is_string = 0; - ret = __metadata_extractor_get_source_count_v1(_metadata, &i_value); + ret = __metadata_extractor_get_tag_int(_metadata, MM_FILE_TAG_SPHERICAL_SOURCE_COUNT, &i_value); break; } case METADATA_360_V1_INIT_VIEW_HEADING: { is_string = 0; - ret = __metadata_extractor_get_initial_view_heading_degrees_v1(_metadata, &i_value); + ret = __metadata_extractor_get_tag_int(_metadata, MM_FILE_TAG_SPHERICAL_INIT_VIEW_HEADING, &i_value); break; } case METADATA_360_V1_INIT_VIEW_PITCH: { is_string = 0; - ret = __metadata_extractor_get_initial_view_pitch_degrees_v1(_metadata, &i_value); + ret = __metadata_extractor_get_tag_int(_metadata, MM_FILE_TAG_SPHERICAL_INIT_VIEW_PITCH, &i_value); break; } case METADATA_360_V1_INIT_VIEW_ROLL: { is_string = 0; - ret = __metadata_extractor_get_initial_view_roll_degrees_v1(_metadata, &i_value); + ret = __metadata_extractor_get_tag_int(_metadata, MM_FILE_TAG_SPHERICAL_INIT_VIEW_ROLL, &i_value); break; } case METADATA_360_V1_TIMESTAMP: { is_string = 0; - ret = __metadata_extractor_get_timestamp_v1(_metadata, &i_value); + ret = __metadata_extractor_get_tag_int(_metadata, MM_FILE_TAG_SPHERICAL_TIMESTAMP, &i_value); break; } case METADATA_360_V1_FULL_PANO_WIDTH: { is_string = 0; - ret = __metadata_extractor_get_full_pano_width_pixels_v1(_metadata, &i_value); + ret = __metadata_extractor_get_tag_int(_metadata, MM_FILE_TAG_SPHERICAL_FULL_PANO_WIDTH, &i_value); break; } case METADATA_360_V1_FULL_PANO_HEIGHT: { is_string = 0; - ret = __metadata_extractor_get_full_pano_height_pixels_v1(_metadata, &i_value); + ret = __metadata_extractor_get_tag_int(_metadata, MM_FILE_TAG_SPHERICAL_FULL_PANO_HEIGHT, &i_value); break; } case METADATA_360_V1_CROPPED_AREA_IMAGE_WIDTH: { is_string = 0; - ret = __metadata_extractor_get_cropped_area_image_width_v1(_metadata, &i_value); + ret = __metadata_extractor_get_tag_int(_metadata, MM_FILE_TAG_SPHERICAL_CROPPED_AREA_IMAGE_WIDTH, &i_value); break; } case METADATA_360_V1_CROPPED_AREA_IMAGE_HEIGHT: { is_string = 0; - ret = __metadata_extractor_get_cropped_area_image_height_v1(_metadata, &i_value); + ret = __metadata_extractor_get_tag_int(_metadata, MM_FILE_TAG_SPHERICAL_CROPPED_AREA_IMAGE_HEIGHT, &i_value); break; } case METADATA_360_V1_CROPPED_AREA_LEFT: { is_string = 0; - ret = __metadata_extractor_get_cropped_area_left_v1(_metadata, &i_value); + ret = __metadata_extractor_get_tag_int(_metadata, MM_FILE_TAG_SPHERICAL_CROPPED_AREA_LEFT, &i_value); break; } case METADATA_360_V1_CROPPED_AREA_TOP: { is_string = 0; - ret = __metadata_extractor_get_cropped_area_top_v1(_metadata, &i_value); + ret = __metadata_extractor_get_tag_int(_metadata, MM_FILE_TAG_SPHERICAL_CROPPED_AREA_TOP, &i_value); break; } case METADATA_360_V2_STEREO_MODE: { is_string = 0; - ret = __metadata_extractor_get_stereo_mode_v2(_metadata, &i_value); + ret = __metadata_extractor_get_tag_int(_metadata, MM_FILE_TAG_SPHERICAL_V2_STEREO_MODE, &i_value); break; } case METADATA_360_V2_METADATA_SOURCE: { is_string = 1; - ret = __metadata_extractor_get_metadata_source_v2(_metadata, &s_value); + ret = __metadata_extractor_get_tag_str(_metadata, MM_FILE_TAG_SPHERICAL_V2_METADATA_SOURCE, &s_value); break; } case METADATA_360_V2_PROJ_TYPE: { is_string = 0; - ret = __metadata_extractor_get_proj_type_v2(_metadata, &i_value); + ret = __metadata_extractor_get_tag_int(_metadata, MM_FILE_TAG_SPHERICAL_V2_PROJ_TYPE, &i_value); break; } case METADATA_360_V2_POSE_YAW: { is_string = 0; - ret = __metadata_extractor_get_pose_yaw_degrees_v2(_metadata, &i_value); + ret = __metadata_extractor_get_tag_int(_metadata, MM_FILE_TAG_SPHERICAL_V2_POSE_YAW, &i_value); break; } case METADATA_360_V2_POSE_PITCH: { is_string = 0; - ret = __metadata_extractor_get_pose_pitch_degrees_v2(_metadata, &i_value); + ret = __metadata_extractor_get_tag_int(_metadata, MM_FILE_TAG_SPHERICAL_V2_POSE_PITCH, &i_value); break; } case METADATA_360_V2_POSE_ROLL: { is_string = 0; - ret = __metadata_extractor_get_pose_roll_degrees_v2(_metadata, &i_value); + ret = __metadata_extractor_get_tag_int(_metadata, MM_FILE_TAG_SPHERICAL_V2_POSE_ROLL, &i_value); break; } case METADATA_360_V2_CBMP_LAYOUT: { is_string = 0; - ret = __metadata_extractor_get_cbmp_layout_v2(_metadata, &i_value); + ret = __metadata_extractor_get_tag_int(_metadata, MM_FILE_TAG_SPHERICAL_V2_CBMP_LAYOUT, &i_value); break; } case METADATA_360_V2_CBMP_PADDING: { is_string = 0; - ret = __metadata_extractor_get_cbmp_padding_v2(_metadata, &i_value); + ret = __metadata_extractor_get_tag_int(_metadata, MM_FILE_TAG_SPHERICAL_V2_CBMP_PADDING, &i_value); break; } case METADATA_360_V2_EQUI_BOUNDS_TOP: { is_string = 0; - ret = __metadata_extractor_get_equi_projection_bounds_top_v2(_metadata, &i_value); + ret = __metadata_extractor_get_tag_int(_metadata, MM_FILE_TAG_SPHERICAL_V2_EQUI_BOUNDS_TOP, &i_value); break; } case METADATA_360_V2_EQUI_BOUNDS_BOTTOM: { is_string = 0; - ret = __metadata_extractor_get_equi_projection_bounds_bottom_v2(_metadata, &i_value); + ret = __metadata_extractor_get_tag_int(_metadata, MM_FILE_TAG_SPHERICAL_V2_EQUI_BOUNDS_BOTTOM, &i_value); break; } case METADATA_360_V2_EQUI_BOUNDS_LEFT: { is_string = 0; - ret = __metadata_extractor_get_equi_projection_bounds_left_v2(_metadata, &i_value); + ret = __metadata_extractor_get_tag_int(_metadata, MM_FILE_TAG_SPHERICAL_V2_EQUI_BOUNDS_LEFT, &i_value); break; } case METADATA_360_V2_EQUI_BOUNDS_RIGHT: { is_string = 0; - ret = __metadata_extractor_get_equi_projection_bounds_right_v2(_metadata, &i_value); + ret = __metadata_extractor_get_tag_int(_metadata, MM_FILE_TAG_SPHERICAL_V2_EQUI_BOUNDS_RIGHT, &i_value); break; } case METADATA_AMBISONIC_TYPE: { is_string = 0; - ret = __metadata_extractor_get_ambisonic_type(_metadata, &i_value); + ret = __metadata_extractor_get_tag_int(_metadata, MM_FILE_TAG_AMBISONIC_TYPE, &i_value); break; } case METADATA_AMBISONIC_FORMAT: { is_string = 0; - ret = __metadata_extractor_get_ambisonic_format(_metadata, &i_value); + ret = __metadata_extractor_get_tag_int(_metadata, MM_FILE_TAG_AMBISONIC_FORMAT, &i_value); break; } case METADATA_AMBISONIC_ORDER: { is_string = 0; - ret = __metadata_extractor_get_ambisonic_order(_metadata, &i_value); + ret = __metadata_extractor_get_tag_int(_metadata, MM_FILE_TAG_AMBISONIC_ORDER, &i_value); break; } #endif @@ -1997,15 +1046,13 @@ 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"); ret = __metadata_extractor_check_and_extract_meta(_metadata, METADATA_TYPE_TAG); - if (ret != METADATA_EXTRACTOR_ERROR_NONE) - return ret; + 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); - if (ret != METADATA_EXTRACTOR_ERROR_NONE) - return ret; + metadata_extractor_retvm_if(ret != METADATA_EXTRACTOR_ERROR_NONE, ret, "Fail to get artwork"); if ((_artwork_size > 0) && (_artwork != NULL)) { - ret = __metadata_extractor_get_artwork_mime(_metadata, &_artwork_mime); + ret = __metadata_extractor_get_tag_str(_metadata, MM_FILE_TAG_ARTWORK_MIME, &_artwork_mime); if (ret != METADATA_EXTRACTOR_ERROR_NONE) { *artwork = NULL; *size = 0; |