nvcodec: Add missing null check in context sharing code
authorSeungha Yang <seungha@centricular.com>
Sun, 6 Mar 2022 10:18:20 +0000 (19:18 +0900)
committerSeungha Yang <seungha@centricular.com>
Sun, 6 Mar 2022 15:39:04 +0000 (15:39 +0000)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1834>

subprojects/gst-plugins-bad/sys/nvcodec/gstcudautils.c

index 63e0357..4fb8312 100644 (file)
@@ -102,18 +102,22 @@ find_cuda_context (GstElement * element, GstCudaContext ** cuda_ctx)
   query = gst_query_new_context (GST_CUDA_CONTEXT_TYPE);
   if (run_query (element, query, GST_PAD_SRC)) {
     gst_query_parse_context (query, &ctxt);
-    GST_CAT_INFO_OBJECT (GST_CAT_CONTEXT, element,
-        "found context (%p) in downstream query", ctxt);
-    gst_element_set_context (element, ctxt);
+    if (ctxt) {
+      GST_CAT_INFO_OBJECT (GST_CAT_CONTEXT, element,
+          "found context (%p) in downstream query", ctxt);
+      gst_element_set_context (element, ctxt);
+    }
   }
 
   /* although we found cuda context above, the element does not want
    * to use the context. Then try to find from the other direction */
   if (*cuda_ctx == NULL && run_query (element, query, GST_PAD_SINK)) {
     gst_query_parse_context (query, &ctxt);
-    GST_CAT_INFO_OBJECT (GST_CAT_CONTEXT, element,
-        "found context (%p) in upstream query", ctxt);
-    gst_element_set_context (element, ctxt);
+    if (ctxt) {
+      GST_CAT_INFO_OBJECT (GST_CAT_CONTEXT, element,
+          "found context (%p) in upstream query", ctxt);
+      gst_element_set_context (element, ctxt);
+    }
   }
 
   if (*cuda_ctx == NULL) {