1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-07-06 06:27:36 +02:00

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>
This commit is contained in:
Kyle Manning
2023-04-02 16:19:44 -07:00
committed by Timo Rothenpieler
parent 6941788d24
commit 9a245bdf5d

View File

@ -2266,7 +2266,8 @@ static int nvenc_set_timestamp(AVCodecContext *avctx,
dts = reorder_queue_dequeue(ctx->reorder_queue, avctx, pkt); dts = reorder_queue_dequeue(ctx->reorder_queue, avctx, pkt);
if (avctx->codec_descriptor->props & AV_CODEC_PROP_REORDER) { 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 { } else {
pkt->dts = pkt->pts; pkt->dts = pkt->pts;
} }