early-access version 1680

This commit is contained in:
pineappleEA
2021-05-13 11:45:27 +02:00
parent 1434d96e7d
commit 66ed389c6f
311 changed files with 6452 additions and 2597 deletions

View File

@@ -62,6 +62,14 @@ typedef void ID3D11Device;
#define NVENC_HAVE_GETLASTERRORSTRING
#endif
// SDK 10.0 compile time feature checks
#if NVENCAPI_CHECK_VERSION(10, 0)
#define NVENC_HAVE_NEW_PRESETS
#define NVENC_HAVE_MULTIPASS
#define NVENC_HAVE_LDKFS
#define NVENC_HAVE_H264_LVL6
#endif
typedef struct NvencSurface
{
NV_ENC_INPUT_PTR input_surface;
@@ -98,6 +106,15 @@ enum {
PRESET_LOW_LATENCY_HP,
PRESET_LOSSLESS_DEFAULT, // lossless presets must be the last ones
PRESET_LOSSLESS_HP,
#ifdef NVENC_HAVE_NEW_PRESETS
PRESET_P1,
PRESET_P2,
PRESET_P3,
PRESET_P4,
PRESET_P5,
PRESET_P6,
PRESET_P7,
#endif
};
enum {
@@ -138,6 +155,8 @@ typedef struct NvencContext
CUstream cu_stream;
ID3D11Device *d3d11_device;
AVFrame *frame;
int nb_surfaces;
NvencSurface *surfaces;
@@ -146,8 +165,6 @@ typedef struct NvencContext
AVFifoBuffer *output_surface_ready_queue;
AVFifoBuffer *timestamp_list;
int encoder_flushing;
struct {
void *ptr;
int ptr_index;
@@ -196,20 +213,19 @@ typedef struct NvencContext
int coder;
int b_ref_mode;
int a53_cc;
int s12m_tc;
int dpb_size;
int tuning_info;
int multipass;
int ldkfs;
} NvencContext;
int ff_nvenc_encode_init(AVCodecContext *avctx);
int ff_nvenc_encode_close(AVCodecContext *avctx);
int ff_nvenc_send_frame(AVCodecContext *avctx, const AVFrame *frame);
int ff_nvenc_receive_packet(AVCodecContext *avctx, AVPacket *pkt);
int ff_nvenc_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
const AVFrame *frame, int *got_packet);
void ff_nvenc_encode_flush(AVCodecContext *avctx);
extern const enum AVPixelFormat ff_nvenc_pix_fmts[];