emms-help
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: New emms-info-native


From: Yoni Rabkin
Subject: Re: New emms-info-native
Date: Sun, 21 Feb 2021 20:54:39 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)

Petteri Hintsanen <petterih@iki.fi> writes:

> I just pushed a new revision without emms-info-native--max-peek-size
> checks.  It still does a couple of other checks, but you shouldn’t see
> excessive size errors anymore.
>
>> My personal take is that trimming the whitespace is a good idea, if only
>> because other info sources do it.
>
> I added trailing whitespace trimming to all info-fields, including
> Vorbis comments.  They are text anyway.
>
>> and similarly for emms-info-taglib.  The native took 200 seconds and taglib
>> 300 for the 14000 or so files!  Looks like not shelling out 14000 times
>> trumps the speed of C++ (at least on my setup where I suspect a lot of the
>> time is spent reading the mp3's from the ntfs filesystem they live on).
>
> That’s true, shelling incurs a heavy overhead.
>
> I have compiled taglib shim as Emacs module so that it doesn’t need to
> do any execs.  It is, depending on caching conditions (I suppose), about
> 2-10x faster than emms-info-native.

Seems to work well and fast.

I got an error from string-trim-right on a file with this data:

(("discnumber" . "1/2")
 ("albumartist" . "Elly Ameling/Dame Janet Baker/Theo Altmeyer/Hans 
Sotin/Süddeutscher Madrigalchor/Consortium Musicum/Wolfgang Gönnenwein/Dame 
Joan Sutherland/Helen Watts/Wilfred Brown/Thomas Hemsley/Geraint Jones 
Singers/Geraint Jones Orchestra/Geraint Jones")
 ("year" . "2005")
 ("tracknumber" . "1/21")
 ("composer")
 ("album" . "Cantatas - Bach")
 ("artist" . "Dame Joan Sutherland/Helen Watts/Wilfred Brown/Thomas 
Hemsley/Geraint Jones Singers/Geraint Jones Orchestra/Geraint Jones")
 ("title" . "Cantata No. 147, 'Herz Und Mund Und Tat Und Leben' Bwv147 (1995 
Digital Remaster)
 , Part 1: Chorus: Herz Und Mund"))

(Without actually checking) my guess is that it is the fact that:

   (cdr '("composer")) => nil

...and so `string-trim-right' errors on getting nil as an input.

So perhaps the call to `string-trim-right' can look like:

    (string-trim-right (or (cdr field) ""))

...to protect from that. But I'll leave that to you to decide.


-- 
   "Cut your own wood and it will warm you twice"



reply via email to

[Prev in Thread] Current Thread [Next in Thread]