avcodec/nvenc: fix b-frame DTS behavior with fractional framerates

When using fractional framerates (or any fraction with a numerator != 1),
DTS values for packets would be calculated incorrectly.

Signed-off-by: Kyle Manning <tt2468@irltoolkit.com>
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
release/6.0
Kyle Manning 2 years ago committed by Timo Rothenpieler
parent 3980415627
commit a6dc92968a
  1. 3
      libavcodec/nvenc.c

@ -2266,7 +2266,8 @@ static int nvenc_set_timestamp(AVCodecContext *avctx,
dts = reorder_queue_dequeue(ctx->reorder_queue, avctx, pkt);
if (avctx->codec_descriptor->props & AV_CODEC_PROP_REORDER) {
pkt->dts = dts - FFMAX(ctx->encode_config.frameIntervalP - 1, 0) * FFMAX(avctx->ticks_per_frame, 1);
pkt->dts = dts -
FFMAX(ctx->encode_config.frameIntervalP - 1, 0) * FFMAX(avctx->ticks_per_frame, 1) * FFMAX(avctx->time_base.num, 1);
} else {
pkt->dts = pkt->pts;
}

Loading…
Cancel
Save