Correctly write last 0 lacing value when packet size is multiple of 255, patch by Greg Maxwell, gmaxwell at gmail dot com

Originally committed as revision 22559 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Greg Maxwell 2010-03-15 23:04:09 +00:00 committed by Baptiste Coudurier
parent 404793f4ac
commit fbe8c56dfe

View File

@ -61,7 +61,7 @@ static int ogg_write_page(AVFormatContext *s, const uint8_t *data, int size,
} else if (oggstream->eos)
flags |= 4;
page_segments = FFMIN((size/255)+!!size, 255);
page_segments = FFMIN(size/255 + 1, 255);
init_checksum(s->pb, ff_crc04C11DB7_update, 0);
put_tag(s->pb, "OggS");
@ -75,10 +75,9 @@ static int ogg_write_page(AVFormatContext *s, const uint8_t *data, int size,
put_byte(s->pb, page_segments);
for (i = 0; i < page_segments-1; i++)
put_byte(s->pb, 255);
if (size) {
put_byte(s->pb, size - (page_segments-1)*255);
put_buffer(s->pb, data, size);
}
put_byte(s->pb, size - (page_segments-1)*255);
put_buffer(s->pb, data, size);
ogg_update_checksum(s, crc_offset);
put_flush_packet(s->pb);
return size;