From e270e2967fda061d8b07155394f039c7f451288d Mon Sep 17 00:00:00 2001 From: Seungha Yang Date: Sun, 13 Mar 2022 00:17:48 +0900 Subject: [PATCH] nvenc: Fix deadlock because of too strict buffer pool size The pool size might need to be larger than encoding surface pool size. Also, because we always copy input frame into internal CUDA memory, there's no reason to restrict max size of buffer pool. Part-of: --- subprojects/gst-plugins-bad/sys/nvcodec/gstnvbaseenc.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/subprojects/gst-plugins-bad/sys/nvcodec/gstnvbaseenc.c b/subprojects/gst-plugins-bad/sys/nvcodec/gstnvbaseenc.c index 809d08cbba..f42f25c48a 100644 --- a/subprojects/gst-plugins-bad/sys/nvcodec/gstnvbaseenc.c +++ b/subprojects/gst-plugins-bad/sys/nvcodec/gstnvbaseenc.c @@ -669,8 +669,7 @@ gst_nv_base_enc_propose_allocation (GstVideoEncoder * enc, GstQuery * query) size = GST_VIDEO_INFO_SIZE (&info); config = gst_buffer_pool_get_config (pool); - gst_buffer_pool_config_set_params (config, caps, size, - nvenc->items->len, nvenc->items->len); + gst_buffer_pool_config_set_params (config, caps, size, nvenc->items->len, 0); gst_buffer_pool_config_add_option (config, GST_BUFFER_POOL_OPTION_VIDEO_META); if (!gst_buffer_pool_set_config (pool, config)) @@ -681,8 +680,7 @@ gst_nv_base_enc_propose_allocation (GstVideoEncoder * enc, GstQuery * query) gst_buffer_pool_config_get_params (config, NULL, &size, NULL, NULL); gst_structure_free (config); - gst_query_add_allocation_pool (query, pool, size, - nvenc->items->len, nvenc->items->len); + gst_query_add_allocation_pool (query, pool, size, nvenc->items->len, 0); gst_query_add_allocation_meta (query, GST_VIDEO_META_API_TYPE, NULL); gst_object_unref (pool);