]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/nvenc.h
avcodec/ac3dec: Check expacc
[ffmpeg] / libavcodec / nvenc.h
index 961cbc7e646ad8a3e3dc86dbbc6952c6bfe8d120..bad659aece1b7de737d02feb29b6a928e7dd448d 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,12 @@ enum {
     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,
@@ -174,6 +182,17 @@ typedef struct NvencContext
     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);