X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fnvenc.h;h=521902c77d0898b0f91449924dcf105d4b63ce45;hb=7238c53048e494d4914e6f8692ca844086f3ae65;hp=961cbc7e646ad8a3e3dc86dbbc6952c6bfe8d120;hpb=9afa64dfdffdf2ce80fc9e7d1e3e0091d0c2eb3b;p=ffmpeg diff --git a/libavcodec/nvenc.h b/libavcodec/nvenc.h index 961cbc7e646..521902c77d0 100644 --- a/libavcodec/nvenc.h +++ b/libavcodec/nvenc.h @@ -19,7 +19,7 @@ #ifndef AVCODEC_NVENC_H #define AVCODEC_NVENC_H -#include +#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);