From 1c7b71a5bdb88ebb69734100405bbb5441b871e8 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Fri, 18 Apr 2014 23:11:31 +0200 Subject: [PATCH] mpegvideo: Use the current_picture pts The picture slot can be recycled by select_input_picture and only current_picture is populated with the valid pts. Unbreak timestamps when in cbr mode. Signed-off-by: Luca Barbato --- libavcodec/mpegvideo_enc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index 4e72a25391..9c2b24bff8 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -1664,12 +1664,12 @@ vbv_retry: avctx->frame_bits = s->frame_bits; pkt->pts = s->current_picture.f->pts; - if (!s->low_delay) { + if (!s->low_delay && s->pict_type != AV_PICTURE_TYPE_B) { if (!s->current_picture.f->coded_picture_number) pkt->dts = pkt->pts - s->dts_delta; else pkt->dts = s->reordered_pts; - s->reordered_pts = s->input_picture[0]->f->pts; + s->reordered_pts = pkt->pts; } else pkt->dts = pkt->pts; if (s->current_picture.f->key_frame) -- GitLab