From: minje.ahn Date: Mon, 5 Feb 2024 05:12:20 +0000 (+0900) Subject: Restore recorded_date temporarily X-Git-Tag: accepted/tizen/unified/20240207.171615~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b797084be19afc37390d3d7a45e1e1676ac60d6b;p=platform%2Fcore%2Fmultimedia%2Flibmedia-service.git Restore recorded_date temporarily webapi ACR is not complete. (web-tct issue) After webapi ACR, remove temporary code. Change-Id: Ib3c62f317bb46b8ba72a959f306894f01882459b Signed-off-by: minje.ahn --- diff --git a/src/common/media-svc-db-utils.c b/src/common/media-svc-db-utils.c index e877c71..e273c3f 100755 --- a/src/common/media-svc-db-utils.c +++ b/src/common/media-svc-db-utils.c @@ -375,7 +375,7 @@ int _media_svc_init_table_query(void) __add_column_info(&column_list[DB_LIST_MEDIA], "media_genre", DB_TYPE_TEXT, NULL, false, false, true); __add_column_info(&column_list[DB_LIST_MEDIA], "media_composer", DB_TYPE_TEXT, "DEFAULT ''", false, false, true); __add_column_info(&column_list[DB_LIST_MEDIA], "media_year", DB_TYPE_TEXT, NULL, false, false, true); - __add_column_info(&column_list[DB_LIST_MEDIA], "media_recorded_date", DB_TYPE_TEXT, "DEFAULT ''", false, false, true); + __add_column_info(&column_list[DB_LIST_MEDIA], "media_recorded_date", DB_TYPE_TEXT, NULL, false, false, true); __add_column_info(&column_list[DB_LIST_MEDIA], "media_copyright", DB_TYPE_TEXT, "DEFAULT ''", false, false, true); __add_column_info(&column_list[DB_LIST_MEDIA], "media_track_num", DB_TYPE_TEXT, NULL, false, false, true); __add_column_info(&column_list[DB_LIST_MEDIA], "media_description", DB_TYPE_TEXT, "DEFAULT ''", false, false, true); diff --git a/src/common/media-svc-media.c b/src/common/media-svc-media.c index 6ba8dae..0e586cb 100755 --- a/src/common/media-svc-media.c +++ b/src/common/media-svc-media.c @@ -72,11 +72,11 @@ int _media_svc_insert_item_with_data(bool is_direct, media_svc_content_info_s *c { int ret = MS_MEDIA_ERR_NONE; - const char *db_fields = "media_id, media_path, media_display_name, media_type, media_mime_type, media_size, media_added_time, media_modified_time, folder_id, media_thumbnail_path, media_title, album_id, media_album, media_artist, media_album_artist, media_genre, media_year, media_track_num, media_width, media_height, media_datetaken, media_orientation, storage_uuid"; + const char *db_fields = "media_id, media_path, media_display_name, media_type, media_mime_type, media_size, media_added_time, media_modified_time, folder_id, media_thumbnail_path, media_title, album_id, media_album, media_artist, media_album_artist, media_genre, media_year, media_recorded_date, media_track_num, media_width, media_height, media_datetaken, media_orientation, storage_uuid"; const char *db_fields_basic = "media_id, media_path, media_display_name, media_type, media_mime_type, media_size, media_added_time, media_modified_time, folder_id, album_id, storage_uuid"; - char *sql = sqlite3_mprintf("INSERT INTO %q(%q) VALUES (%Q, %Q, %Q, %d, %Q, %lld, %d, %d, %lld, %Q, %Q, %d, %Q, %Q, %Q, %Q, %Q, %Q, %d, %d, %Q, %d, %Q);", + char *sql = sqlite3_mprintf("INSERT INTO %q(%q) VALUES (%Q, %Q, %Q, %d, %Q, %lld, %d, %d, %lld, %Q, %Q, %d, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %d, %d, %Q, %d, %Q);", DB_TABLE_MEDIA, db_fields, content_info->media_uuid, content_info->path, @@ -95,6 +95,7 @@ int _media_svc_insert_item_with_data(bool is_direct, media_svc_content_info_s *c content_info->media_meta.album_artist, content_info->media_meta.genre, content_info->media_meta.year, + content_info->media_meta.recorded_date, content_info->media_meta.track_num, content_info->media_meta.width, content_info->media_meta.height, @@ -143,7 +144,7 @@ int _media_svc_update_item_with_data(bool is_direct, media_svc_content_info_s *c { int ret = MS_MEDIA_ERR_NONE; - char *sql = sqlite3_mprintf("UPDATE %q SET media_size=%lld, media_modified_time=%d, media_thumbnail_path=%Q, media_title=%Q, album_id=%d, media_album=%Q, media_artist=%Q, media_album_artist=%Q, media_genre=%Q, media_year=%Q, media_track_num=%Q, media_width=%d, media_height=%d, media_datetaken=%Q, media_orientation=%d, validity=1 WHERE media_path=%Q;", + char *sql = sqlite3_mprintf("UPDATE %q SET media_size=%lld, media_modified_time=%d, media_thumbnail_path=%Q, media_title=%Q, album_id=%d, media_album=%Q, media_artist=%Q, media_album_artist=%Q, media_genre=%Q, media_year=%Q, media_recorded_date=%Q, media_track_num=%Q, media_width=%d, media_height=%d, media_datetaken=%Q, media_orientation=%d, validity=1 WHERE media_path=%Q;", DB_TABLE_MEDIA, content_info->size, content_info->modified_time, @@ -155,6 +156,7 @@ int _media_svc_update_item_with_data(bool is_direct, media_svc_content_info_s *c content_info->media_meta.album_artist, content_info->media_meta.genre, content_info->media_meta.year, + content_info->media_meta.recorded_date, content_info->media_meta.track_num, content_info->media_meta.width, content_info->media_meta.height, diff --git a/src/common/media-svc-util.c b/src/common/media-svc-util.c index 85c70fb..6687427 100644 --- a/src/common/media-svc-util.c +++ b/src/common/media-svc-util.c @@ -360,7 +360,7 @@ int _media_svc_get_thumbnail_path(char *thumb_path, const char *pathname, const char *thumb_dir = NULL; ret = ms_user_get_root_thumb_store_path(uid, &thumb_dir); - media_svc_retvm_if(!STRING_VALID(thumb_dir), MS_MEDIA_ERR_INTERNAL, "ms_user_get_root_thumb_store_path failed"); + media_svc_retvm_if(!STRING_VALID(thumb_dir), ret, "ms_user_get_root_thumb_store_path failed"); if (!g_file_test(thumb_dir, G_FILE_TEST_IS_DIR)) { media_svc_error("Wrong path[%s]", thumb_dir); @@ -538,6 +538,9 @@ int _media_svc_extract_image_metadata(media_svc_content_info_s *content_info) if (strlen(buf) > 0) { has_datetaken = true; content_info->media_meta.datetaken = g_strdup(buf); + + /* This is same as recorded_date */ + content_info->media_meta.recorded_date = g_strdup(buf); } } @@ -546,6 +549,9 @@ int _media_svc_extract_image_metadata(media_svc_content_info_s *content_info) if (strlen(buf) > 0) { has_datetaken = true; content_info->media_meta.datetaken = g_strdup(buf); + + /* This is same as recorded_date */ + content_info->media_meta.recorded_date = g_strdup(buf); } } @@ -628,6 +634,18 @@ int _media_svc_extract_audio_metadata(sqlite3 *handle, bool is_direct, media_svc content_info->media_meta.genre = __media_svc_get_tag_str_value(tag, MM_FILE_TAG_GENRE); content_info->media_meta.track_num = __media_svc_get_tag_str_value(tag, MM_FILE_TAG_TRACK_NUM); + mmf_error = mm_file_get_attrs(tag, MM_FILE_TAG_RECDATE, &p, &size, NULL); + if ((mmf_error == FILEINFO_ERROR_NONE) && (size > 0)) { + if (g_str_has_suffix(content_info->mime_type, "mp4") || g_str_has_suffix(content_info->mime_type, "3gpp")) { + /*Creation time format is 20130101 00:00:00 +0000. change it to 2013:01:01 00:00:00 +0000 like exif time format*/ + char *p_value = g_strdelimit(g_strdup(p), "", ':'); + content_info->media_meta.recorded_date = g_strdup_printf("%s +0000", p_value); + g_free(p_value); + } else { + content_info->media_meta.recorded_date = g_strdup(p); + } + } + mmf_error = mm_file_get_attrs(tag, MM_FILE_TAG_DATE, &p, &size, NULL); if (mmf_error == FILEINFO_ERROR_NONE && size == 4) { if (__media_svc_safe_atoi(p, &convert_value) == MS_MEDIA_ERR_NONE) @@ -699,6 +717,31 @@ int _media_svc_extract_audio_metadata(sqlite3 *handle, bool is_direct, media_svc int _media_svc_extract_video_metadata(media_svc_content_info_s *content_info) { + int mmf_error = FILEINFO_ERROR_NONE; + MMHandleType tag = 0; + char *p = NULL; + unsigned int size = 0; + + mmf_error = mm_file_create_tag_attrs_no_albumart(&tag, content_info->path); + + if (mmf_error == FILEINFO_ERROR_NONE) { + mmf_error = mm_file_get_attrs(tag, MM_FILE_TAG_RECDATE, &p, &size, NULL); + if ((mmf_error == FILEINFO_ERROR_NONE) && (size > 0)) { + if (g_str_has_suffix(content_info->mime_type, "mp4") || g_str_has_suffix(content_info->mime_type, "3gpp")) { + /*Creation time format is 20130101 00:00:00 +0000. change it to 2013:01:01 00:00:00 +0000 like exif time format*/ + char *p_value = g_strdelimit(g_strdup(p), "", ':'); + content_info->media_meta.recorded_date = g_strdup_printf("%s +0000", p_value); + g_free(p_value); + } else { + content_info->media_meta.recorded_date = g_strdup(p); + } + } + + mmf_error = mm_file_destroy_tag_attrs(tag); + if (mmf_error != FILEINFO_ERROR_NONE) + media_svc_error("fail to free tag attr - err(%x)", mmf_error); + } + content_info->media_meta.title = __media_svc_get_title(NULL, content_info->path); content_info->media_meta.album = g_strdup(MEDIA_SVC_TAG_UNKNOWN); content_info->media_meta.artist = g_strdup(MEDIA_SVC_TAG_UNKNOWN); @@ -1016,6 +1059,7 @@ void _media_svc_destroy_content_info(media_svc_content_info_s *content_info) g_free(content_info->media_meta.album_artist); g_free(content_info->media_meta.genre); g_free(content_info->media_meta.year); + g_free(content_info->media_meta.recorded_date); g_free(content_info->media_meta.track_num); g_free(content_info->media_meta.datetaken); } diff --git a/src/include/common/media-svc-util.h b/src/include/common/media-svc-util.h index 12f24e8..6cbee84 100755 --- a/src/include/common/media-svc-util.h +++ b/src/include/common/media-svc-util.h @@ -44,6 +44,7 @@ typedef struct { char *album_artist; /**< artist name*/ char *genre; /**< genre of track*/ char *year; /**< year*/ + char *recorded_date; /**< recorded date*/ char *track_num; /**< track number*/ int width; /**< width*/ int height; /**< height*/