- Status Closed
- Percent Complete
- Task Type Bugs
- Category ID3 / meta data
- Assigned To No-one
- Operating System All players
- Severity Low
- Priority Very Low
- Reported Version Daily build (which?)
- Due in Version Undecided
-
Due Date
Undecided
- Votes
- Private
FS#12096 - Metadata item limits too tight in practice with UTF-16 encoded strings
As of r29174 (see FS#11875 ), the amount of data read per metadata item is limited to 60 bytes on low-memory targets and 120 bytes on others. While such a limitation does make sense, IMO the values chosen are not sufficiently universal, especially when UTF-16 encoded strings come into play that need 2 bytes per character. Even on a target with ample memory (e.g. Clip+), such strings will be cut off after about 60 characters.
With some genres of music, it is not unusual to find track and album titles of 80+ characters, which will thus be truncated when using ID3v2.3/2.4 tags with UTF-16. Here’s an example (copied from Foobar2k):
Artist Name : Antonín Dvořák
Track Title : Symphony No. 9 in E minor, op. 95 “From the New World” - III. Scherzo: Molto vivace
Album Title : Symphonies Nos. 8, 9 (Berliner Philharmoniker feat. conductor: Rafael Kubelik)
Date : 1966
Genre : Classical
Composer : Antonín Dvořák
Track Number : 07
<CONDUCTOR> : Rafael Kubelik
On a Clip+, the track title is displayed as ‘Symphony No. 9 in E minor, op. 95 “From the New World” - II’, cut off in the middle of the Roman numerals.
The intent of the per-item limit was keeping things like rogue comments from filling up the buffer. It should not interfere with normal, “well-behaved” metadata if at all possible. A normal user cannot be expected to compile Rockbox to change these limits.
I’d suggest values of about 90 for low-memory targets and 240 for others. On the latter, this would still allow 3 very lengthy strings in the 900 byte buffer with room to spare.
The above example would remain critical on low-memory targets, although the strings could all be fitted when resorting to ID3v2.4 tags with UTF-8.
A metadata.h patch according to my suggestion is attached.
2011-05-04 17:30
Reason for closing: Accepted
Additional comments about closing: Warning: Undefined array key "typography" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 371 Warning: Undefined array key "camelcase" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 407
Accepted in r29821.
Loading...
Available keyboard shortcuts
- Alt + ⇧ Shift + l Login Dialog / Logout
- Alt + ⇧ Shift + a Add new task
- Alt + ⇧ Shift + m My searches
- Alt + ⇧ Shift + t focus taskid search
Tasklist
- o open selected task
- j move cursor down
- k move cursor up
Task Details
- n Next task
- p Previous task
- Alt + ⇧ Shift + e ↵ Enter Edit this task
- Alt + ⇧ Shift + w watch task
- Alt + ⇧ Shift + y Close Task
Task Editing
- Alt + ⇧ Shift + s save task