commit:     38d0e53184badc23e1fa9f2d532f276b2f729e0f
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Mon Dec 26 16:13:27 2016 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Mon Dec 26 16:13:27 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=38d0e531

media-sound/clementine: Fixed building against >=media-libs/chromaprint-1.4

This fixes Gentoo bug #603662

Package-Manager: Portage-2.3.3, Repoman-2.3.1

 media-sound/clementine/clementine-1.3.1-r4.ebuild  |  1 +
 .../files/clementine-chromaprint14.patch           | 41 ++++++++++++++++++++++
 2 files changed, 42 insertions(+)

diff --git a/media-sound/clementine/clementine-1.3.1-r4.ebuild 
b/media-sound/clementine/clementine-1.3.1-r4.ebuild
index ed118c2..a61c2fe 100644
--- a/media-sound/clementine/clementine-1.3.1-r4.ebuild
+++ b/media-sound/clementine/clementine-1.3.1-r4.ebuild
@@ -95,6 +95,7 @@ S="${WORKDIR}/${MY_P^}"
 PATCHES=(
        "${FILESDIR}"/${PN}-1.3-fix-tokenizer.patch
        "${FILESDIR}"/${P}-fix-desktop-file.patch
+       "${FILESDIR}"/${PN}-chromaprint14.patch #603662
 )
 
 src_prepare() {

diff --git a/media-sound/clementine/files/clementine-chromaprint14.patch 
b/media-sound/clementine/files/clementine-chromaprint14.patch
new file mode 100644
index 00000000..bfdc492
--- /dev/null
+++ b/media-sound/clementine/files/clementine-chromaprint14.patch
@@ -0,0 +1,41 @@
+From ded312685735fc266d4154d355286eeb86db3bcd Mon Sep 17 00:00:00 2001
+From: Chocobozzz <[email protected]>
+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);

Reply via email to