avcodec/libvorbisenc: do not attempt to flush if no data was input
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 19 May 2014 14:56:55 +0000 (16:56 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 19 May 2014 15:37:50 +0000 (17:37 +0200)
this prevents the creation of a packet even though no single sample has ever
been input, which some confusion in the timestamp generation

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/libvorbisenc.c

index c655c21..32465db 100644 (file)
@@ -295,7 +295,7 @@ static int libvorbis_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
         if ((ret = ff_af_queue_add(&s->afq, frame)) < 0)
             return ret;
     } else {
-        if (!s->eof)
+        if (!s->eof && s->afq.frame_alloc)
             if ((ret = vorbis_analysis_wrote(&s->vd, 0)) < 0) {
                 av_log(avctx, AV_LOG_ERROR, "error in vorbis_analysis_wrote()\n");
                 return vorbis_error_to_averror(ret);