You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/media-sound/clementine/files/clementine-chromaprint14.patch

42 lines
1.5 KiB

From ded312685735fc266d4154d355286eeb86db3bcd Mon Sep 17 00:00:00 2001
From: Chocobozzz <florian.bigard@gmail.com>
Date: Thu, 8 Dec 2016 23:12:17 +0100
Subject: [PATCH] Add compatibility with chromaprint >= 1.4
---
src/musicbrainz/chromaprinter.cpp | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/src/musicbrainz/chromaprinter.cpp b/src/musicbrainz/chromaprinter.cpp
index 9579b62..c7ad99e 100644
--- a/src/musicbrainz/chromaprinter.cpp
+++ b/src/musicbrainz/chromaprinter.cpp
@@ -143,16 +143,24 @@ QString Chromaprinter::CreateFingerprint() {
ChromaprintContext* chromaprint =
chromaprint_new(CHROMAPRINT_ALGORITHM_DEFAULT);
chromaprint_start(chromaprint, kDecodeRate, kDecodeChannels);
- chromaprint_feed(chromaprint, reinterpret_cast<void*>(data.data()),
+ chromaprint_feed(chromaprint, reinterpret_cast<int16_t *>(data.data()),
data.size() / 2);
chromaprint_finish(chromaprint);
- void* fprint = nullptr;
int size = 0;
+
+#if CHROMAPRINT_VERSION_MAJOR >= 1 && CHROMAPRINT_VERSION_MINOR >= 4
+ u_int32_t *fprint = nullptr;
+ char *encoded = nullptr;
+#else
+ void *fprint = nullptr;
+ void *encoded = nullptr;
+#endif
+
int ret = chromaprint_get_raw_fingerprint(chromaprint, &fprint, &size);
+
QByteArray fingerprint;
if (ret == 1) {
- void* encoded = nullptr;
int encoded_size = 0;
chromaprint_encode_fingerprint(fprint, size, CHROMAPRINT_ALGORITHM_DEFAULT,
&encoded, &encoded_size, 1);