[id3lib-devel] It seems to me that it is very buggy
Brought to you by:
t1mpy
From: Kenji C. <ken...@gm...> - 2010-03-06 03:00:02
|
Hi, I've been using id3lib for a while, and having a few problems with it. Problem 1: For some mp3 inputs, the library crashes in tag_impl.cpp, line 50. That's because the String size; is an empty string. Problem 2: For some mp3 inputs, ID3_Tag::Link() would never return. Problem 3: For some mp3 inputs, changes don't save back to the file. All those 3 types of mp3 files are all normal mp3 files and can be edited by other program without any problem. I found that problem #2 and #3 happen only if the file name is in Chinese. And the char* version of ID3_Tag::Link( char* ) always returns error, so I'm actually using ID3_Tag::Link(ID3_Reader &, ... ) to link my files. And for the same mp3 file, the following code doesn't work or produces problem #2 or #3: ifstream s ( path , ifstream::in | ifstream::out ); // path contains the chinese path ID3_IFStreamReader r( s ); ID3_Tag tag; tag.Link( r , ID3TT_ID3); But if I rename the file to let say "abc.mp3", and the following will work!!! ID3_Tag tag; tag.Link( "abc.mp3" , ID3TT_ID3); and with the same name "abc.mp3", the following will NOT work!! <--- problem #2 only for some files ifstream s ( "abc.mp3", ifstream::in | ifstream::out ); ID3_IFStreamReader r( s ); ID3_Tag tag; tag.Link( r , ID3TT_ID3); // never return I must get my program to work with non-english file names, and all this happen only to some of my mp3 files, not all of them. I notice this project has got much changed since 2003. I'm trying other libraries that do the job for me, but the one that is very close to what I want "libid3tag" is also buggy, and it just can't write back to the file properly. So please is there anyone who can help me? Thanks x 9999999999 times Kenji |