]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/nvenc.h
Merge commit '44f2eda39ff55c69d4d739fb12a42a10b7ce581c'
[ffmpeg] / libavcodec / nvenc.h
index 763647b2830b8dfa3ca7cc2539da02a247d94c88..afb93cc22caed47060eb909089fd247fc2ccfc5c 100644 (file)
@@ -30,6 +30,8 @@
 #include "avcodec.h"
 
 #define MAX_REGISTERED_FRAMES 64
+#define RC_MODE_DEPRECATED 0x800000
+#define RCD(rc_mode) ((rc_mode) | RC_MODE_DEPRECATED)
 
 typedef struct NvencSurface
 {
@@ -114,6 +116,8 @@ typedef struct NvencContext
     AVFifoBuffer *output_surface_ready_queue;
     AVFifoBuffer *timestamp_list;
 
+    int encoder_flushing;
+
     struct {
         CUdeviceptr ptr;
         NV_ENC_REGISTERED_PTR regptr;
@@ -152,19 +156,25 @@ typedef struct NvencContext
     int nonref_p;
     int strict_gop;
     int aq_strength;
-    int quality;
+    float quality;
     int aud;
     int bluray_compat;
     int init_qp_p;
     int init_qp_b;
     int init_qp_i;
     int cqp;
+    int weighted_pred;
+    int coder;
 } 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);