Bug 159821

Summary: Optimization of ByteVector to speed up unsyncronized tags.
Product: [Frameworks and Libraries] taglib Reporter: Daniel Önnerby <doep>
Component: generalAssignee: Scott Wheeler <wheeler>
Status: REPORTED ---    
Severity: wishlist CC: lalinsky
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Microsoft Windows   
Latest Commit: Version Fixed In:

Description Daniel Önnerby 2008-03-25 12:05:26 UTC
Version:           1.5 (using Devel)
Installed from:    Compiled sources
Compiler:          Visual Studio 2005 
OS:                MS Windows

I have some rare mp3 that are have unsynchronized tags. When the APIC frame is decoded it will take a very long time (15-45 seconds depending on build type and computer) to decode the frame since it's about 350kb big. 
I made a patch for this that modifies the ByteVector::replace method when the pattern is larger or equal to the replacement.
http://onnerby.se/~daniel/tbytevector_cpp.patch
Comment 1 Scott Wheeler 2008-03-28 12:58:52 UTC
Hi Daniel - could you send a test file to wheeler@kde.org with the name 159821.mp3?  I just glanced at the patch, and there are a couple of things that I'd want to roll together to make the function as a whole cleaner, but it'd be nice to have a file that I can check with to make sure that I don't break the improvements on the way.  :-)

(Plus it'd go into my collection of files that TagLib must survive parsing before a release...)
Comment 2 Lukáš Lalinský 2010-07-11 11:45:22 UTC
*** Bug 207664 has been marked as a duplicate of this bug. ***