[tracker-miners: 1/3] tracker-extract-vorbis.c: Extract AcoustID Fingerprint for vorbis files
- From: Sam Thursfield <sthursfield src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker-miners: 1/3] tracker-extract-vorbis.c: Extract AcoustID Fingerprint for vorbis files
- Date: Fri, 5 Jul 2019 11:14:41 +0000 (UTC)
commit 3399b34e61a5271fd04bba0940dd60f371967757
Author: Sumaid Syed <sumaidsyed gmail com>
Date: Fri Jul 5 15:26:25 2019 +0530
tracker-extract-vorbis.c: Extract AcoustID Fingerprint for vorbis files
Tracker needs to store chromaprint of songs, because calculating chromaprint is an expensive process.
Tag Mappings: https://picard.musicbrainz.org/docs/mappings/
https://gitlab.gnome.org/GNOME/tracker-miners/issues/73
src/tracker-extract/tracker-extract-vorbis.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
---
diff --git a/src/tracker-extract/tracker-extract-vorbis.c b/src/tracker-extract/tracker-extract-vorbis.c
index 1a86aa44d..b7f7ecf1e 100644
--- a/src/tracker-extract/tracker-extract-vorbis.c
+++ b/src/tracker-extract/tracker-extract-vorbis.c
@@ -57,6 +57,7 @@ typedef struct {
gchar *codec_version;
gchar *sample_rate;
gchar *channels;
+ gchar *acoustid_fingerprint;
gchar *mb_release_id;
gchar *mb_release_group_id;
gchar *mb_track_id;
@@ -148,6 +149,7 @@ tracker_extract_get_metadata (TrackerExtractInfo *info)
vd.codec_version = ogg_get_comment (comment, "CodecVersion");
vd.sample_rate = ogg_get_comment (comment, "SampleRate");
vd.channels = ogg_get_comment (comment, "Channels");
+ vd.acoustid_fingerprint = ogg_get_comment (comment, "ACOUSTID_FINGERPRINT");
vd.mb_release_id = ogg_get_comment (comment, "MUSICBRAINZ_ALBUMID");
vd.mb_release_group_id = ogg_get_comment (comment, "MUSICBRAINZ_RELEASEGROUPID");
vd.mb_artist_id = ogg_get_comment (comment, "MUSICBRAINZ_ARTISTID");
@@ -283,6 +285,22 @@ tracker_extract_get_metadata (TrackerExtractInfo *info)
g_free (vd.channels);
}
+ if (vd.acoustid_fingerprint) {
+ TrackerResource *hash_resource;
+
+ hash_resource = tracker_resource_new (NULL);
+ tracker_resource_set_uri (hash_resource, "rdf:type", "nfo:FileHash");
+
+ tracker_resource_set_string (hash_resource, "nfo:hashValue", vd.acoustid_fingerprint);
+ tracker_resource_set_string (hash_resource, "nfo:hashAlgorithm", "chromaprint");
+
+ tracker_resource_set_relation (metadata, "nfo:hasHash", hash_resource);
+
+ g_object_unref (hash_resource);
+
+ g_free (vd.acoustid_fingerprint);
+ }
+
if (vd.mb_recording_id) {
tracker_resource_set_string (metadata, "nmm:mbRecordingID", vd.mb_recording_id);
g_free (vd.mb_recording_id);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]