42 lines
1.5 KiB
Diff
42 lines
1.5 KiB
Diff
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);
|