]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/nvenc.h
avcodec/Makefile: Fix mlpenc dependencies
[ffmpeg] / libavcodec / nvenc.h
index 961cbc7e646ad8a3e3dc86dbbc6952c6bfe8d120..521902c77d0898b0f91449924dcf105d4b63ce45 100644 (file)
@@ -19,7 +19,7 @@
 #ifndef AVCODEC_NVENC_H
 #define AVCODEC_NVENC_H
 
-#include <nvEncodeAPI.h>
+#include "compat/nvenc/nvEncodeAPI.h"
 
 #include "config.h"
 
@@ -56,6 +56,7 @@ typedef struct NvencSurface
     int reg_idx;
     int width;
     int height;
+    int pitch;
 
     NV_ENC_OUTPUT_PTR output_surface;
     NV_ENC_BUFFER_FORMAT format;
@@ -72,6 +73,7 @@ typedef CUresult(CUDAAPI *PCUCTXCREATE)(CUcontext *pctx, unsigned int flags, CUd
 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
@@ -116,6 +118,11 @@ enum {
     NV_ENC_H264_PROFILE_HIGH_444P,
 };
 
+enum {
+    NV_ENC_HEVC_PROFILE_MAIN,
+    NV_ENC_HEVC_PROFILE_MAIN_10,
+};
+
 enum {
     NVENC_LOWLATENCY = 1,
     NVENC_LOSSLESS   = 2,
@@ -174,6 +181,7 @@ typedef struct NvencContext
     int device;
     int flags;
     int async_depth;
+    int rc_lookahead;
 } NvencContext;
 
 int ff_nvenc_encode_init(AVCodecContext *avctx);