[FFmpeg-cvslog] mpegvideo_enc: force encoding delay of at least 1 frame when low_delay=0

Anton Khirnov git at videolan.org
Mon Feb 20 01:42:26 CET 2012


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Sat Feb 18 09:08:23 2012 +0100| [5455384219d873d0d2ddaeb7098da659f4207058] | committer: Anton Khirnov

mpegvideo_enc: force encoding delay of at least 1 frame when low_delay=0

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.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=5455384219d873d0d2ddaeb7098da659f4207058
---

 libavcodec/mpegvideo_enc.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c
index 10323fc..d8a7c70 100644
--- a/libavcodec/mpegvideo_enc.c
+++ b/libavcodec/mpegvideo_enc.c
@@ -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) {



More information about the ffmpeg-cvslog mailing list