libvorbis: Only drop 1-byte packets at end of stream

This fixes handling of totally silent packets during the encoding, that
also are 1 byte in size.

This fixes issue 2013

Originally committed as revision 23693 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Martin Storsjö 2010-06-22 06:53:06 +00:00
parent 5634f30c4a
commit d99659f0b3
1 changed files with 1 additions and 1 deletions

View File

@ -171,7 +171,7 @@ static int oggvorbis_encode_frame(AVCodecContext *avccontext,
while(vorbis_bitrate_flushpacket(&context->vd, &op)) {
/* i'd love to say the following line is a hack, but sadly it's
* not, apparently the end of stream decision is in libogg. */
if(op.bytes==1)
if(op.bytes==1 && op.e_o_s)
continue;
memcpy(context->buffer + context->buffer_index, &op, sizeof(ogg_packet));
context->buffer_index += sizeof(ogg_packet);