diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c index 2cfc06a6b9..22956b9c0b 100644 --- a/libavcodec/nvenc.c +++ b/libavcodec/nvenc.c @@ -587,6 +587,18 @@ static av_cold int nvenc_encode_init(AVCodecContext *avctx) ctx->init_encode_params.darWidth = avctx->width; } + // De-compensate for hardware, dubiously, trying to compensate for + // playback at 704 pixel width. + if (avctx->width == 720 && + (avctx->height == 480 || avctx->height == 576)) { + av_reduce(&dw, &dh, + ctx->init_encode_params.darWidth * 44, + ctx->init_encode_params.darHeight * 45, + 1024 * 1204); + ctx->init_encode_params.darHeight = dh; + ctx->init_encode_params.darWidth = dw; + } + ctx->init_encode_params.frameRateNum = avctx->time_base.den; ctx->init_encode_params.frameRateDen = avctx->time_base.num * avctx->ticks_per_frame;