nvenc: Don't leak CUDA device memory
authorSeungha Yang <seungha.yang@navercorp.com>
Tue, 26 Mar 2019 11:43:22 +0000 (20:43 +0900)
committerMatthew Waters <matthew@centricular.com>
Tue, 26 Mar 2019 11:54:16 +0000 (11:54 +0000)
Allocated device memory should be freed with cuMemFree

sys/nvenc/gstnvbaseenc.c

index 0567bfd..42fe7ac 100644 (file)
@@ -998,6 +998,12 @@ gst_nv_base_enc_free_buffers (GstNvBaseEnc * nvenc)
         GST_ERROR_OBJECT (nvenc, "Failed to unregister resource %p, ret %d",
             in_gl_resource, nv_ret);
 
+      nv_ret = cuMemFree ((CUdeviceptr) in_gl_resource->cuda_pointer);
+      if (nv_ret != NV_ENC_SUCCESS) {
+        GST_ERROR_OBJECT (nvenc, "Failed to free CUDA device memory, ret %d",
+            nv_ret);
+      }
+
       g_free (in_gl_resource);
       cuCtxPopCurrent (NULL);
     } else