return 0;
}
+
+const AVCodecHWConfigInternal *ff_qsv_enc_hw_configs[] = {
+ HW_CONFIG_ENCODER_FRAMES(QSV, QSV),
+ HW_CONFIG_ENCODER_DEVICE(NV12, QSV),
+ HW_CONFIG_ENCODER_DEVICE(P010, QSV),
+ NULL,
+};
#include "libavutil/fifo.h"
#include "avcodec.h"
+#include "hwconfig.h"
#include "qsv_internal.h"
#define QSV_HAVE_CO2 QSV_VERSION_ATLEAST(1, 6)
{ "forced_idr", "Forcing I frames as IDR frames", OFFSET(qsv.forced_idr), AV_OPT_TYPE_BOOL,{ .i64 = 0 }, 0, 1, VE }, \
{ "low_power", "enable low power mode(experimental: many limitations by mfx version, BRC modes, etc.)", OFFSET(qsv.low_power), AV_OPT_TYPE_BOOL, { .i64 = 0}, 0, 1, VE},\
+extern const AVCodecHWConfigInternal *ff_qsv_enc_hw_configs[];
+
typedef int SetEncodeCtrlCB (AVCodecContext *avctx,
const AVFrame *frame, mfxEncodeCtrl* enc_ctrl);
typedef struct QSVEncContext {
.defaults = qsv_enc_defaults,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
.wrapper_name = "qsv",
+ .hw_configs = ff_qsv_enc_hw_configs,
};
.defaults = qsv_enc_defaults,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
.wrapper_name = "qsv",
+ .hw_configs = ff_qsv_enc_hw_configs,
};
.priv_class = &class,
.defaults = qsv_enc_defaults,
.wrapper_name = "qsv",
+ .hw_configs = ff_qsv_enc_hw_configs,
};
.defaults = qsv_enc_defaults,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
.wrapper_name = "qsv",
+ .hw_configs = ff_qsv_enc_hw_configs,
};
.defaults = qsv_enc_defaults,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
.wrapper_name = "qsv",
+ .hw_configs = ff_qsv_enc_hw_configs,
};