@@ -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;
@@ -249,8 +249,9 @@ int ff_nvdec_decode_init(AVCodecContext *avctx, unsigned int dpb_size)
params.ulWidth = avctx->coded_width;
params.ulHeight = avctx->coded_height;
- params.ulTargetWidth = avctx->coded_width;
- params.ulTargetHeight = avctx->coded_height;
+ 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;
params.bitDepthMinus8 = sw_desc->comp[0].depth - 8;
params.OutputFormat = params.bitDepthMinus8 ?
cudaVideoSurfaceFormat_P016 : cudaVideoSurfaceFormat_NV12;