[FFmpeg-devel] [PATCH 2/4] avcodec/nvdec: correctly set output frame size
James Almer
jamrial at gmail.com
Sat Nov 11 18:12:50 EET 2017
On 11/11/2017 12:21 PM, Timo Rothenpieler wrote:
> ---
> libavcodec/nvdec.c | 15 +++++++++------
> 1 file changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/libavcodec/nvdec.c b/libavcodec/nvdec.c
> index db338accfa..780c2e67cf 100644
> --- a/libavcodec/nvdec.c
> +++ b/libavcodec/nvdec.c
> @@ -232,8 +232,8 @@ int ff_nvdec_decode_init(AVCodecContext *avctx, unsigned int dpb_size)
> frames_ctx = (AVHWFramesContext*)avctx->hw_frames_ctx->data;
>
> frames_ctx->format = AV_PIX_FMT_CUDA;
> - frames_ctx->width = avctx->coded_width;
> - frames_ctx->height = avctx->coded_height;
> + frames_ctx->width = (avctx->width + 1) & ~1;
> + frames_ctx->height = (avctx->height + 1) & ~1;
> frames_ctx->sw_format = AV_PIX_FMT_NV12;
> frames_ctx->sw_format = sw_desc->comp[0].depth > 8 ?
> AV_PIX_FMT_P010 : AV_PIX_FMT_NV12;
> @@ -247,10 +247,13 @@ int ff_nvdec_decode_init(AVCodecContext *avctx, unsigned int dpb_size)
> }
> frames_ctx = (AVHWFramesContext*)avctx->hw_frames_ctx->data;
>
> - params.ulWidth = avctx->coded_width;
> - params.ulHeight = avctx->coded_height;
> - params.ulTargetWidth = avctx->coded_width;
> - params.ulTargetHeight = avctx->coded_height;
> + params.ulWidth = avctx->coded_width;
> + params.ulHeight = avctx->coded_height;
Unneeded change.
> +
> + params.display_area.top = params.display_area.left = 0;
> + params.ulTargetWidth = params.display_area.right = frames_ctx->width;
> + params.ulTargetHeight = params.display_area.bottom = frames_ctx->height;
Keep the vertical alignment with the surrounding lines. The resulting
diff will be much smaller.
> +
> params.bitDepthMinus8 = sw_desc->comp[0].depth - 8;
> params.OutputFormat = params.bitDepthMinus8 ?
> cudaVideoSurfaceFormat_P016 : cudaVideoSurfaceFormat_NV12;
>
More information about the ffmpeg-devel
mailing list