[FFmpeg-cvslog] avcodec/nvdec: Increase frame pool size to help deinterlacing

Philip Langdale git at videolan.org
Fri Nov 2 20:33:32 EET 2018


ffmpeg | branch: master | Philip Langdale <philipl at overt.org> | Wed Oct 24 18:38:44 2018 -0700| [1b41115ef70896d9b98ce842dc5f21c465396ce2] | committer: Philip Langdale

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.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1b41115ef70896d9b98ce842dc5f21c465396ce2
---

 libavcodec/nvdec.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

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);



More information about the ffmpeg-cvslog mailing list