I'm writing a tagger software, and I think that dMC writes APEv2 tags incorrectly. Although a footer is present, it does not set the APE_TAG_FLAG_CONTAINS_FOOTER bit in the header flags.
I've found a webpage (http://www2.uni-jena.de/~pfk/mpp/sv8/apetagflags.html) stating that an UNset bit means the presence of a footer, this is, however, false. If you take a look at the official monkeys audio SDK, in ApeTag.h you will find that a SET bit represents the presence of a footer.
From ApeTag.h from the SDK:
#define APE_TAG_FLAG_CONTAINS_HEADER (1 << 31)
#define APE_TAG_FLAG_CONTAINS_FOOTER (1 << 30)
#define APE_TAG_FLAG_IS_HEADER (1 << 29)
#define APE_TAG_FLAGS_DEFAULT (APE_TAG_FLAG_CONTAINS_FOOTER)
And as footers are obligatory in APEv2 files, APE_TAG_FLAGS_DEFAULT must state that there is a footer in the tag. So a set bit means a footer.
Hey, Spoon, I REALLY love your Music Converter, so don't leave such silly bugs in it!
(This bug is not hard for other tagging software to take into account, but still queer)
I've found a webpage (http://www2.uni-jena.de/~pfk/mpp/sv8/apetagflags.html) stating that an UNset bit means the presence of a footer, this is, however, false. If you take a look at the official monkeys audio SDK, in ApeTag.h you will find that a SET bit represents the presence of a footer.
From ApeTag.h from the SDK:
#define APE_TAG_FLAG_CONTAINS_HEADER (1 << 31)
#define APE_TAG_FLAG_CONTAINS_FOOTER (1 << 30)
#define APE_TAG_FLAG_IS_HEADER (1 << 29)
#define APE_TAG_FLAGS_DEFAULT (APE_TAG_FLAG_CONTAINS_FOOTER)
And as footers are obligatory in APEv2 files, APE_TAG_FLAGS_DEFAULT must state that there is a footer in the tag. So a set bit means a footer.
Hey, Spoon, I REALLY love your Music Converter, so don't leave such silly bugs in it!
(This bug is not hard for other tagging software to take into account, but still queer)
Comment