aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilip Langdale <philipl@overt.org>2018-10-24 18:38:44 -0700
committerPhilip Langdale <philipl@overt.org>2018-11-03 15:50:25 -0700
commit6feec11e489b729a0ed7ead205e2aca6837d5f20 (patch)
treee943233a319155cf73bc92b7d9384c81b865cc0e
parent67126555fc030e465806a84084e710f20c8a4775 (diff)
downloadffmpeg-6feec11e489b729a0ed7ead205e2aca6837d5f20.tar.gz
avcodec/nvdec: Increase frame pool size to help deinterlacing
With the cuda yadif filter in use, the number of mapped decoder frames could increase by two, as the filter holds on to additional frames. (cherry picked from commit 1b41115ef70896d9b98ce842dc5f21c465396ce2)
-rw-r--r--libavcodec/nvdec.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/libavcodec/nvdec.c b/libavcodec/nvdec.c
index 4dd6b1acf3..0426c9b319 100644
--- a/libavcodec/nvdec.c
+++ b/libavcodec/nvdec.c
@@ -601,7 +601,11 @@ int ff_nvdec_frame_params(AVCodecContext *avctx,
frames_ctx->format = AV_PIX_FMT_CUDA;
frames_ctx->width = (avctx->coded_width + 1) & ~1;
frames_ctx->height = (avctx->coded_height + 1) & ~1;
- frames_ctx->initial_pool_size = dpb_size;
+ /*
+ * We add two extra frames to the pool to account for deinterlacing filters
+ * holding onto their frames.
+ */
+ frames_ctx->initial_pool_size = dpb_size + 2;
frames_ctx->free = nvdec_free_dummy;
frames_ctx->pool = av_buffer_pool_init(0, nvdec_alloc_dummy);