avcodec/nvdec: warn about thread count if applicable
authorTimo Rothenpieler <timo@rothenpieler.org>
Sun, 12 Nov 2017 17:09:31 +0000 (18:09 +0100)
committerTimo Rothenpieler <timo@rothenpieler.org>
Mon, 13 Nov 2017 19:33:10 +0000 (20:33 +0100)
libavcodec/nvdec.c

index 7d768b2..5d65f1d 100644 (file)
@@ -292,8 +292,15 @@ int ff_nvdec_decode_init(AVCodecContext *avctx)
     params.ulNumOutputSurfaces = 1;
 
     ret = nvdec_decoder_create(&ctx->decoder_ref, frames_ctx->device_ref, &params, avctx);
-    if (ret < 0)
+    if (ret < 0) {
+        if (params.ulNumDecodeSurfaces > 32) {
+            av_log(avctx, AV_LOG_WARNING, "Using more than 32 (%d) decode surfaces might cause nvdec to fail.\n",
+                   (int)params.ulNumDecodeSurfaces);
+            av_log(avctx, AV_LOG_WARNING, "Try lowering the amount of threads. Using %d right now.\n",
+                   avctx->thread_count);
+        }
         return ret;
+    }
 
     pool = av_mallocz(sizeof(*pool));
     if (!pool) {