summaryrefslogtreecommitdiff
path: root/libavcodec/qsvenc.h
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2015-11-08 06:44:17 +0100
committerAnton Khirnov <anton@khirnov.net>2015-11-20 09:29:13 +0100
commite7d7cf86dcaba8eaaed62c80172ff0aff2588c2a (patch)
tree2a36f8fea8561f2faf9926d29c8c7ea286dd7957 /libavcodec/qsvenc.h
parentfb8753ada23189076bdf903c1c001c0ca8287fae (diff)
qsvenc: support more RC methods
Diffstat (limited to 'libavcodec/qsvenc.h')
-rw-r--r--libavcodec/qsvenc.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/libavcodec/qsvenc.h b/libavcodec/qsvenc.h
index c309ddbe91..3935deb994 100644
--- a/libavcodec/qsvenc.h
+++ b/libavcodec/qsvenc.h
@@ -53,6 +53,8 @@
{ "fast", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_TARGETUSAGE_BEST_SPEED }, INT_MIN, INT_MAX, VE, "preset" }, \
{ "medium", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_TARGETUSAGE_BALANCED }, INT_MIN, INT_MAX, VE, "preset" }, \
{ "slow", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_TARGETUSAGE_BEST_QUALITY }, INT_MIN, INT_MAX, VE, "preset" }, \
+{ "la_depth", "Number of frames to analyze before encoding.", OFFSET(qsv.la_depth), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, INT16_MAX, VE }, \
+{ "vcm", "Use the video conferencing mode ratecontrol", OFFSET(qsv.vcm), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE }, \
typedef struct QSVEncContext {
AVCodecContext *avctx;
@@ -69,12 +71,15 @@ typedef struct QSVEncContext {
mfxFrameAllocRequest req;
mfxExtCodingOption extco;
+#if QSV_HAVE_CO2
+ mfxExtCodingOption2 extco2;
+#endif
mfxExtOpaqueSurfaceAlloc opaque_alloc;
mfxFrameSurface1 **opaque_surfaces;
AVBufferRef *opaque_alloc_buf;
- mfxExtBuffer *extparam_internal[2];
+ mfxExtBuffer *extparam_internal[2 + QSV_HAVE_CO2];
int nb_extparam_internal;
mfxExtBuffer **extparam;
@@ -88,6 +93,8 @@ typedef struct QSVEncContext {
int preset;
int avbr_accuracy;
int avbr_convergence;
+ int la_depth;
+ int vcm;
char *load_plugins;
} QSVEncContext;