X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fqsvenc.h;h=d1c8a0c99871df16aec8b5286c2d7617950f69ef;hb=6088b7b0373faad7a8e62a8c4eb4ced9084ad2d9;hp=88e072811013bf7cf36ee2315deb2cf60e3047be;hpb=fa2d28567e3514323c440c4b7935a3d711eded8d;p=ffmpeg diff --git a/libavcodec/qsvenc.h b/libavcodec/qsvenc.h index 88e07281101..d1c8a0c9987 100644 --- a/libavcodec/qsvenc.h +++ b/libavcodec/qsvenc.h @@ -45,14 +45,18 @@ #define QSV_HAVE_LA_DS QSV_VERSION_ATLEAST(1, 8) #define QSV_HAVE_LA_HRD QSV_VERSION_ATLEAST(1, 11) -#if defined(_WIN32) +#if defined(_WIN32) || defined(__CYGWIN__) +#define QSV_HAVE_AVBR QSV_VERSION_ATLEAST(1, 3) #define QSV_HAVE_ICQ QSV_VERSION_ATLEAST(1, 8) #define QSV_HAVE_VCM QSV_VERSION_ATLEAST(1, 8) #define QSV_HAVE_QVBR QSV_VERSION_ATLEAST(1, 11) +#define QSV_HAVE_MF 0 #else +#define QSV_HAVE_AVBR 0 #define QSV_HAVE_ICQ 0 #define QSV_HAVE_VCM 0 #define QSV_HAVE_QVBR 0 +#define QSV_HAVE_MF QSV_VERSION_ATLEAST(1, 25) #endif #if !QSV_HAVE_LA_DS @@ -99,6 +103,8 @@ typedef struct QSVEncContext { int width_align; int height_align; + int sum_frame_qp; + mfxVideoParam param; mfxFrameAllocRequest req; @@ -106,12 +112,15 @@ typedef struct QSVEncContext { #if QSV_HAVE_CO2 mfxExtCodingOption2 extco2; #endif - +#if QSV_HAVE_MF + mfxExtMultiFrameParam extmfp; + mfxExtMultiFrameControl extmfc; +#endif mfxExtOpaqueSurfaceAlloc opaque_alloc; mfxFrameSurface1 **opaque_surfaces; AVBufferRef *opaque_alloc_buf; - mfxExtBuffer *extparam_internal[2 + QSV_HAVE_CO2]; + mfxExtBuffer *extparam_internal[2 + QSV_HAVE_CO2 + (QSV_HAVE_MF * 2)]; int nb_extparam_internal; mfxExtBuffer **extparam; @@ -136,6 +145,8 @@ typedef struct QSVEncContext { int max_frame_size; int max_slice_size; + int aud; + int single_sei_nal_unit; int max_dec_frame_buffering; int trellis; @@ -154,6 +165,10 @@ typedef struct QSVEncContext { int recovery_point_sei; int a53_cc; + +#if QSV_HAVE_MF + int mfmode; +#endif char *load_plugins; SetEncodeCtrlCB *set_encode_ctrl_cb; } QSVEncContext;