X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fnvenc.h;h=bad659aece1b7de737d02feb29b6a928e7dd448d;hb=cee1f4c06986941bd31cc19f4333d436394aa6f9;hp=961cbc7e646ad8a3e3dc86dbbc6952c6bfe8d120;hpb=def850676625417d27176a458787545330ab9427;p=ffmpeg diff --git a/libavcodec/nvenc.h b/libavcodec/nvenc.h index 961cbc7e646..bad659aece1 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,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);