2021-12-08 11:48:08 +00:00
|
|
|
#pragma once
|
nvdec,nvenc: Port to dynamic library loading
... and put them into new nvcodec plugin.
* nvcodec plugin
Now each nvenc and nvdec element is moved to be a part of nvcodec plugin
for better interoperability.
Additionally, cuda runtime API header dependencies
(i.e., cuda_runtime_api.h and cuda_gl_interop.h) are removed.
Note that cuda runtime APIs have prefix "cuda". Since 1.16 release with
Windows support, only "cuda.h" and "cudaGL.h" dependent symbols have
been used except for some defined types. However, those types could be
replaced with other types which were defined by "cuda.h".
* dynamic library loading
CUDA library will be opened with g_module_open() instead of build-time linking.
On Windows, nvcuda.dll is installed to system path by CUDA Toolkit
installer, and on *nix, user should ensure that libcuda.so.1 can be
loadable (i.e., via LD_LIBRARY_PATH or default dlopen path)
Therefore, NVIDIA_VIDEO_CODEC_SDK_PATH env build time dependency for Windows
is removed.
2019-05-17 13:27:50 +00:00
|
|
|
|
2022-12-21 14:57:15 +00:00
|
|
|
#include <gst/cuda/cuda-prelude.h>
|
2021-12-08 11:48:08 +00:00
|
|
|
#include <cuda.h>
|
|
|
|
#include <cudaGL.h>
|
nvdec,nvenc: Port to dynamic library loading
... and put them into new nvcodec plugin.
* nvcodec plugin
Now each nvenc and nvdec element is moved to be a part of nvcodec plugin
for better interoperability.
Additionally, cuda runtime API header dependencies
(i.e., cuda_runtime_api.h and cuda_gl_interop.h) are removed.
Note that cuda runtime APIs have prefix "cuda". Since 1.16 release with
Windows support, only "cuda.h" and "cudaGL.h" dependent symbols have
been used except for some defined types. However, those types could be
replaced with other types which were defined by "cuda.h".
* dynamic library loading
CUDA library will be opened with g_module_open() instead of build-time linking.
On Windows, nvcuda.dll is installed to system path by CUDA Toolkit
installer, and on *nix, user should ensure that libcuda.so.1 can be
loadable (i.e., via LD_LIBRARY_PATH or default dlopen path)
Therefore, NVIDIA_VIDEO_CODEC_SDK_PATH env build time dependency for Windows
is removed.
2019-05-17 13:27:50 +00:00
|
|
|
|
2022-09-12 16:02:50 +00:00
|
|
|
#ifdef G_OS_WIN32
|
|
|
|
#ifndef INITGUID
|
|
|
|
#include <initguid.h>
|
|
|
|
#endif /* INITGUID */
|
|
|
|
|
|
|
|
#include <d3d11.h>
|
|
|
|
#include <dxgi.h>
|
|
|
|
#include <cudaD3D11.h>
|
|
|
|
#endif /* G_OS_WIN32 */
|
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
G_BEGIN_DECLS
|
nvdec,nvenc: Port to dynamic library loading
... and put them into new nvcodec plugin.
* nvcodec plugin
Now each nvenc and nvdec element is moved to be a part of nvcodec plugin
for better interoperability.
Additionally, cuda runtime API header dependencies
(i.e., cuda_runtime_api.h and cuda_gl_interop.h) are removed.
Note that cuda runtime APIs have prefix "cuda". Since 1.16 release with
Windows support, only "cuda.h" and "cudaGL.h" dependent symbols have
been used except for some defined types. However, those types could be
replaced with other types which were defined by "cuda.h".
* dynamic library loading
CUDA library will be opened with g_module_open() instead of build-time linking.
On Windows, nvcuda.dll is installed to system path by CUDA Toolkit
installer, and on *nix, user should ensure that libcuda.so.1 can be
loadable (i.e., via LD_LIBRARY_PATH or default dlopen path)
Therefore, NVIDIA_VIDEO_CODEC_SDK_PATH env build time dependency for Windows
is removed.
2019-05-17 13:27:50 +00:00
|
|
|
|
|
|
|
/* cuda.h */
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2020-01-20 09:52:26 +00:00
|
|
|
CUresult CUDAAPI CuInit (unsigned int Flags);
|
nvdec,nvenc: Port to dynamic library loading
... and put them into new nvcodec plugin.
* nvcodec plugin
Now each nvenc and nvdec element is moved to be a part of nvcodec plugin
for better interoperability.
Additionally, cuda runtime API header dependencies
(i.e., cuda_runtime_api.h and cuda_gl_interop.h) are removed.
Note that cuda runtime APIs have prefix "cuda". Since 1.16 release with
Windows support, only "cuda.h" and "cudaGL.h" dependent symbols have
been used except for some defined types. However, those types could be
replaced with other types which were defined by "cuda.h".
* dynamic library loading
CUDA library will be opened with g_module_open() instead of build-time linking.
On Windows, nvcuda.dll is installed to system path by CUDA Toolkit
installer, and on *nix, user should ensure that libcuda.so.1 can be
loadable (i.e., via LD_LIBRARY_PATH or default dlopen path)
Therefore, NVIDIA_VIDEO_CODEC_SDK_PATH env build time dependency for Windows
is removed.
2019-05-17 13:27:50 +00:00
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2020-01-20 09:52:26 +00:00
|
|
|
CUresult CUDAAPI CuGetErrorName (CUresult error,
|
|
|
|
const char **pStr);
|
nvdec,nvenc: Port to dynamic library loading
... and put them into new nvcodec plugin.
* nvcodec plugin
Now each nvenc and nvdec element is moved to be a part of nvcodec plugin
for better interoperability.
Additionally, cuda runtime API header dependencies
(i.e., cuda_runtime_api.h and cuda_gl_interop.h) are removed.
Note that cuda runtime APIs have prefix "cuda". Since 1.16 release with
Windows support, only "cuda.h" and "cudaGL.h" dependent symbols have
been used except for some defined types. However, those types could be
replaced with other types which were defined by "cuda.h".
* dynamic library loading
CUDA library will be opened with g_module_open() instead of build-time linking.
On Windows, nvcuda.dll is installed to system path by CUDA Toolkit
installer, and on *nix, user should ensure that libcuda.so.1 can be
loadable (i.e., via LD_LIBRARY_PATH or default dlopen path)
Therefore, NVIDIA_VIDEO_CODEC_SDK_PATH env build time dependency for Windows
is removed.
2019-05-17 13:27:50 +00:00
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2020-01-20 09:52:26 +00:00
|
|
|
CUresult CUDAAPI CuGetErrorString (CUresult error,
|
|
|
|
const char **pStr);
|
nvdec,nvenc: Port to dynamic library loading
... and put them into new nvcodec plugin.
* nvcodec plugin
Now each nvenc and nvdec element is moved to be a part of nvcodec plugin
for better interoperability.
Additionally, cuda runtime API header dependencies
(i.e., cuda_runtime_api.h and cuda_gl_interop.h) are removed.
Note that cuda runtime APIs have prefix "cuda". Since 1.16 release with
Windows support, only "cuda.h" and "cudaGL.h" dependent symbols have
been used except for some defined types. However, those types could be
replaced with other types which were defined by "cuda.h".
* dynamic library loading
CUDA library will be opened with g_module_open() instead of build-time linking.
On Windows, nvcuda.dll is installed to system path by CUDA Toolkit
installer, and on *nix, user should ensure that libcuda.so.1 can be
loadable (i.e., via LD_LIBRARY_PATH or default dlopen path)
Therefore, NVIDIA_VIDEO_CODEC_SDK_PATH env build time dependency for Windows
is removed.
2019-05-17 13:27:50 +00:00
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2020-01-20 09:52:26 +00:00
|
|
|
CUresult CUDAAPI CuCtxCreate (CUcontext * pctx,
|
|
|
|
unsigned int flags,
|
|
|
|
CUdevice dev);
|
nvdec,nvenc: Port to dynamic library loading
... and put them into new nvcodec plugin.
* nvcodec plugin
Now each nvenc and nvdec element is moved to be a part of nvcodec plugin
for better interoperability.
Additionally, cuda runtime API header dependencies
(i.e., cuda_runtime_api.h and cuda_gl_interop.h) are removed.
Note that cuda runtime APIs have prefix "cuda". Since 1.16 release with
Windows support, only "cuda.h" and "cudaGL.h" dependent symbols have
been used except for some defined types. However, those types could be
replaced with other types which were defined by "cuda.h".
* dynamic library loading
CUDA library will be opened with g_module_open() instead of build-time linking.
On Windows, nvcuda.dll is installed to system path by CUDA Toolkit
installer, and on *nix, user should ensure that libcuda.so.1 can be
loadable (i.e., via LD_LIBRARY_PATH or default dlopen path)
Therefore, NVIDIA_VIDEO_CODEC_SDK_PATH env build time dependency for Windows
is removed.
2019-05-17 13:27:50 +00:00
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2020-01-20 09:52:26 +00:00
|
|
|
CUresult CUDAAPI CuCtxDestroy (CUcontext ctx);
|
nvdec,nvenc: Port to dynamic library loading
... and put them into new nvcodec plugin.
* nvcodec plugin
Now each nvenc and nvdec element is moved to be a part of nvcodec plugin
for better interoperability.
Additionally, cuda runtime API header dependencies
(i.e., cuda_runtime_api.h and cuda_gl_interop.h) are removed.
Note that cuda runtime APIs have prefix "cuda". Since 1.16 release with
Windows support, only "cuda.h" and "cudaGL.h" dependent symbols have
been used except for some defined types. However, those types could be
replaced with other types which were defined by "cuda.h".
* dynamic library loading
CUDA library will be opened with g_module_open() instead of build-time linking.
On Windows, nvcuda.dll is installed to system path by CUDA Toolkit
installer, and on *nix, user should ensure that libcuda.so.1 can be
loadable (i.e., via LD_LIBRARY_PATH or default dlopen path)
Therefore, NVIDIA_VIDEO_CODEC_SDK_PATH env build time dependency for Windows
is removed.
2019-05-17 13:27:50 +00:00
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2020-01-20 09:52:26 +00:00
|
|
|
CUresult CUDAAPI CuCtxPopCurrent (CUcontext * pctx);
|
nvdec,nvenc: Port to dynamic library loading
... and put them into new nvcodec plugin.
* nvcodec plugin
Now each nvenc and nvdec element is moved to be a part of nvcodec plugin
for better interoperability.
Additionally, cuda runtime API header dependencies
(i.e., cuda_runtime_api.h and cuda_gl_interop.h) are removed.
Note that cuda runtime APIs have prefix "cuda". Since 1.16 release with
Windows support, only "cuda.h" and "cudaGL.h" dependent symbols have
been used except for some defined types. However, those types could be
replaced with other types which were defined by "cuda.h".
* dynamic library loading
CUDA library will be opened with g_module_open() instead of build-time linking.
On Windows, nvcuda.dll is installed to system path by CUDA Toolkit
installer, and on *nix, user should ensure that libcuda.so.1 can be
loadable (i.e., via LD_LIBRARY_PATH or default dlopen path)
Therefore, NVIDIA_VIDEO_CODEC_SDK_PATH env build time dependency for Windows
is removed.
2019-05-17 13:27:50 +00:00
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2020-01-20 09:52:26 +00:00
|
|
|
CUresult CUDAAPI CuCtxPushCurrent (CUcontext ctx);
|
nvdec,nvenc: Port to dynamic library loading
... and put them into new nvcodec plugin.
* nvcodec plugin
Now each nvenc and nvdec element is moved to be a part of nvcodec plugin
for better interoperability.
Additionally, cuda runtime API header dependencies
(i.e., cuda_runtime_api.h and cuda_gl_interop.h) are removed.
Note that cuda runtime APIs have prefix "cuda". Since 1.16 release with
Windows support, only "cuda.h" and "cudaGL.h" dependent symbols have
been used except for some defined types. However, those types could be
replaced with other types which were defined by "cuda.h".
* dynamic library loading
CUDA library will be opened with g_module_open() instead of build-time linking.
On Windows, nvcuda.dll is installed to system path by CUDA Toolkit
installer, and on *nix, user should ensure that libcuda.so.1 can be
loadable (i.e., via LD_LIBRARY_PATH or default dlopen path)
Therefore, NVIDIA_VIDEO_CODEC_SDK_PATH env build time dependency for Windows
is removed.
2019-05-17 13:27:50 +00:00
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2019-08-30 08:19:44 +00:00
|
|
|
CUresult CUDAAPI CuCtxEnablePeerAccess (CUcontext peerContext,
|
|
|
|
unsigned int Flags);
|
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2019-08-30 08:19:44 +00:00
|
|
|
CUresult CUDAAPI CuCtxDisablePeerAccess (CUcontext peerContext);
|
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2020-01-20 09:52:26 +00:00
|
|
|
CUresult CUDAAPI CuGraphicsMapResources (unsigned int count,
|
|
|
|
CUgraphicsResource * resources,
|
|
|
|
CUstream hStream);
|
nvdec,nvenc: Port to dynamic library loading
... and put them into new nvcodec plugin.
* nvcodec plugin
Now each nvenc and nvdec element is moved to be a part of nvcodec plugin
for better interoperability.
Additionally, cuda runtime API header dependencies
(i.e., cuda_runtime_api.h and cuda_gl_interop.h) are removed.
Note that cuda runtime APIs have prefix "cuda". Since 1.16 release with
Windows support, only "cuda.h" and "cudaGL.h" dependent symbols have
been used except for some defined types. However, those types could be
replaced with other types which were defined by "cuda.h".
* dynamic library loading
CUDA library will be opened with g_module_open() instead of build-time linking.
On Windows, nvcuda.dll is installed to system path by CUDA Toolkit
installer, and on *nix, user should ensure that libcuda.so.1 can be
loadable (i.e., via LD_LIBRARY_PATH or default dlopen path)
Therefore, NVIDIA_VIDEO_CODEC_SDK_PATH env build time dependency for Windows
is removed.
2019-05-17 13:27:50 +00:00
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2020-01-20 09:52:26 +00:00
|
|
|
CUresult CUDAAPI CuGraphicsUnmapResources (unsigned int count,
|
|
|
|
CUgraphicsResource * resources,
|
|
|
|
CUstream hStream);
|
nvdec,nvenc: Port to dynamic library loading
... and put them into new nvcodec plugin.
* nvcodec plugin
Now each nvenc and nvdec element is moved to be a part of nvcodec plugin
for better interoperability.
Additionally, cuda runtime API header dependencies
(i.e., cuda_runtime_api.h and cuda_gl_interop.h) are removed.
Note that cuda runtime APIs have prefix "cuda". Since 1.16 release with
Windows support, only "cuda.h" and "cudaGL.h" dependent symbols have
been used except for some defined types. However, those types could be
replaced with other types which were defined by "cuda.h".
* dynamic library loading
CUDA library will be opened with g_module_open() instead of build-time linking.
On Windows, nvcuda.dll is installed to system path by CUDA Toolkit
installer, and on *nix, user should ensure that libcuda.so.1 can be
loadable (i.e., via LD_LIBRARY_PATH or default dlopen path)
Therefore, NVIDIA_VIDEO_CODEC_SDK_PATH env build time dependency for Windows
is removed.
2019-05-17 13:27:50 +00:00
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2020-01-20 09:52:26 +00:00
|
|
|
CUresult CUDAAPI CuGraphicsSubResourceGetMappedArray (CUarray * pArray,
|
|
|
|
CUgraphicsResource resource,
|
|
|
|
unsigned int arrayIndex,
|
|
|
|
unsigned int mipLevel);
|
nvdec,nvenc: Port to dynamic library loading
... and put them into new nvcodec plugin.
* nvcodec plugin
Now each nvenc and nvdec element is moved to be a part of nvcodec plugin
for better interoperability.
Additionally, cuda runtime API header dependencies
(i.e., cuda_runtime_api.h and cuda_gl_interop.h) are removed.
Note that cuda runtime APIs have prefix "cuda". Since 1.16 release with
Windows support, only "cuda.h" and "cudaGL.h" dependent symbols have
been used except for some defined types. However, those types could be
replaced with other types which were defined by "cuda.h".
* dynamic library loading
CUDA library will be opened with g_module_open() instead of build-time linking.
On Windows, nvcuda.dll is installed to system path by CUDA Toolkit
installer, and on *nix, user should ensure that libcuda.so.1 can be
loadable (i.e., via LD_LIBRARY_PATH or default dlopen path)
Therefore, NVIDIA_VIDEO_CODEC_SDK_PATH env build time dependency for Windows
is removed.
2019-05-17 13:27:50 +00:00
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2020-01-20 09:52:26 +00:00
|
|
|
CUresult CUDAAPI CuGraphicsResourceGetMappedPointer (CUdeviceptr * pDevPtr,
|
|
|
|
size_t * pSize,
|
|
|
|
CUgraphicsResource resource);
|
nvdec,nvenc: Port to dynamic library loading
... and put them into new nvcodec plugin.
* nvcodec plugin
Now each nvenc and nvdec element is moved to be a part of nvcodec plugin
for better interoperability.
Additionally, cuda runtime API header dependencies
(i.e., cuda_runtime_api.h and cuda_gl_interop.h) are removed.
Note that cuda runtime APIs have prefix "cuda". Since 1.16 release with
Windows support, only "cuda.h" and "cudaGL.h" dependent symbols have
been used except for some defined types. However, those types could be
replaced with other types which were defined by "cuda.h".
* dynamic library loading
CUDA library will be opened with g_module_open() instead of build-time linking.
On Windows, nvcuda.dll is installed to system path by CUDA Toolkit
installer, and on *nix, user should ensure that libcuda.so.1 can be
loadable (i.e., via LD_LIBRARY_PATH or default dlopen path)
Therefore, NVIDIA_VIDEO_CODEC_SDK_PATH env build time dependency for Windows
is removed.
2019-05-17 13:27:50 +00:00
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2020-01-20 09:52:26 +00:00
|
|
|
CUresult CUDAAPI CuGraphicsUnregisterResource (CUgraphicsResource resource);
|
nvdec,nvenc: Port to dynamic library loading
... and put them into new nvcodec plugin.
* nvcodec plugin
Now each nvenc and nvdec element is moved to be a part of nvcodec plugin
for better interoperability.
Additionally, cuda runtime API header dependencies
(i.e., cuda_runtime_api.h and cuda_gl_interop.h) are removed.
Note that cuda runtime APIs have prefix "cuda". Since 1.16 release with
Windows support, only "cuda.h" and "cudaGL.h" dependent symbols have
been used except for some defined types. However, those types could be
replaced with other types which were defined by "cuda.h".
* dynamic library loading
CUDA library will be opened with g_module_open() instead of build-time linking.
On Windows, nvcuda.dll is installed to system path by CUDA Toolkit
installer, and on *nix, user should ensure that libcuda.so.1 can be
loadable (i.e., via LD_LIBRARY_PATH or default dlopen path)
Therefore, NVIDIA_VIDEO_CODEC_SDK_PATH env build time dependency for Windows
is removed.
2019-05-17 13:27:50 +00:00
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2020-01-20 09:52:26 +00:00
|
|
|
CUresult CUDAAPI CuMemAlloc (CUdeviceptr * dptr,
|
|
|
|
unsigned int bytesize);
|
nvdec,nvenc: Port to dynamic library loading
... and put them into new nvcodec plugin.
* nvcodec plugin
Now each nvenc and nvdec element is moved to be a part of nvcodec plugin
for better interoperability.
Additionally, cuda runtime API header dependencies
(i.e., cuda_runtime_api.h and cuda_gl_interop.h) are removed.
Note that cuda runtime APIs have prefix "cuda". Since 1.16 release with
Windows support, only "cuda.h" and "cudaGL.h" dependent symbols have
been used except for some defined types. However, those types could be
replaced with other types which were defined by "cuda.h".
* dynamic library loading
CUDA library will be opened with g_module_open() instead of build-time linking.
On Windows, nvcuda.dll is installed to system path by CUDA Toolkit
installer, and on *nix, user should ensure that libcuda.so.1 can be
loadable (i.e., via LD_LIBRARY_PATH or default dlopen path)
Therefore, NVIDIA_VIDEO_CODEC_SDK_PATH env build time dependency for Windows
is removed.
2019-05-17 13:27:50 +00:00
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2020-01-20 09:52:26 +00:00
|
|
|
CUresult CUDAAPI CuMemAllocPitch (CUdeviceptr * dptr,
|
|
|
|
size_t * pPitch,
|
|
|
|
size_t WidthInBytes,
|
|
|
|
size_t Height,
|
|
|
|
unsigned int ElementSizeBytes);
|
nvdec,nvenc: Port to dynamic library loading
... and put them into new nvcodec plugin.
* nvcodec plugin
Now each nvenc and nvdec element is moved to be a part of nvcodec plugin
for better interoperability.
Additionally, cuda runtime API header dependencies
(i.e., cuda_runtime_api.h and cuda_gl_interop.h) are removed.
Note that cuda runtime APIs have prefix "cuda". Since 1.16 release with
Windows support, only "cuda.h" and "cudaGL.h" dependent symbols have
been used except for some defined types. However, those types could be
replaced with other types which were defined by "cuda.h".
* dynamic library loading
CUDA library will be opened with g_module_open() instead of build-time linking.
On Windows, nvcuda.dll is installed to system path by CUDA Toolkit
installer, and on *nix, user should ensure that libcuda.so.1 can be
loadable (i.e., via LD_LIBRARY_PATH or default dlopen path)
Therefore, NVIDIA_VIDEO_CODEC_SDK_PATH env build time dependency for Windows
is removed.
2019-05-17 13:27:50 +00:00
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2019-08-19 09:02:56 +00:00
|
|
|
CUresult CUDAAPI CuMemAllocHost (void **pp,
|
|
|
|
unsigned int bytesize);
|
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2020-01-20 09:52:26 +00:00
|
|
|
CUresult CUDAAPI CuMemcpy2D (const CUDA_MEMCPY2D * pCopy);
|
nvdec,nvenc: Port to dynamic library loading
... and put them into new nvcodec plugin.
* nvcodec plugin
Now each nvenc and nvdec element is moved to be a part of nvcodec plugin
for better interoperability.
Additionally, cuda runtime API header dependencies
(i.e., cuda_runtime_api.h and cuda_gl_interop.h) are removed.
Note that cuda runtime APIs have prefix "cuda". Since 1.16 release with
Windows support, only "cuda.h" and "cudaGL.h" dependent symbols have
been used except for some defined types. However, those types could be
replaced with other types which were defined by "cuda.h".
* dynamic library loading
CUDA library will be opened with g_module_open() instead of build-time linking.
On Windows, nvcuda.dll is installed to system path by CUDA Toolkit
installer, and on *nix, user should ensure that libcuda.so.1 can be
loadable (i.e., via LD_LIBRARY_PATH or default dlopen path)
Therefore, NVIDIA_VIDEO_CODEC_SDK_PATH env build time dependency for Windows
is removed.
2019-05-17 13:27:50 +00:00
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2020-01-20 09:52:26 +00:00
|
|
|
CUresult CUDAAPI CuMemcpy2DAsync (const CUDA_MEMCPY2D *pCopy, CUstream hStream);
|
2019-07-19 13:46:01 +00:00
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2020-01-20 09:52:26 +00:00
|
|
|
CUresult CUDAAPI CuMemFree (CUdeviceptr dptr);
|
nvdec,nvenc: Port to dynamic library loading
... and put them into new nvcodec plugin.
* nvcodec plugin
Now each nvenc and nvdec element is moved to be a part of nvcodec plugin
for better interoperability.
Additionally, cuda runtime API header dependencies
(i.e., cuda_runtime_api.h and cuda_gl_interop.h) are removed.
Note that cuda runtime APIs have prefix "cuda". Since 1.16 release with
Windows support, only "cuda.h" and "cudaGL.h" dependent symbols have
been used except for some defined types. However, those types could be
replaced with other types which were defined by "cuda.h".
* dynamic library loading
CUDA library will be opened with g_module_open() instead of build-time linking.
On Windows, nvcuda.dll is installed to system path by CUDA Toolkit
installer, and on *nix, user should ensure that libcuda.so.1 can be
loadable (i.e., via LD_LIBRARY_PATH or default dlopen path)
Therefore, NVIDIA_VIDEO_CODEC_SDK_PATH env build time dependency for Windows
is removed.
2019-05-17 13:27:50 +00:00
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2019-08-19 09:02:56 +00:00
|
|
|
CUresult CUDAAPI CuMemFreeHost (void *p);
|
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2020-01-20 09:52:26 +00:00
|
|
|
CUresult CUDAAPI CuStreamCreate (CUstream *phStream,
|
|
|
|
unsigned int Flags);
|
2019-08-18 13:07:38 +00:00
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2020-01-20 09:52:26 +00:00
|
|
|
CUresult CUDAAPI CuStreamDestroy (CUstream hStream);
|
2019-08-18 13:07:38 +00:00
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2020-01-20 09:52:26 +00:00
|
|
|
CUresult CUDAAPI CuStreamSynchronize (CUstream hStream);
|
2019-07-19 13:46:01 +00:00
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2020-01-20 09:52:26 +00:00
|
|
|
CUresult CUDAAPI CuDeviceGet (CUdevice * device,
|
|
|
|
int ordinal);
|
nvdec,nvenc: Port to dynamic library loading
... and put them into new nvcodec plugin.
* nvcodec plugin
Now each nvenc and nvdec element is moved to be a part of nvcodec plugin
for better interoperability.
Additionally, cuda runtime API header dependencies
(i.e., cuda_runtime_api.h and cuda_gl_interop.h) are removed.
Note that cuda runtime APIs have prefix "cuda". Since 1.16 release with
Windows support, only "cuda.h" and "cudaGL.h" dependent symbols have
been used except for some defined types. However, those types could be
replaced with other types which were defined by "cuda.h".
* dynamic library loading
CUDA library will be opened with g_module_open() instead of build-time linking.
On Windows, nvcuda.dll is installed to system path by CUDA Toolkit
installer, and on *nix, user should ensure that libcuda.so.1 can be
loadable (i.e., via LD_LIBRARY_PATH or default dlopen path)
Therefore, NVIDIA_VIDEO_CODEC_SDK_PATH env build time dependency for Windows
is removed.
2019-05-17 13:27:50 +00:00
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2020-01-20 09:52:26 +00:00
|
|
|
CUresult CUDAAPI CuDeviceGetCount (int *count);
|
nvdec,nvenc: Port to dynamic library loading
... and put them into new nvcodec plugin.
* nvcodec plugin
Now each nvenc and nvdec element is moved to be a part of nvcodec plugin
for better interoperability.
Additionally, cuda runtime API header dependencies
(i.e., cuda_runtime_api.h and cuda_gl_interop.h) are removed.
Note that cuda runtime APIs have prefix "cuda". Since 1.16 release with
Windows support, only "cuda.h" and "cudaGL.h" dependent symbols have
been used except for some defined types. However, those types could be
replaced with other types which were defined by "cuda.h".
* dynamic library loading
CUDA library will be opened with g_module_open() instead of build-time linking.
On Windows, nvcuda.dll is installed to system path by CUDA Toolkit
installer, and on *nix, user should ensure that libcuda.so.1 can be
loadable (i.e., via LD_LIBRARY_PATH or default dlopen path)
Therefore, NVIDIA_VIDEO_CODEC_SDK_PATH env build time dependency for Windows
is removed.
2019-05-17 13:27:50 +00:00
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2020-01-20 09:52:26 +00:00
|
|
|
CUresult CUDAAPI CuDeviceGetName (char *name,
|
|
|
|
int len,
|
|
|
|
CUdevice dev);
|
nvdec,nvenc: Port to dynamic library loading
... and put them into new nvcodec plugin.
* nvcodec plugin
Now each nvenc and nvdec element is moved to be a part of nvcodec plugin
for better interoperability.
Additionally, cuda runtime API header dependencies
(i.e., cuda_runtime_api.h and cuda_gl_interop.h) are removed.
Note that cuda runtime APIs have prefix "cuda". Since 1.16 release with
Windows support, only "cuda.h" and "cudaGL.h" dependent symbols have
been used except for some defined types. However, those types could be
replaced with other types which were defined by "cuda.h".
* dynamic library loading
CUDA library will be opened with g_module_open() instead of build-time linking.
On Windows, nvcuda.dll is installed to system path by CUDA Toolkit
installer, and on *nix, user should ensure that libcuda.so.1 can be
loadable (i.e., via LD_LIBRARY_PATH or default dlopen path)
Therefore, NVIDIA_VIDEO_CODEC_SDK_PATH env build time dependency for Windows
is removed.
2019-05-17 13:27:50 +00:00
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2020-01-20 09:52:26 +00:00
|
|
|
CUresult CUDAAPI CuDeviceGetAttribute (int *pi,
|
|
|
|
CUdevice_attribute attrib,
|
|
|
|
CUdevice dev);
|
nvdec,nvenc: Port to dynamic library loading
... and put them into new nvcodec plugin.
* nvcodec plugin
Now each nvenc and nvdec element is moved to be a part of nvcodec plugin
for better interoperability.
Additionally, cuda runtime API header dependencies
(i.e., cuda_runtime_api.h and cuda_gl_interop.h) are removed.
Note that cuda runtime APIs have prefix "cuda". Since 1.16 release with
Windows support, only "cuda.h" and "cudaGL.h" dependent symbols have
been used except for some defined types. However, those types could be
replaced with other types which were defined by "cuda.h".
* dynamic library loading
CUDA library will be opened with g_module_open() instead of build-time linking.
On Windows, nvcuda.dll is installed to system path by CUDA Toolkit
installer, and on *nix, user should ensure that libcuda.so.1 can be
loadable (i.e., via LD_LIBRARY_PATH or default dlopen path)
Therefore, NVIDIA_VIDEO_CODEC_SDK_PATH env build time dependency for Windows
is removed.
2019-05-17 13:27:50 +00:00
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2019-08-30 08:19:44 +00:00
|
|
|
CUresult CUDAAPI CuDeviceCanAccessPeer (int *canAccessPeer,
|
|
|
|
CUdevice dev,
|
|
|
|
CUdevice peerDev);
|
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2019-10-16 13:42:39 +00:00
|
|
|
CUresult CUDAAPI CuDriverGetVersion (int * driverVersion);
|
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2019-10-16 13:42:39 +00:00
|
|
|
CUresult CUDAAPI CuModuleLoadData (CUmodule* module,
|
|
|
|
const void *image);
|
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2019-10-16 13:42:39 +00:00
|
|
|
CUresult CUDAAPI CuModuleUnload (CUmodule module);
|
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2019-10-16 13:42:39 +00:00
|
|
|
CUresult CUDAAPI CuModuleGetFunction (CUfunction* hfunc,
|
|
|
|
CUmodule hmod,
|
|
|
|
const char* name);
|
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2019-10-16 13:42:39 +00:00
|
|
|
CUresult CUDAAPI CuTexObjectCreate (CUtexObject *pTexObject,
|
|
|
|
const CUDA_RESOURCE_DESC *pResDesc,
|
|
|
|
const CUDA_TEXTURE_DESC *pTexDesc,
|
|
|
|
const CUDA_RESOURCE_VIEW_DESC *pResViewDesc);
|
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2019-10-16 13:42:39 +00:00
|
|
|
CUresult CUDAAPI CuTexObjectDestroy (CUtexObject texObject);
|
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2019-10-16 13:42:39 +00:00
|
|
|
CUresult CUDAAPI CuLaunchKernel (CUfunction f,
|
|
|
|
unsigned int gridDimX,
|
|
|
|
unsigned int gridDimY,
|
|
|
|
unsigned int gridDimZ,
|
|
|
|
unsigned int blockDimX,
|
|
|
|
unsigned int blockDimY,
|
|
|
|
unsigned int blockDimZ,
|
|
|
|
unsigned int sharedMemBytes,
|
|
|
|
CUstream hStream,
|
|
|
|
void **kernelParams,
|
|
|
|
void **extra);
|
|
|
|
|
2023-08-09 16:58:57 +00:00
|
|
|
GST_CUDA_API
|
|
|
|
CUresult CUDAAPI CuEventCreate (CUevent *phEvent,
|
|
|
|
unsigned int Flags);
|
|
|
|
|
|
|
|
GST_CUDA_API
|
|
|
|
CUresult CUDAAPI CuEventDestroy (CUevent hEvent);
|
|
|
|
|
|
|
|
GST_CUDA_API
|
|
|
|
CUresult CUDAAPI CuEventRecord (CUevent hEvent,
|
|
|
|
CUstream hStream);
|
|
|
|
|
|
|
|
GST_CUDA_API
|
|
|
|
CUresult CUDAAPI CuEventSynchronize (CUevent hEvent);
|
|
|
|
|
|
|
|
GST_CUDA_API
|
|
|
|
CUresult CUDAAPI CuIpcGetEventHandle (CUipcEventHandle *pHandle,
|
|
|
|
CUevent event);
|
|
|
|
|
|
|
|
GST_CUDA_API
|
|
|
|
CUresult CUDAAPI CuIpcOpenEventHandle (CUevent* phEvent,
|
|
|
|
CUipcEventHandle handle);
|
|
|
|
|
|
|
|
GST_CUDA_API
|
|
|
|
CUresult CUDAAPI CuIpcGetMemHandle (CUipcMemHandle *pHandle,
|
|
|
|
CUdeviceptr dptr);
|
|
|
|
|
|
|
|
GST_CUDA_API
|
|
|
|
CUresult CUDAAPI CuIpcOpenMemHandle (CUdeviceptr *pdptr,
|
|
|
|
CUipcMemHandle handle,
|
|
|
|
unsigned int Flags);
|
|
|
|
|
|
|
|
GST_CUDA_API
|
|
|
|
CUresult CUDAAPI CuIpcCloseMemHandle (CUdeviceptr dptr);
|
|
|
|
|
|
|
|
GST_CUDA_API
|
|
|
|
CUresult CUDAAPI CuMemAddressReserve (CUdeviceptr *ptr,
|
|
|
|
size_t size,
|
|
|
|
size_t alignment,
|
|
|
|
CUdeviceptr addr,
|
|
|
|
unsigned long long flags);
|
|
|
|
|
|
|
|
GST_CUDA_API
|
|
|
|
CUresult CUDAAPI CuMemAddressFree (CUdeviceptr ptr,
|
|
|
|
size_t size);
|
|
|
|
|
|
|
|
|
|
|
|
GST_CUDA_API
|
|
|
|
CUresult CUDAAPI CuMemCreate (CUmemGenericAllocationHandle *handle,
|
|
|
|
size_t size,
|
|
|
|
const CUmemAllocationProp *prop,
|
|
|
|
unsigned long long flags);
|
|
|
|
|
|
|
|
GST_CUDA_API
|
|
|
|
CUresult CUDAAPI CuMemRelease (CUmemGenericAllocationHandle handle);
|
|
|
|
|
|
|
|
GST_CUDA_API
|
|
|
|
CUresult CUDAAPI CuMemExportToShareableHandle (void *shareableHandle,
|
|
|
|
CUmemGenericAllocationHandle handle,
|
|
|
|
CUmemAllocationHandleType handleType,
|
|
|
|
unsigned long long flags);
|
|
|
|
|
|
|
|
GST_CUDA_API
|
|
|
|
CUresult CUDAAPI CuMemImportFromShareableHandle (CUmemGenericAllocationHandle *handle,
|
|
|
|
void *osHandle,
|
|
|
|
CUmemAllocationHandleType shHandleType);
|
|
|
|
|
|
|
|
GST_CUDA_API
|
|
|
|
CUresult CUDAAPI CuMemSetAccess (CUdeviceptr ptr,
|
|
|
|
size_t size,
|
|
|
|
const CUmemAccessDesc *desc,
|
|
|
|
size_t count);
|
|
|
|
|
|
|
|
GST_CUDA_API
|
|
|
|
CUresult CUDAAPI CuMemGetAccess (unsigned long long *flags,
|
|
|
|
const CUmemLocation *location,
|
|
|
|
CUdeviceptr ptr);
|
|
|
|
|
|
|
|
GST_CUDA_API
|
|
|
|
CUresult CUDAAPI CuMemGetAllocationGranularity (size_t *granularity,
|
|
|
|
const CUmemAllocationProp *prop,
|
|
|
|
CUmemAllocationGranularity_flags option);
|
|
|
|
|
|
|
|
GST_CUDA_API
|
|
|
|
CUresult CUDAAPI CuMemGetAllocationPropertiesFromHandle (CUmemAllocationProp *prop,
|
|
|
|
CUmemGenericAllocationHandle handle);
|
|
|
|
|
|
|
|
|
|
|
|
GST_CUDA_API
|
|
|
|
CUresult CUDAAPI CuMemMap (CUdeviceptr ptr,
|
|
|
|
size_t size,
|
|
|
|
size_t offset,
|
|
|
|
CUmemGenericAllocationHandle handle,
|
|
|
|
unsigned long long flags);
|
|
|
|
|
|
|
|
GST_CUDA_API
|
|
|
|
CUresult CUDAAPI CuMemUnmap (CUdeviceptr ptr,
|
|
|
|
size_t size);
|
|
|
|
|
|
|
|
GST_CUDA_API
|
|
|
|
CUresult CUDAAPI CuMemRetainAllocationHandle (CUmemGenericAllocationHandle *handle,
|
|
|
|
void *addr);
|
|
|
|
|
nvdec,nvenc: Port to dynamic library loading
... and put them into new nvcodec plugin.
* nvcodec plugin
Now each nvenc and nvdec element is moved to be a part of nvcodec plugin
for better interoperability.
Additionally, cuda runtime API header dependencies
(i.e., cuda_runtime_api.h and cuda_gl_interop.h) are removed.
Note that cuda runtime APIs have prefix "cuda". Since 1.16 release with
Windows support, only "cuda.h" and "cudaGL.h" dependent symbols have
been used except for some defined types. However, those types could be
replaced with other types which were defined by "cuda.h".
* dynamic library loading
CUDA library will be opened with g_module_open() instead of build-time linking.
On Windows, nvcuda.dll is installed to system path by CUDA Toolkit
installer, and on *nix, user should ensure that libcuda.so.1 can be
loadable (i.e., via LD_LIBRARY_PATH or default dlopen path)
Therefore, NVIDIA_VIDEO_CODEC_SDK_PATH env build time dependency for Windows
is removed.
2019-05-17 13:27:50 +00:00
|
|
|
/* cudaGL.h */
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2020-01-20 09:52:26 +00:00
|
|
|
CUresult CUDAAPI CuGraphicsGLRegisterImage (CUgraphicsResource * pCudaResource,
|
|
|
|
unsigned int image,
|
|
|
|
unsigned int target,
|
|
|
|
unsigned int Flags);
|
nvdec,nvenc: Port to dynamic library loading
... and put them into new nvcodec plugin.
* nvcodec plugin
Now each nvenc and nvdec element is moved to be a part of nvcodec plugin
for better interoperability.
Additionally, cuda runtime API header dependencies
(i.e., cuda_runtime_api.h and cuda_gl_interop.h) are removed.
Note that cuda runtime APIs have prefix "cuda". Since 1.16 release with
Windows support, only "cuda.h" and "cudaGL.h" dependent symbols have
been used except for some defined types. However, those types could be
replaced with other types which were defined by "cuda.h".
* dynamic library loading
CUDA library will be opened with g_module_open() instead of build-time linking.
On Windows, nvcuda.dll is installed to system path by CUDA Toolkit
installer, and on *nix, user should ensure that libcuda.so.1 can be
loadable (i.e., via LD_LIBRARY_PATH or default dlopen path)
Therefore, NVIDIA_VIDEO_CODEC_SDK_PATH env build time dependency for Windows
is removed.
2019-05-17 13:27:50 +00:00
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2020-01-20 09:52:26 +00:00
|
|
|
CUresult CUDAAPI CuGraphicsGLRegisterBuffer (CUgraphicsResource * pCudaResource,
|
|
|
|
unsigned int buffer,
|
|
|
|
unsigned int Flags);
|
nvdec,nvenc: Port to dynamic library loading
... and put them into new nvcodec plugin.
* nvcodec plugin
Now each nvenc and nvdec element is moved to be a part of nvcodec plugin
for better interoperability.
Additionally, cuda runtime API header dependencies
(i.e., cuda_runtime_api.h and cuda_gl_interop.h) are removed.
Note that cuda runtime APIs have prefix "cuda". Since 1.16 release with
Windows support, only "cuda.h" and "cudaGL.h" dependent symbols have
been used except for some defined types. However, those types could be
replaced with other types which were defined by "cuda.h".
* dynamic library loading
CUDA library will be opened with g_module_open() instead of build-time linking.
On Windows, nvcuda.dll is installed to system path by CUDA Toolkit
installer, and on *nix, user should ensure that libcuda.so.1 can be
loadable (i.e., via LD_LIBRARY_PATH or default dlopen path)
Therefore, NVIDIA_VIDEO_CODEC_SDK_PATH env build time dependency for Windows
is removed.
2019-05-17 13:27:50 +00:00
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
|
|
|
CUresult CUDAAPI CuGraphicsResourceSetMapFlags (CUgraphicsResource resource,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
GST_CUDA_API
|
2020-03-15 10:20:47 +00:00
|
|
|
CUresult CUDAAPI CuGLGetDevices (unsigned int * pCudaDeviceCount,
|
|
|
|
CUdevice * pCudaDevices,
|
|
|
|
unsigned int cudaDeviceCount,
|
|
|
|
CUGLDeviceList deviceList);
|
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
|
2022-09-12 16:02:50 +00:00
|
|
|
#ifdef G_OS_WIN32
|
2022-02-28 10:24:31 +00:00
|
|
|
/* cudaD3D11.h */
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2022-02-28 10:24:31 +00:00
|
|
|
CUresult CUDAAPI CuGraphicsD3D11RegisterResource(CUgraphicsResource * pCudaResource,
|
2022-09-12 16:02:50 +00:00
|
|
|
ID3D11Resource * pD3DResource,
|
2022-02-28 10:24:31 +00:00
|
|
|
unsigned int Flags);
|
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2022-02-28 10:24:31 +00:00
|
|
|
CUresult CUDAAPI CuD3D11GetDevice(CUdevice * device,
|
2022-09-12 16:02:50 +00:00
|
|
|
IDXGIAdapter * pAdapter);
|
2022-02-28 10:24:31 +00:00
|
|
|
|
2021-12-08 11:48:08 +00:00
|
|
|
GST_CUDA_API
|
2022-02-28 10:24:31 +00:00
|
|
|
CUresult CUDAAPI CuD3D11GetDevices(unsigned int * pCudaDeviceCount,
|
|
|
|
CUdevice* pCudaDevices,
|
|
|
|
unsigned int cudaDeviceCount,
|
2022-09-12 16:02:50 +00:00
|
|
|
ID3D11Device * pD3D11Device,
|
|
|
|
CUd3d11DeviceList deviceList);
|
2021-12-08 11:48:08 +00:00
|
|
|
#endif
|
|
|
|
|
nvdec,nvenc: Port to dynamic library loading
... and put them into new nvcodec plugin.
* nvcodec plugin
Now each nvenc and nvdec element is moved to be a part of nvcodec plugin
for better interoperability.
Additionally, cuda runtime API header dependencies
(i.e., cuda_runtime_api.h and cuda_gl_interop.h) are removed.
Note that cuda runtime APIs have prefix "cuda". Since 1.16 release with
Windows support, only "cuda.h" and "cudaGL.h" dependent symbols have
been used except for some defined types. However, those types could be
replaced with other types which were defined by "cuda.h".
* dynamic library loading
CUDA library will be opened with g_module_open() instead of build-time linking.
On Windows, nvcuda.dll is installed to system path by CUDA Toolkit
installer, and on *nix, user should ensure that libcuda.so.1 can be
loadable (i.e., via LD_LIBRARY_PATH or default dlopen path)
Therefore, NVIDIA_VIDEO_CODEC_SDK_PATH env build time dependency for Windows
is removed.
2019-05-17 13:27:50 +00:00
|
|
|
G_END_DECLS
|