#ifndef AVCODEC_NVENC_H
#define AVCODEC_NVENC_H
-#include <nvEncodeAPI.h>
+#include "compat/nvenc/nvEncodeAPI.h"
#include "config.h"
int reg_idx;
int width;
int height;
+ int pitch;
NV_ENC_OUTPUT_PTR output_surface;
NV_ENC_BUFFER_FORMAT format;
typedef CUresult(CUDAAPI *PCUCTXPOPCURRENT)(CUcontext *pctx);
typedef CUresult(CUDAAPI *PCUCTXDESTROY)(CUcontext ctx);
+typedef NVENCSTATUS (NVENCAPI *PNVENCODEAPIGETMAXSUPPORTEDVERSION)(uint32_t* version);
typedef NVENCSTATUS (NVENCAPI *PNVENCODEAPICREATEINSTANCE)(NV_ENCODE_API_FUNCTION_LIST *functionList);
typedef struct NvencDynLoadFunctions
NV_ENC_H264_PROFILE_HIGH_444P,
};
+enum {
+ NV_ENC_HEVC_PROFILE_MAIN,
+ NV_ENC_HEVC_PROFILE_MAIN_10,
+ NV_ENC_HEVC_PROFILE_REXT,
+};
+
enum {
NVENC_LOWLATENCY = 1,
NVENC_LOSSLESS = 2,
int device;
int flags;
int async_depth;
+ int rc_lookahead;
+ int aq;
+ int no_scenecut;
+ int forced_idr;
+ int b_adapt;
+ int temporal_aq;
+ int zerolatency;
+ int nonref_p;
+ int strict_gop;
+ int aq_strength;
+ int quality;
} NvencContext;
int ff_nvenc_encode_init(AVCodecContext *avctx);