summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorRandom Joe <ff.random.joe@gmail.com>2023-08-13 19:13:01 +0200
committerTimo Rothenpieler <timo@rothenpieler.org>2023-08-13 19:13:01 +0200
commit176ed008bd0f8c6ec7f0474b6503680e7ea6c451 (patch)
tree5cb9c96d483f9ac87d07160913bafcae190aa60e /libavcodec
parentf7715feb5dbbcf21497d9b706e032187787ae533 (diff)
avcodec/cuviddec: dynamically set max decode surfaces
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/cuviddec.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/libavcodec/cuviddec.c b/libavcodec/cuviddec.c
index 814bc53f70..da37207cf2 100644
--- a/libavcodec/cuviddec.c
+++ b/libavcodec/cuviddec.c
@@ -360,6 +360,11 @@ static int CUDAAPI cuvid_handle_video_sequence(void *opaque, CUVIDEOFORMAT* form
}
}
+ if(ctx->cuparseinfo.ulMaxNumDecodeSurfaces != cuinfo.ulNumDecodeSurfaces) {
+ ctx->cuparseinfo.ulMaxNumDecodeSurfaces = cuinfo.ulNumDecodeSurfaces;
+ return cuinfo.ulNumDecodeSurfaces;
+ }
+
return 1;
}
@@ -1022,7 +1027,7 @@ static av_cold int cuvid_decode_init(AVCodecContext *avctx)
goto error;
}
- ctx->cuparseinfo.ulMaxNumDecodeSurfaces = ctx->nb_surfaces;
+ ctx->cuparseinfo.ulMaxNumDecodeSurfaces = 1;
ctx->cuparseinfo.ulMaxDisplayDelay = (avctx->flags & AV_CODEC_FLAG_LOW_DELAY) ? 0 : CUVID_MAX_DISPLAY_DELAY;
ctx->cuparseinfo.pUserData = avctx;
ctx->cuparseinfo.pfnSequenceCallback = cuvid_handle_video_sequence;