mpegvideo_enc: force encoding delay of at least 1 frame when low_delay=0
authorAnton Khirnov <anton@khirnov.net>
Sat, 18 Feb 2012 08:08:23 +0000 (09:08 +0100)
committerAnton Khirnov <anton@khirnov.net>
Sun, 19 Feb 2012 07:22:48 +0000 (08:22 +0100)
This allows the following commit to extrapolate better dts for the first
frame. Pts difference between the first two frames is reused as the
difference between pts and dts of the first frame.

libavcodec/mpegvideo_enc.c

index 10323fc..d8a7c70 100644 (file)
@@ -890,7 +890,8 @@ static int load_input_picture(MpegEncContext *s, AVFrame *pic_arg)
     AVFrame *pic = NULL;
     int64_t pts;
     int i;
-    const int encoding_delay = s->max_b_frames;
+    const int encoding_delay = s->max_b_frames ? s->max_b_frames :
+                                                 (s->low_delay ? 0 : 1);
     int direct = 1;
 
     if (pic_arg) {