From 9af53bd1971bf25a4957b4f562be159f440978c7fd6f5692072604d2297e7979 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= Date: Mon, 25 Feb 2019 15:19:27 +0000 Subject: [PATCH] Accepting request 678946 from home:alarrosa:branches:devel:languages:python - Add 0001-maddec-Ensure-that-the-audio-blocks-are-of-type-bytes.patch to ensure audio blocks are always of type bytes (and not sometimes bytearray when using maddec). - Update to 2.1.5 OBS-URL: https://build.opensuse.org/request/show/678946 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-audioread?expand=0&rev=14 --- ...t-the-audio-blocks-are-of-type-bytes.patch | 70 +++++++++++++++++++ python-audioread.changes | 9 ++- python-audioread.spec | 5 +- 3 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 0001-maddec-Ensure-that-the-audio-blocks-are-of-type-bytes.patch diff --git a/0001-maddec-Ensure-that-the-audio-blocks-are-of-type-bytes.patch b/0001-maddec-Ensure-that-the-audio-blocks-are-of-type-bytes.patch new file mode 100644 index 0000000..9e393db --- /dev/null +++ b/0001-maddec-Ensure-that-the-audio-blocks-are-of-type-bytes.patch @@ -0,0 +1,70 @@ +From 0abbf93a0b245ba28566bd0ca47da9dfa8d266d1 Mon Sep 17 00:00:00 2001 +From: Sam Thursfield +Date: Wed, 26 Dec 2018 00:28:04 +0000 +Subject: [PATCH] maddec: Ensure that the audio blocks are of type bytes() + +The audio blocks should be bytes() to be consistent with the other +decoders. + +This is required for the pyacoustid and chromaprint libraries, and fixes +the following backtrace in Beets when using the 'chroma' plugin: + + Traceback (most recent call last): + File "/usr/bin/beet", line 11, in + load_entry_point('beets==1.4.6', 'console_scripts', 'beet')() + File "/usr/lib/python3.6/site-packages/beets/ui/__init__.py", line 1256, in main + _raw_main(args) + File "/usr/lib/python3.6/site-packages/beets/ui/__init__.py", line 1243, in _raw_main + subcommand.func(lib, suboptions, subargs) + File "/usr/lib/python3.6/site-packages/beets/ui/commands.py", line 937, in import_func + import_files(lib, paths, query) + File "/usr/lib/python3.6/site-packages/beets/ui/commands.py", line 914, in import_files + session.run() + File "/usr/lib/python3.6/site-packages/beets/importer.py", line 327, in run + pl.run_parallel(QUEUE_SIZE) + File "/usr/lib/python3.6/site-packages/beets/util/pipeline.py", line 445, in run_parallel + six.reraise(exc_info[0], exc_info[1], exc_info[2]) + File "/usr/lib/python3.6/site-packages/six.py", line 693, in reraise + raise value + File "/usr/lib/python3.6/site-packages/beets/util/pipeline.py", line 312, in run + out = self.coro.send(msg) + File "/usr/lib/python3.6/site-packages/beets/util/pipeline.py", line 194, in coro + func(*(args + (task,))) + File "/usr/lib/python3.6/site-packages/beets/importer.py", line 1339, in lookup_candidates + plugins.send('import_task_start', session=session, task=task) + File "/usr/lib/python3.6/site-packages/beets/plugins.py", line 452, in send + result = handler(**arguments) + File "/usr/lib/python3.6/site-packages/beets/plugins.py", line 124, in wrapper + return func(*args, **kwargs) + File "/usr/lib/python3.6/site-packages/beetsplug/chroma.py", line 143, in fingerprint_task + return fingerprint_task(self._log, task, session) + File "/usr/lib/python3.6/site-packages/beetsplug/chroma.py", line 212, in fingerprint_task + acoustid_match(log, item.path) + File "/usr/lib/python3.6/site-packages/beetsplug/chroma.py", line 65, in acoustid_match + duration, fp = acoustid.fingerprint_file(util.syspath(path)) + File "/usr/lib/python3.6/site-packages/acoustid.py", line 321, in fingerprint_file + return _fingerprint_file_audioread(path, maxlength) + File "/usr/lib/python3.6/site-packages/acoustid.py", line 264, in _fingerprint_file_audioread + fp = fingerprint(f.samplerate, f.channels, iter(f), maxlength) + File "/usr/lib/python3.6/site-packages/acoustid.py", line 206, in fingerprint + fper.feed(block) + File "/usr/lib/python3.6/site-packages/chromaprint.py", line 126, in feed + self._ctx, data, len(data) // 2 + ctypes.ArgumentError: argument 2: : wrong type +--- + audioread/maddec.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/audioread/maddec.py b/audioread/maddec.py +index 8dd7aaa..3a2a694 100644 +--- a/audioread/maddec.py ++++ b/audioread/maddec.py +@@ -43,7 +43,7 @@ def read_blocks(self, block_size=4096): + out = self.mf.read(block_size) + if not out: + break +- yield out ++ yield bytes(out) + + @property + def samplerate(self): diff --git a/python-audioread.changes b/python-audioread.changes index 33151ca..4f60480 100644 --- a/python-audioread.changes +++ b/python-audioread.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Feb 25 15:06:33 UTC 2019 - Antonio Larrosa + +- Add 0001-maddec-Ensure-that-the-audio-blocks-are-of-type-bytes.patch + to ensure audio blocks are always of type bytes (and not sometimes + bytearray when using maddec). + ------------------------------------------------------------------- Tue Dec 4 12:45:49 UTC 2018 - Matej Cepl @@ -17,7 +24,7 @@ Sat Nov 3 03:23:46 UTC 2018 - Todd R ------------------------------------------------------------------- Thu Sep 28 07:21:03 UTC 2017 - alarrosa@suse.com -- Update to 2.1.5 +- Update to 2.1.5 * Properly clean up the file handle when a backend fails to decode a file. * Fix parsing of "N.M" channel counts in the FFmpeg backend. * Avoid a crash in the raw backend when a file uses an unsupported diff --git a/python-audioread.spec b/python-audioread.spec index a6cbf65..0912620 100644 --- a/python-audioread.spec +++ b/python-audioread.spec @@ -1,7 +1,7 @@ # # spec file for package python-audioread # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -26,6 +26,8 @@ Group: Development/Languages/Python Url: https://github.com/sampsyo/audioread Source0: https://files.pythonhosted.org/packages/source/a/audioread/audioread-%{version}.tar.gz Source10: https://raw.githubusercontent.com/beetbox/audioread/master/LICENSE +# PATCH-FIX-UPSTREAM +Patch0: 0001-maddec-Ensure-that-the-audio-blocks-are-of-type-bytes.patch BuildRequires: %{python_module base} BuildRequires: fdupes BuildRequires: python-rpm-macros @@ -49,6 +51,7 @@ currently supports: %prep %setup -q -n audioread-%{version} +%patch0 -p1 cp %{SOURCE10} . %build