QUOTE(Case @ Nov 11 2002 - 10:37 PM)
Ogg comment header is located at the beginning of the file, editing it with vorbis libraries means that whole file must be rewritten with new contents. On a 3MB file this means that about 16000 times more bytes must be written compared to tags that are located at the end of file.
I don't understand why "padding" is not implemented with oggenc yet. It has been described how to do it - around 10 lines of extra code if I'm not mistaken. Then editing tags in ogg files would be just as fast as with any other sort of tag.
Maybe you (or someone else who can compile oggenc) could make a custum version? I'm pretty sure it would go in the main branch soon enough...
I'm not so good with C myself so I haven't managed to compile oggenc yet so I wait for someone else to do it... But here is what I suggest to change:
After this line in encode.c:
vorbis_analysis_headerout(&vd,opt->comments, header_main,&header_comments,&header_codebooks);
Add:
header_comments.packet = realloc(header_comments.packet, header_comments.bytes + 1024);
header_comments.bytes += 1024;
At least the idea on how to do it should be clear.