Bug 148501

Summary: taglib ignores Unsynchronisation flag in id3v2 header
Product: [Frameworks and Libraries] taglib Reporter: Dennis <groups>
Component: generalAssignee: Scott Wheeler <wheeler>
Status: RESOLVED DUPLICATE    
Severity: normal CC: spam.moreplz
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Gentoo Packages   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: dirty example
mp3 file with well-formed id3v2.4 header

Description Dennis 2007-08-04 11:19:40 UTC
Version:           svn revision 696222 and earlier (using KDE KDE 3.5.7)
Installed from:    Gentoo Packages
Compiler:          gcc version 4.1.2 (Gentoo 4.1.2) i686-pc-linux-gnu 
OS:                Linux

TagLib ignores unsynchronisation bit in the IDv3 header flags that indicates whether or not unsynchronisation is applied on all frames (see http://www.id3.org/id3v2.4.0-structure sections 3.1 and 6.1). This leads to applications misbehavior like described in KDE bug #129995. Also it leads to errors like 'Malformed UTF-16 string'.

-- How to reproduce --
1. Create an mp3 file with unsynchronized id3v2.4 header.
2. Launch an amaroK or other app using TagLib

Attached an quick and dirty example how to reproduce. Files:
test-taglib.cpp - compiled with `gcc -I/usr/include/taglib -ltag -o test-taglib test-taglib.cpp`
test.mp3 - mp3 file with well-formed ID3v2.4 header

-- Expected behavior --
TagLib should perform de-unsynchronization by default if unsynch bit is set before it passes frame data to application.
Comment 1 Dennis 2007-08-04 11:20:43 UTC
Created attachment 21327 [details]
dirty example
Comment 2 Dennis 2007-08-04 11:21:34 UTC
Created attachment 21328 [details]
mp3 file with well-formed id3v2.4 header
Comment 3 Mark Kretschmann 2007-08-04 11:36:38 UTC
*** Bug 129995 has been marked as a duplicate of this bug. ***
Comment 4 Scott Wheeler 2007-08-05 12:46:53 UTC

*** This bug has been marked as a duplicate of 138829 ***