Browse Source

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 <timo@rothenpieler.org>.
tags/n3.1
Anton Khirnov 9 years ago
parent
commit
6f58b4dc47
3 changed files with 18 additions and 3 deletions
  1. +0
    -1
      configure
  2. +0
    -1
      libavcodec/nvenc.c
  3. +18
    -1
      libavcodec/nvenc.h

+ 0
- 1
configure View File

@@ -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"


+ 0
- 1
libavcodec/nvenc.c View File

@@ -21,7 +21,6 @@

#include "config.h"

#include <cuda.h>
#include <nvEncodeAPI.h>
#include <string.h>



+ 18
- 1
libavcodec/nvenc.h View File

@@ -19,7 +19,6 @@
#ifndef AVCODEC_NVENC_H
#define AVCODEC_NVENC_H

#include <cuda.h>
#include <nvEncodeAPI.h>

#include "config.h"
@@ -29,6 +28,24 @@

#include "avcodec.h"

#if CONFIG_CUDA
#include <cuda.h>
#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 {


Loading…
Cancel
Save