TagLib::MPEG::File destructor not happy?
Dave Wiard
lists at wiard.net
Fri Apr 7 06:56:57 CEST 2006
I've been trying to figure out how to get ahold of some ID3v2 tags that
are not accessible via the high-level "get" functions. I've been pouring
over the online doc and so far this chunk of code is the only one I've
seen that looks right:
TagLib::MPEG::File f("foo.mp3");
if(f.ID3v2Tag()) {
TagLib::ID3v2::FrameList l = f.ID3v2Tag()->frameListMap()["TBPM"];
if(!l.isEmpty())
std::cout << l.front().toString() << std::endl;
}
I took this directly from the online doc. I'm running version 1.4 and I
have two problems:
1) This code does not compile. The compiler does not like .toString().
2) This code, when incorporated into my Qt app with only three changes
(TBPM -> TALB, truncate .toString(), and load my own file not foo.mp3),
generates the abort below (I think) when "f" is destroyed as the code
passes out of scope.
*** glibc detected *** free(): invalid pointer: 0x0000000000744c68 ***
Can someone give me some hints on how to debug this? I can provide a
backtrace from gdb if needs be. I'm not too strong with C++ but I can
figure most things out with some guidance.
Dave
kenshin/kawika/sithia
More information about the taglib-devel
mailing list