summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhj kim <backto.kim@samsung.com>2018-09-19 14:52:53 +0900
committerhj kim <backto.kim@samsung.com>2018-09-19 15:06:41 +0900
commit5cd2da7729e5589028a9dd81474fccc784ea15ee (patch)
tree88ce1788b03ebbf7743555c179c19c628c2909ef
parent1bd9bdef2b685f0f3a8b9394728a04c7ce9a4e5b (diff)
downloadmetadata-extractor-5cd2da7729e5589028a9dd81474fccc784ea15ee.tar.gz
metadata-extractor-5cd2da7729e5589028a9dd81474fccc784ea15ee.tar.bz2
metadata-extractor-5cd2da7729e5589028a9dd81474fccc784ea15ee.zip
Change-Id: Id176b97081d51452420743bf9680c91e88db85b1
-rwxr-xr-xinclude/metadata_extractor_private.h1
-rwxr-xr-xsrc/metadata_extractor.c1189
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;