summaryrefslogtreecommitdiff
path: root/libavcodec/libvorbis.c
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2010-06-22 06:53:06 +0000
committerMartin Storsjö <martin@martin.st>2010-06-22 06:53:06 +0000
commitd99659f0b3ca873776ca7de4625534b2d8cb6c67 (patch)
treed749a284f6ade33e82d175fb7a328e87f9870fec /libavcodec/libvorbis.c
parent5634f30c4a25c17c1de26703948efeafb733413d (diff)
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
Diffstat (limited to 'libavcodec/libvorbis.c')
-rw-r--r--libavcodec/libvorbis.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libavcodec/libvorbis.c b/libavcodec/libvorbis.c
index a7044a23b5..5926d98fbe 100644
--- a/libavcodec/libvorbis.c
+++ b/libavcodec/libvorbis.c
@@ -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);