summaryrefslogtreecommitdiff
path: root/src/tracker-extract/tracker-extract-libav.c
diff options
context:
space:
mode:
authorMarinus Schraal <mschraal@src.gnome.org>2016-10-27 23:05:19 +0200
committerMarinus Schraal <mschraal@src.gnome.org>2016-11-15 00:08:17 +0100
commitfb30a3f66b5cca5324fdc3b0aa129388c67be92d (patch)
treed679987092492b78023d583ac1cdd38c7e473819 /src/tracker-extract/tracker-extract-libav.c
parent99e55345d17017ad263fcf5ac5dcda1a4ab66135 (diff)
downloadtracker-fb30a3f66b5cca5324fdc3b0aa129388c67be92d.tar.gz
tracker-extract: Use date as album uri identifier
Use the album creation date as part of the album uri identifier if available. This should make the separation of similar named albums even better. Also port mp3 & gstreamer to use the resource helper functon for exctracting album disc data. https://bugzilla.gnome.org/show_bug.cgi?id=773697
Diffstat (limited to 'src/tracker-extract/tracker-extract-libav.c')
-rw-r--r--src/tracker-extract/tracker-extract-libav.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/tracker-extract/tracker-extract-libav.c b/src/tracker-extract/tracker-extract-libav.c
index 71a6b9447..b2055badf 100644
--- a/src/tracker-extract/tracker-extract-libav.c
+++ b/src/tracker-extract/tracker-extract-libav.c
@@ -41,6 +41,7 @@ tracker_extract_get_metadata (TrackerExtractInfo *info)
GFile *file;
TrackerResource *metadata;
gchar *absolute_file_path;
+ gchar *content_created = NULL;
gchar *uri;
AVFormatContext *format = NULL;
AVStream *audio_stream = NULL;
@@ -84,6 +85,13 @@ tracker_extract_get_metadata (TrackerExtractInfo *info)
metadata = tracker_resource_new (NULL);
+ if ((tag = av_dict_get (format->metadata, "creation_time", NULL, 0))) {
+ content_created = tracker_date_guess (tag->value);
+ if (content_created) {
+ tracker_resource_set_string (metadata, "nie:contentCreated", content_created);
+ }
+ }
+
if (audio_stream) {
if (audio_stream->codec->sample_rate > 0) {
tracker_resource_set_int64 (metadata, "nfo:sampleRate", audio_stream->codec->sample_rate);
@@ -191,7 +199,7 @@ tracker_extract_get_metadata (TrackerExtractInfo *info)
disc_number = atoi (tag->value);
}
- album_disc = tracker_extract_new_music_album_disc (album_title, album_artist, disc_number);
+ album_disc = tracker_extract_new_music_album_disc (album_title, album_artist, disc_number, content_created);
tracker_resource_set_relation (metadata, "nmm:musicAlbumDisc", album_disc);
tracker_resource_set_relation (metadata, "nmm:musicAlbum", tracker_resource_get_first_relation (album_disc, "nmm:albumDiscAlbum"));
@@ -239,14 +247,6 @@ tracker_extract_get_metadata (TrackerExtractInfo *info)
tracker_resource_set_string (metadata, "nie:copyright", tag->value);
}
- if ((tag = av_dict_get (format->metadata, "creation_time", NULL, 0))) {
- gchar *content_created = tracker_date_guess (tag->value);
- if (content_created) {
- tracker_resource_set_string (metadata, "nie:contentCreated", content_created);
- g_free (content_created);
- }
- }
-
if ((tag = av_dict_get (format->metadata, "description", NULL, 0))) {
tracker_resource_set_string (metadata, "nie:description", tag->value);
}
@@ -265,6 +265,7 @@ tracker_extract_get_metadata (TrackerExtractInfo *info)
tracker_guarantee_resource_title_from_file (metadata, "nie:title", title, uri, NULL);
+ g_free (content_created);
g_free (uri);
avformat_close_input (&format);