__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);
{
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,
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,
{
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,
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,
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);
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);
}
}
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);
}
}
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)
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);
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);
}
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*/