aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libavcodec/libx264.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c
index ec6d5ea433..2d84dc33af 100644
--- a/libavcodec/libx264.c
+++ b/libavcodec/libx264.c
@@ -102,12 +102,14 @@ static int X264_frame(AVCodecContext *ctx, uint8_t *buf,
x4->pic.i_type = X264_TYPE_AUTO;
}
+ do {
if (x264_encoder_encode(x4->enc, &nal, &nnal, frame? &x4->pic: NULL, &pic_out) < 0)
return -1;
bufsize = encode_nals(ctx, buf, bufsize, nal, nnal, 0);
if (bufsize < 0)
return -1;
+ } while (!bufsize && !frame && x264_encoder_delayed_frames(x4->enc));
/* FIXME: libx264 now provides DTS, but AVFrame doesn't have a field for it. */
x4->out_pic.pts = pic_out.i_pts;