Le quintidi 5 nivôse, an CCXXIII, t...@rothenpieler.org a écrit : > From: Timo Rothenpieler <t...@rothenpieler.org> > > --- > libavcodec/nvenc.c | 13 +++++++++++-- > 1 file changed, 11 insertions(+), 2 deletions(-) > > diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c > index 6a37ea6..ebc3249 100644 > --- a/libavcodec/nvenc.c > +++ b/libavcodec/nvenc.c > @@ -471,6 +471,7 @@ static av_cold int nvenc_encode_init(AVCodecContext > *avctx) > int i, num_mbs; > int isLL = 0; > int res = 0; > + int dw, dh; > > NvencContext *ctx = avctx->priv_data; > NvencDynLoadFunctions *dl_fn = &ctx->nvenc_dload_funcs; > @@ -564,8 +565,16 @@ static av_cold int nvenc_encode_init(AVCodecContext > *avctx) > ctx->init_encode_params.encodeGUID = NV_ENC_CODEC_H264_GUID; > ctx->init_encode_params.encodeHeight = avctx->height; > ctx->init_encode_params.encodeWidth = avctx->width; > - ctx->init_encode_params.darHeight = avctx->height; > - ctx->init_encode_params.darWidth = avctx->width; > +
> + if (avctx->sample_aspect_ratio.num && avctx->sample_aspect_ratio.den) { > + av_reduce(&dw, &dh, avctx->sample_aspect_ratio.num, > avctx->sample_aspect_ratio.den, 4096); > + ctx->init_encode_params.darHeight = dw; > + ctx->init_encode_params.darWidth = dh; > + } else { > + ctx->init_encode_params.darHeight = avctx->height; > + ctx->init_encode_params.darWidth = avctx->width; This looks very strange. Was this tested? In the first case, you set darWidth and darHeight to FFmpeg's SAMPLE aspect ratio, and in the second case, you set it to the image aspect ratio. Based on the name of the fields, I would guess the second is correct but the first is wrong. > + } > + > ctx->init_encode_params.frameRateNum = avctx->time_base.den; > ctx->init_encode_params.frameRateDen = avctx->time_base.num * > avctx->ticks_per_frame; Regards, -- Nicolas George
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel