OK, I've found the answer for one of my previous question myself in the
meantime.
The comment header can of course be split over more than 1 ogg page since the
comment header can be greater than 64K. It also seems to be possible that both
comment AND setup headers are placed on a single ogg page only (as stated in the
Voribs specs).
Due to the fact that the first audio packet also begins on a new ogg page I can
use the ogg page boundaries to extract the comment + setup headers from the
stream. My question is now, how can I determine within this binary data where
the comment header ends and where the setup header starts? Well, the length of
the comment header is indeed known, but if I'm right I can't assume that
the setup header immedeately follows the comment header (this also would be bad
because the comment header doesn't end with a fully used byte because of the
framing bit). Padding also wouldn't be possible in that case.
The other way would be to search for the header fields of the setup header from
the end of the comment header, which is the binary data of:
0x05 (setup header identifier)
0x76 0x6F 0x72 0x62 0x69 0x73 ("vorbis" characters)
As long as the data between the end of the comment header and the begin of the
setup header is all 0's, this should work just fine, and this could also be
used to include padding to the file if it has to be rewritten anyway. Good
practice would then be to create a single ogg page for the comment header with a
size of e.g. 8K (which should be enough for most cases), filling up the rest of
the page with 0's to be able to re-tag the files at least in future without
rewriting the entire file.
What do you say, would this tagging behaviour be correct and in accordance to
the specs?
(well, this may is more related to vorbis rather than to ogg, but I started
posting within this mailing list ;)
Thanks
Mathias
___________________________________________________________
Der fr?he Vogel f?ngt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail:
http://mail.yahoo.de