fix bug where the metadata packet and first audio packet were getting the same packet number in ogg

This commit is contained in:
Josh Coalson 2002-02-06 07:50:19 +00:00
parent 4e685b9b90
commit 6188feb8bb
1 changed files with 8 additions and 1 deletions

View File

@ -1019,7 +1019,14 @@ FLAC__StreamEncoderWriteStatus write_callback(const FLAC__StreamEncoder *encoder
memset(&op, 0, sizeof(op)); memset(&op, 0, sizeof(op));
op.packet = (unsigned char *)buffer; op.packet = (unsigned char *)buffer;
op.granulepos = encoder_wrapper->samples_written - 1; op.granulepos = encoder_wrapper->samples_written - 1;
op.packetno = encoder_wrapper->current_frame; /*@@@ WATCHOUT:
* this depends on the behavior of libFLAC that we will get one
* write_callback first with all the metadata (and 'samples'
* will be 0), then one for each frame, hence the +1 so that the
* metadata packet is packet 0, the first audio frame is 1, and
* so on.
*/
op.packetno = (samples == 0? 0 : encoder_wrapper->current_frame + 1);
op.bytes = bytes; op.bytes = bytes;
if (encoder_wrapper->bytes_written == bytes) if (encoder_wrapper->bytes_written == bytes)