mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-24 13:56:33 +02:00
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:
parent
404793f4ac
commit
fbe8c56dfe
@ -61,7 +61,7 @@ static int ogg_write_page(AVFormatContext *s, const uint8_t *data, int size,
|
|||||||
} else if (oggstream->eos)
|
} else if (oggstream->eos)
|
||||||
flags |= 4;
|
flags |= 4;
|
||||||
|
|
||||||
page_segments = FFMIN((size/255)+!!size, 255);
|
page_segments = FFMIN(size/255 + 1, 255);
|
||||||
|
|
||||||
init_checksum(s->pb, ff_crc04C11DB7_update, 0);
|
init_checksum(s->pb, ff_crc04C11DB7_update, 0);
|
||||||
put_tag(s->pb, "OggS");
|
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);
|
put_byte(s->pb, page_segments);
|
||||||
for (i = 0; i < page_segments-1; i++)
|
for (i = 0; i < page_segments-1; i++)
|
||||||
put_byte(s->pb, 255);
|
put_byte(s->pb, 255);
|
||||||
if (size) {
|
put_byte(s->pb, size - (page_segments-1)*255);
|
||||||
put_byte(s->pb, size - (page_segments-1)*255);
|
put_buffer(s->pb, data, size);
|
||||||
put_buffer(s->pb, data, size);
|
|
||||||
}
|
|
||||||
ogg_update_checksum(s, crc_offset);
|
ogg_update_checksum(s, crc_offset);
|
||||||
put_flush_packet(s->pb);
|
put_flush_packet(s->pb);
|
||||||
return size;
|
return size;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user