From 6f58b4dc477e22237c4e89f6e2a1435aaa45a4d3 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Fri, 13 May 2016 09:13:47 +0200 Subject: nvenc: drop the hard dependency on CUDA The code needs only a few definitions from cuda.h, so define them directly when CUDA is not enabled. CUDA is still required for accepting HW frames as input. Based on the code by Timo Rothenpieler . --- configure | 1 - libavcodec/nvenc.c | 1 - libavcodec/nvenc.h | 19 ++++++++++++++++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/configure b/configure index d99a7c8423..6bab581a00 100755 --- a/configure +++ b/configure @@ -4665,7 +4665,6 @@ if enabled libdc1394; then fi if enabled nvenc; then - enabled cuda || check_header cuda.h || die "ERROR: cuda.h not found." check_header nvEncodeAPI.h || die "ERROR: nvEncodeAPI.h not found." check_cpp_condition nvEncodeAPI.h "NVENCAPI_MAJOR_VERSION >= 6" || die "ERROR: NVENC API version 5 or older is not supported" diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c index 7564985964..bdd26bb0ea 100644 --- a/libavcodec/nvenc.c +++ b/libavcodec/nvenc.c @@ -21,7 +21,6 @@ #include "config.h" -#include #include #include diff --git a/libavcodec/nvenc.h b/libavcodec/nvenc.h index 8cd5991f4c..e7e6182196 100644 --- a/libavcodec/nvenc.h +++ b/libavcodec/nvenc.h @@ -19,7 +19,6 @@ #ifndef AVCODEC_NVENC_H #define AVCODEC_NVENC_H -#include #include #include "config.h" @@ -29,6 +28,24 @@ #include "avcodec.h" +#if CONFIG_CUDA +#include +#else + +#if defined(_WIN32) +#define CUDAAPI __stdcall +#else +#define CUDAAPI +#endif + +typedef enum cudaError_enum { + CUDA_SUCCESS = 0 +} CUresult; +typedef int CUdevice; +typedef void* CUcontext; +typedef void* CUdeviceptr; +#endif + #define MAX_REGISTERED_FRAMES 64 typedef struct NVENCFrame { -- cgit v1.2.3