>
> OK, I think and plan to do so, too. My plan is to add 2 functions to the API,
> named "lame_init_vbrtag" and "lame_finish_vbrtag".
>
> 1 int lame_init_vbrtag(int guessed_framenumber)
> - for the initialization(malloc buffers and make gfp->vbrtag = 1, and so on)
> - returns VBR/ID3 tag size.
> - caller program (frontend) fseek the output file to make a space for
> writing these tags.
>
> 2 int lame_finish_vbrtag(char *TagSpace)
> - called after finishing the encoding.
> - it will make a VBR/ID3 tags and copy it to *TagSpace
> - caller program (frontend) fseek to the beginning of output file, and
> write it.
>
No need for lame_init_vbrtag(), since we have a flag the user
can set already? If this flag is set, the tag is written
directly into the mp3 bitstream. (so current code does no
file i/o).
One complication: a vbr tag and id3v2 tag! If there is also a id3v2
tag, it will be written into the bitstream first, so
lame_finish_vbrtag() will have to return a file offset
where the vbr tag starts.
Mark
--
MP3 ENCODER mailing list ( http://geek.rcc.se/mp3encoder/ )