From ded312685735fc266d4154d355286eeb86db3bcd Mon Sep 17 00:00:00 2001 From: Chocobozzz 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 9579b62ae..c7ad99e2e 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(data.data()), + chromaprint_feed(chromaprint, reinterpret_cast(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);