[FFmpeg-devel] avcodec/nvdec: Fix capability check with old drivers.

Submitted by Jacob Trimble on Nov. 30, 2017, 8:35 p.m.

Details

Message ID 20171130203550.104038-1-modmaker@google.com
State Accepted
Commit 2fdc9f7c4939f83a6c9d1f9d85b6d37ce0bab714
Headers show

Commit Message

Jacob Trimble Nov. 30, 2017, 8:35 p.m.
Copied the check from cuviddec.c (*_cuvid decoders) to allow the
capability check to be optional for older drivers.

Signed-off-by: Jacob Trimble <modmaker@google.com>
---
 libavcodec/nvdec.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

Comments

Jacob Trimble Dec. 7, 2017, 7:03 p.m.
On Thu, Nov 30, 2017 at 12:35 PM, Jacob Trimble <modmaker@google.com> wrote:
> Copied the check from cuviddec.c (*_cuvid decoders) to allow the
> capability check to be optional for older drivers.
>
> Signed-off-by: Jacob Trimble <modmaker@google.com>
> ---
>  libavcodec/nvdec.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
>
> diff --git a/libavcodec/nvdec.c b/libavcodec/nvdec.c
> index c7a02ff40f..e9e6ea0f8b 100644
> --- a/libavcodec/nvdec.c
> +++ b/libavcodec/nvdec.c
> @@ -91,6 +91,18 @@ static int nvdec_test_capabilities(NVDECDecoder *decoder,
>      caps.eChromaFormat   = params->ChromaFormat;
>      caps.nBitDepthMinus8 = params->bitDepthMinus8;
>
> +    if (!decoder->cvdl->cuvidGetDecoderCaps) {
> +        av_log(logctx, AV_LOG_WARNING, "Used Nvidia driver is too old to perform a capability check.\n");
> +        av_log(logctx, AV_LOG_WARNING, "The minimum required version is "
> +#if defined(_WIN32) || defined(__CYGWIN__)
> +            "378.66"
> +#else
> +            "378.13"
> +#endif
> +            ". Continuing blind.\n");
> +        return 0;
> +    }
> +
>      err = decoder->cvdl->cuvidGetDecoderCaps(&caps);
>      if (err != CUDA_SUCCESS) {
>          av_log(logctx, AV_LOG_ERROR, "Failed querying decoder capabilities\n");
> --
> 2.15.0.531.g2ccb3012c9-goog
>

Ping.
Timo Rothenpieler Dec. 8, 2017, 9:38 a.m.
lgtm, feel free to push or remind me to do so if I forget
Carl Eugen Hoyos Dec. 11, 2017, 11:40 a.m.
2017-12-08 10:38 GMT+01:00 Timo Rothenpieler <timo@rothenpieler.org>:
> lgtm, feel free to push or remind me to do so if I forget

Please push patches that you review and consider ok.

Carl Eugen
Timo Rothenpieler Dec. 11, 2017, 12:23 p.m.
This patch is already applied for a while now.
I'm not always near a my development system to test and push patches...

Patch hide | download patch | download mbox

diff --git a/libavcodec/nvdec.c b/libavcodec/nvdec.c
index c7a02ff40f..e9e6ea0f8b 100644
--- a/libavcodec/nvdec.c
+++ b/libavcodec/nvdec.c
@@ -91,6 +91,18 @@  static int nvdec_test_capabilities(NVDECDecoder *decoder,
     caps.eChromaFormat   = params->ChromaFormat;
     caps.nBitDepthMinus8 = params->bitDepthMinus8;
 
+    if (!decoder->cvdl->cuvidGetDecoderCaps) {
+        av_log(logctx, AV_LOG_WARNING, "Used Nvidia driver is too old to perform a capability check.\n");
+        av_log(logctx, AV_LOG_WARNING, "The minimum required version is "
+#if defined(_WIN32) || defined(__CYGWIN__)
+            "378.66"
+#else
+            "378.13"
+#endif
+            ". Continuing blind.\n");
+        return 0;
+    }
+
     err = decoder->cvdl->cuvidGetDecoderCaps(&caps);
     if (err != CUDA_SUCCESS) {
         av_log(logctx, AV_LOG_ERROR, "Failed querying decoder capabilities\n");